欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

VC自繪控件框架

這是一個(gè)按鈕自繪的框架,其他控件也類似

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括紅橋網(wǎng)站建設(shè)、紅橋網(wǎng)站制作、紅橋網(wǎng)頁(yè)制作以及紅橋網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,紅橋網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到紅橋省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

//.h頭文件
#pragma once
#include "afxwin.h"
#include "MemDC.h"//封裝內(nèi)存DC類

class CYuButton :public CWnd
{
    private:
		BOOL  m_bIsDown;
		BOOL  m_bIsMove;
		BOOL  _bMouseTrack;

		CString  m_sCaption;
		CFont    *m_pFont;
		
		
        INT    m_nFocusPic;//焦點(diǎn)圖片
		INT    m_nForePic; //前景圖片

		CMemoryDC  m_Icon_MDC;
		CMemoryDC  m_focus_MDC;
		CMemoryDC  m_fore_MDC;

		CMemoryDC  m_CompoundDC;//合成位圖DC

		bool m_bTracking = TRUE;
    public:
        DECLARE_DYNCREATE(CYuButton)
		CYuButton(void);
		virtual ~CYuButton(void);

		BOOL Create(LPCTSTR strCaption,const CRect &rt,CWnd * 
		            pParendWnd,UINT uId,UINT strFocusPic,UINT strForePic);
			
		afx_msg void OnNcPaint();
		afx_msg BOOL OnEraseBkgnd(CDC* pDC);
		afx_msg void OnPaint();
		afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
		afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
        afx_msg void OnKillFocus(CWnd* pNewWnd);
        DECLARE_MESSAGE_MAP()

		//鼠標(biāo)按下
		void DrawDown(CDC * pDC);
		void DrawNormal(CDC * pDC);
		//鼠標(biāo)移動(dòng)
		void DrawMove(CDC * pDC);
		//字體
		void SetFont(CFont * pFont);
		CFont * GetFont();
		
		//獲取當(dāng)前程序路徑
		CString  GetApplicationPath();
public:
		//修改按鈕狀態(tài)
		void SetNormalStatus();
		afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
		afx_msg void OnMouseHover(UINT nFlags, CPoint point);
		afx_msg void OnMouseMove(UINT nFlags, CPoint point);
		afx_msg void OnMouseLeave();
		afx_msg void OnSetFocus(CWnd* pOldWnd);
		afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
};
//.cpp文件
#include "StdAfx.h"
#include "YuButton.h"
CYuButton::CYuButton(void)
{
// WNDCLASS wd={CS_VREDRAW|CS_HREDRAW,::DefWindowProc};
// wd.lpszClassName = _T("YUButton");
// 
// AfxRegisterClass(&wd);

m_bIsDown   = FALSE;
m_bIsMove   = FALSE;
_bMouseTrack = TRUE;

}


CYuButton::~CYuButton(void)
{
}

BOOL CYuButton::Create(LPCTSTR strCaption,const CRect &rt,CWnd * pParendWnd,
     UINT uId,UINT strFocusPic,UINT strForePic)
{
LPCTSTR lpszClassName = AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW | WS_TABSTOP,
AfxGetApp()->LoadStandardCursor(IDC_ARROW),
(HBRUSH)GetStockObject(LTGRAY_BRUSH), NULL);

m_sCaption    = strCaption;
m_nFocusPic = strFocusPic;
m_nForePic  = strForePic;

BOOL re = m_Icon_MDC.LoadBitmap(m_nForePic);
    re = m_focus_MDC.LoadBitmap(m_nFocusPic);//畫(huà)焦點(diǎn)圖片85*110
    re = m_fore_MDC.LoadBitmap(m_nForePic);  //顯示圖標(biāo)

m_CompoundDC.Create(m_focus_MDC.Width(),m_focus_MDC.Height());//空白內(nèi)存位圖

m_pFont = pParendWnd->GetFont();
return CWnd::Create(lpszClassName,strCaption,WS_VISIBLE|WS_CHILD,rt,pParendWnd,uId);
}

BOOL CYuButton::CreateEx(DWORD dwExStyle,LPCTSTR sCaption,DWORD dwStyle,
CONST CRect & rt,CWnd * pParendWnd,UINT uId)
{
m_sCaption = sCaption;
return CWnd::CreateEx(dwExStyle,_T("YUButton"),sCaption,
dwStyle|WS_CHILD,rt,pParendWnd,uId);
}

IMPLEMENT_DYNCREATE(CYuButton, CWnd)
BEGIN_MESSAGE_MAP(CYuButton, CWnd)
ON_WM_ERASEBKGND()
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_KILLFOCUS()
ON_WM_LBUTTONDBLCLK()
ON_WM_MOUSEHOVER()
ON_WM_MOUSEMOVE()
ON_WM_MOUSELEAVE()
ON_WM_SETFOCUS()
ON_WM_KEYDOWN()
END_MESSAGE_MAP()

void CYuButton::OnNcPaint()
{

}
BOOL CYuButton::OnEraseBkgnd(CDC* pDC)
{
return true;//CWnd::OnEraseBkgnd(pDC);
}
void CYuButton::OnPaint()
{
CPaintDC dc(this); // device context for painting

if(m_bIsDown)
     DrawNormal(&dc);	
else
     DrawDown(&dc);


//繪按鈕上面的文字
CRect rt;
GetClientRect(&rt);
   rt.top = 69;

   dc.SetTextColor(RGB(0,120,215));
  
   CFont font;
VERIFY(font.CreatePointFont(90,_T("微軟雅黑"), &dc));

CFont * pOldFont = dc.SelectObject(&font);
dc.SetBkMode(TRANSPARENT);
rt.top = 40;
dc.DrawText(m_sCaption,rt,DT_CENTER);

dc.SelectObject(pOldFont);

}

void CYuButton::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
   CWnd::OnLButtonDown(nFlags, point);
m_bIsDown = TRUE;
this->Invalidate(FALSE);
SetFocus();
//TRACE(_T("點(diǎn)擊按鈕!\n"));
}

void CYuButton::OnLButtonUp(UINT nFlags, CPoint point)
{
CWnd::OnLButtonUp(nFlags, point);
CWnd * pWnd = this->GetParent();
if (pWnd)
pWnd->SendMessage(WM_COMMAND, GetDlgCtrlID(), (LPARAM)this->GetSafeHwnd());
}

void CYuButton::DrawNormal(CDC * pDC)
{
//m_CompoundDC.BitBlt(0,0,m_focus_MDC.Width(),m_focus_MDC.Height(),
//&m_focus_MDC,0,0,SRCCOPY);
//m_fore_MDC.BitTrans(0,0,m_fore_MDC.Width(),m_fore_MDC.Height(),
//&m_CompoundDC,0,0,RGB(135,200,241));
//pDC->BitBlt(0,0,m_focus_MDC.Width(),m_focus_MDC.Height(),
//&m_CompoundDC,0,0,SRCCOPY);
pDC->BitBlt(0, 0, m_Icon_MDC.Width(), m_Icon_MDC.Height(),
&m_fore_MDC, 0, 0, SRCCOPY);
}

void CYuButton::DrawDown(CDC * pDC)
{
//畫(huà)小圖標(biāo)
// CBrush  br(RGB(221, 203, 255));
// CBrush * pOldBrush =  pDC->SelectObject(&br);
// CRect rect(0, 0, m_Icon_MDC.Width(), m_Icon_MDC.Height());
// pDC->FillRect(&rect,&br);

pDC->BitBlt(0,0,m_Icon_MDC.Width(),m_Icon_MDC.Height(),&m_focus_MDC,0,0,SRCCOPY);

//pDC->SelectObject(pOldBrush);
}

void CYuButton::SetFont(CFont * pFont)
{
m_pFont = pFont;
}

CFont * CYuButton::GetFont()
{
   return m_pFont;
}

void CYuButton::OnKillFocus(CWnd* pNewWnd)
{
CWnd::OnKillFocus(pNewWnd);
m_bIsDown = FALSE;
Invalidate(TRUE);
}

CString CYuButton::GetApplicationPath()
{
WCHAR  buff[255]={0};
::GetModuleFileName(0,buff,255);

CString strAppFullName;
strAppFullName.Format(_T("%s"),buff);

CString strAppPath = _T("");
strAppPath = strAppFullName.Left(strAppFullName.ReverseFind('\\')+1);
return strAppPath;
}

void CYuButton::SetNormalStatus()
{
   m_bIsDown = FALSE;
Invalidate(FALSE);
}

void CYuButton::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
//CWnd * pWnd = this->GetParent();
//if (pWnd)
//pWnd->SendMessage(WM_COMMAND, GetDlgCtrlID(), (LPARAM)this->GetSafeHwnd());
CWnd::OnLButtonDblClk(nFlags, point);
}

void CYuButton::OnMouseHover(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
m_bIsDown = TRUE;
Invalidate();
CWnd::OnMouseHover(nFlags, point);
}

void CYuButton::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
TRACKMOUSEEVENT  tme = { 0 };
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_HOVER | TME_LEAVE;
tme.dwHoverTime = 50;
tme.hwndTrack = this->m_hWnd;
if (TrackMouseEvent(&tme)) {}

CWnd::OnMouseMove(nFlags, point);
}

void CYuButton::OnMouseLeave()
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
m_bIsDown = FALSE;
Invalidate();
CWnd::OnMouseLeave();
}


void CYuButton::OnSetFocus(CWnd* pOldWnd)
{
m_bIsDown = TRUE;
Invalidate();
   CWnd::OnSetFocus(pOldWnd);
// TODO: 在此處添加消息處理程序代碼
}


void CYuButton::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值
CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}

文章題目:VC自繪控件框架
網(wǎng)站地址:http://aaarwkj.com/article18/peiggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站導(dǎo)航、全網(wǎng)營(yíng)銷推廣、網(wǎng)站維護(hù)、營(yíng)銷型網(wǎng)站建設(shè)網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
求个手机免费在线观看av网址| 欧美小黄片在线免费看| 久久成人日韩电影午夜| 高清免费国产日日操夜夜草| 天堂社区人妻在线亚洲| 国产亚洲欧美精品在线观看| 人妻系列日本在线播放| 日本精品亚洲一区二区三区| 精品国产av一区二区麻豆| 亚洲欧美中文字幕乱码| 国产欧美日本一区二区 | 丰满人妻毛片一区二区三区| 人妻少妇精品一区毛二区| 欧美日韩精品一区二区在线| 97精品国产高清在线| 欧美激情一区二区亚洲专区| 久久夜色噜噜噜av一区| 亚洲精品综合在线二区| 国产亚洲一区二区三区在线| 国产91高清视频在线观看| 日韩欧美国产综合第一页| 亚洲国产av国产av| 国产午夜男人天堂手机| 18禁黄久久久一区二区三区| 国产在线第一页第二页| 国产自拍精品视频免费观看| 日韩少妇黄色在线观看| 成人黄色小视频下载| 蜜臀国产午夜在线视频| 国产系列在线播放一区二区三区| 亚洲成人av在线直播| 一区二区日韩欧美国产| 国产在线精品成人欧美| 国产精品区一区二区三区| 国产伦人偷精品免费视频| 午夜一区二区精品视频国产| 欧美午夜一区二区电影| 91香蕉国产精品日韩| 日本黄色录像黄色录像| 国产aaa级日本一区二区三区| 日本精品在线不卡视频|