




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——VC2023中實現自定義窗口按鈕控件
VC++2023中實現自定義窗口按鈕控件
VC++2023中實現自定義窗口按鈕控件
1.新建一個MFC類使得它繼承與CButton類;
2.
3
VC++2023中實現自定義窗口按鈕控件
2.在生成的類中添加變量
#pragmaonce
//CCustomButton
classCCustomButton:publicCButton
{
public:
};CCustomButton();virtual~CCustomButton();BOOLm_IsPressed;DECLARE_MESSAGE_MAP()virtualvoidDrawItem(LPDRAWITEMSTRUCT/*lpDrawItemStruct*/);afx_msgvoidOnLButtonUp(UINTnFlags,CPointpoint);afx_msgvoidOnLButtonDown(UINTnFlags,CPointpoint);afx_msgBOOLOnEraseBkgnd(CDC*pDC);
DECLARE_DYNAMIC(CCustomButton)protected:public:
VC++2023中實現自定義窗口按鈕控件
3.。重寫方法WM_BUTTONDOWNWM_LBUTTONUP
//CustomButton.cpp:實現文件
//
#includestdafx.h
#includejusttest.h
#includeCustomButton.h
//CCustomButton
IMPLEMENT_DYNAMIC(CCustomButton,CButton)
CCustomButton::CCustomButton()
{
}
CCustomButton::~CCustomButton()
{
VC++2023中實現自定義窗口按鈕控件
}
BEGIN_MESSAGE_MAP(CCustomButton,CButton)
ON_WM_LBUTTONUP()
ON_WM_LBUTTONDOWN()
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
//CCustomButton消息處理程序
voidCCustomButton::DrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct)
{
CRectrect;
GetClientRect(rect);
CDCdc;
dc.Attach(lpDrawItemStruct-hDC);
dc.SetBkMode(TRANSPARENT);
CBrushm_Brush;
m_Brush.CreateStockObject(NULL_BRUSH);
dc.SelectObject(m_Brush);
if(m_IsPressed)
{
CPenpen(PS_SOLID,2,RGB(255,2,0));
dc.SelectObject(pen);
HRGNrgn=CreateEllipticRgn(0,0,rect.Width(),rect.Height());
SetWindowRgn(rgn,TRUE);
dc.Ellipse(0,0,rect.Width(),rect.Height());
dc.SetTextColor(RGB(0,0,255));
}
else
{
CPenpen(PS_SOLID,2,RGB(5,255,0));
dc.SelectObject(pen);
HRGNrgn=CreateEllipticRgn(0,0,rect.Width(),rect.Height());
SetWindowRgn(rgn,TRUE);
dc.Ellipse(0,0,rect.Width(),rect.Height());
dc.SetTextColor(RGB(120,0,190));
}
VC++2023中實現自定義窗口按鈕控件
CStringstr;
GetWindowText(str);
dc.DrawText(str,CRect(0,0,rect.Width(),rect.Height()),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
//TODO:添加您的代碼以繪制指定項
}
voidCCustomButton::OnLButtonUp(UINTnFlags,CPointpoint)
{
//TODO:在此添加消息處理程序代碼和/或調用默認值
m_IsPressed=FALSE;
CButton::OnLButtonUp(nFlags,point);
}
voidCCustomButton::OnLButtonDown(UINTnFlags,CPointpoint)
{
//TODO:在此添加消息處理程序代碼和/或調用默認值
m_IsPressed=TRUE;
CButton::OnLButtonDown(nFlags,point);
}
BOOLCCustomButton::OnEraseBkgnd(CDC*pDC)
{
//TODO:在此添加消息處理程序代碼和/或調用默認值
returnTRUE;
//returnCButton::OnEraseBkgnd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國汽車影音主機市場調查研究報告
- 2025年中國氣動快裝蝶閥市場調查研究報告
- 2025年中國數控立式銑鉆床市場調查研究報告
- 2025年中國擠出焊機市場調查研究報告
- 2025年中國平鋼化燈具玻璃市場調查研究報告
- 2025年中國冷凝器清洗劑市場調查研究報告
- 2025年中國PH/ORP測試系統(tǒng)市場調查研究報告
- 合同范本之購房合同備案流程模板
- 居家環(huán)境治理服務合同(2篇)
- 中藥材原料藥采購合同范文
- 非機動車交通管理及規(guī)劃研究
- 勞務派遣及醫(yī)院護工實施預案
- 華電行測題庫及答案2024
- 產后病(中醫(yī)婦科學)
- 蘇州市2023-2024學年高一上學期期末考試數學試題(原卷版)
- 社區(qū)獲得性肺炎教學演示課件
- 農村藍莓樹補償標準
- 1.3.1 三角函數的周期性課件
- 冷鏈疫苗管理課件
- 【課件】信息系統(tǒng)的優(yōu)勢與局限性 2023-2024學年人教中圖版(2019)高中信息技術必修二
評論
0/150
提交評論