MFC 設置按鈕背景,點擊後切換背景(不是按下時和鬆開時切換)

週一開始一直在做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來進行按鈕的背景設置,有時間的話會把自己的學習總結放上來,希望也能幫助別人。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章