周一開始一直在做MFC自繪按鈕,網站上找了很多大神以前的部落格和論壇讨論,但都沒辦法直接解決我的這個問題,是以就隻能自己來解決這個問題。
首先在Dlg.h檔案裡申明下面兩個變量,
CBitmapButton m_cBtn;
bool bButtonFlag;
然後在構造函數裡初始化bButtonFlag,
然後在OnInitDialog()裡加入下面三句話,
m_cBtn.SubclassDlgItem(IDC_BUTTON1, this); //關聯按鈕和對話框
m_cBtn.LoadBitmaps(IDB_GRAY1);//給按鈕加載圖檔
m_cBtn.SizeToContent();//調整按鈕大小為圖檔大小
最後寫按鈕的消息響應函數,
void CMyButtonTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
if (bButtonFlag)
{
m_cBtn.LoadBitmaps(IDB_GRAY1);
m_cBtn.SizeToContent();
m_cBtn.InvalidateRect(NULL,true);//強制重新整理按鈕
bButtonFlag=;
}
else
{
m_cBtn.LoadBitmaps(IDB_RED);
m_cBtn.SizeToContent();
m_cBtn.InvalidateRect(NULL,true);
bButtonFlag=;
}
}
最後感謝各位大神們留下的各種資訊,以上隻是一種粗淺的實作方法,後面将會學習用DC來進行按鈕的背景設定,有時間的話會把自己的學習總結放上來,希望也能幫助别人。