週一開始一直在做MFC自繪按鈕,網站上找了很多大神以前的博客和論壇討論,但都沒辦法直接解決我的這個問題,所以就只能自己來解決這個問題。
首先在Dlg.h文件裏申明下面兩個變量,
CBitmapButton m_cBtn;
bool bButtonFlag;
然後在構造函數裏初始化bButtonFlag,
bButtonFlag=0;
然後在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=0;
}
else
{
m_cBtn.LoadBitmaps(IDB_RED);
m_cBtn.SizeToContent();
m_cBtn.InvalidateRect(NULL,true);
bButtonFlag=1;
}
}
最後感謝各位大神們留下的各種信息,以上只是一種粗淺的實現方法,後面將會學習用DC來進行按鈕的背景設置,有時間的話會把自己的學習總結放上來,希望也能幫助別人。