91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-08
  • 語言: C/C++
  • 標簽: 按鈕??

資源簡介

MFC自繪按鈕類,顯示點擊,懸浮,初始狀態,調用按鈕類的SetBitmapId函數。

資源截圖

代碼片段和文件信息

//?PicButton.cpp?:?實現文件
//

#include?“stdafx.h“
#include?“MFCApplication5.h“
#include?“PicButton.h“


//?CPicButton

IMPLEMENT_DYNAMIC(CPicButton?CButton)

CPicButton::CPicButton()
{
m_bOver/*(鼠標位于按鈕之上)*/?=?FALSE;
m_bSelected/*(按鈕被按下)*/?=?FALSE;
m_bTracking/*(在鼠標按下釋放)*/?=?FALSE;
m_bFocus?/*按鈕為當前焦點*/?=?FALSE;
}

CPicButton::~CPicButton()
{
}


BEGIN_MESSAGE_MAP(CPicButton?CButton)
ON_WM_MOUSEMOVE()
ON_WM_MOUSELEAVE()
ON_WM_MOUSEHOVER()
END_MESSAGE_MAP()



//?CPicButton?消息處理程序




void?CPicButton::onmousemove(UINT?nFlags?CPoint?point)
{
//?TODO:??在此添加消息處理程序代碼和/或調用默認值
if?(!m_bTracking)
{
TRACKMOUSEEVENT?tme;
tme.cbSize?=?sizeof(tme);
tme.hwndTrack?=?m_hWnd;
tme.dwFlags?=?TME_LEAVE?|?TME_HOVER;
tme.dwHoverTime?=?100;//光標停在按鈕上,改變狀態的時間,以1毫秒為單位
m_bTracking?=?_TrackMouseEvent(&tme);
} CButton::onmousemove(nFlags?point);

}


void?CPicButton::onmouseleave()
{
//?TODO:??在此添加消息處理程序代碼和/或調用默認值
m_bOver?=?FALSE;?//???鼠標沒位于按鈕之上?????
m_bTracking?=?FALSE;???????????//鼠標離開按鈕???????
InvalidateRect(NULL?FALSE);??//讓按鈕重畫

CButton::onmouseleave();
}


void?CPicButton::OnMouseHover(UINT?nFlags?CPoint?point)
{
//?TODO:??在此添加消息處理程序代碼和/或調用默認值

m_bOver?=?TRUE;??//鼠標盤旋在按鈕上空
InvalidateRect(NULL);?//重畫!

CButton::OnMouseHover(nFlags?point);
}


void?CPicButton::DrawItem(LPDRAWITEMSTRUCT?lpDrawItemStruct)
{
CRect?rect?=?lpDrawItemStruct->rcItem;
CDC?*pDC?=?CDC::FromHandle(lpDrawItemStruct->hDC);
int?nSaveDC?=?pDC->SaveDC();
UINT?state?=?lpDrawItemStruct->itemState;

//根據按鈕的狀態貼圖

//(以下貼按鈕狀態圖,分以下幾種情況來貼,,,和我們平常貼背景圖片一樣的做法)


//鼠標停留按鈕的狀態
if?(m_bOver)
{

//(以下按鈕貼圖,,可以用我們自己以前貼背景圖的方法去做)

CDC?MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap?*pOldBmp;
pOldBmp?=?MemDC.Selectobject(&m_OverBitmap);//加載停留狀態
pDC->BitBlt(0?0?rect.Width()?rect.Height()?&MemDC?0?0?SRCCOPY);

}

else
{

//初始狀態
CDC?MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap?*pOldBmp;
pOldBmp?=?MemDC.Selectobject(&m_NormalBitmap);//加載最初狀態
BITMAP?bmp;
m_NormalBitmap.Getobject(sizeof(bmp)?&bmp);
pDC->BitBlt(0?0?rect.Width()?rect.Height()?&MemDC?0?0?SRCCOPY);
}

//按鈕被按下(選中)
if?(state?&?ODS_SELECTED)
{
CDC?MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap?*pOldBmp;
pOldBmp?=?MemDC.Selectobject(&m_PressedBitmap);
BITMAP?bmp;
//pOldBmp->GetBitmap(&bmp);
m_PressedBitmap.Getobject(sizeof(bmp)?&bmp);
pDC->BitBlt(0?0?rect.Width()?rect.Height()?&MemDC?0?0?SRCCOPY);
}

//?TODO:??添加您的代碼以繪制指定項
}
void?CPicButton::SetBitmapId(int?nOver?int?nNormal?int?nPressed?int?nFocus)
{
m_NormalBitmap.LoadBitmap(nNormal);
m_PressedBitmap.LoadBitmap(nPressed);
m_FocusBitmap.LoadBitmap(nFocus);
m_OverBitmap.LoadBitmap(nOver);

}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-06-16?11:27??CPicButton\
?????文件????????3099??2017-06-16?09:50??CPicButton\PicButton.cpp
?????文件?????????968??2017-06-16?09:50??CPicButton\PicButton.h

評論

共有 條評論