Visual Studio 2015 MFC之Button顏色變化-斷點除錯(Debug)

熊來闖一闖發表於2022-01-16

 

  軟體開發,對自己的程式進行除錯很重要,本次文章在上一邊隨筆的基礎上,介紹一下Button控制元件做顯示燈的用法,Button控制元件的新增和變數設定等可以參考下面的的連結:Visaul Studio 2015 MFC控制元件使用之--按鈕(Button) - 熊來闖一闖 - 部落格園 (cnblogs.com),在以上的基礎上進一步介紹斷點除錯;

  • 在xxxDlg.cpp中的OnInitDialog()窗體初始化函式新增Button控制元件顏色初始化,在程式當中首次對Button控制元件進行顏色更改,需新增以下兩句,否則直接對Button控制元件進行設定顏色無效;
    mfc_Button_OpenClose.m_bTransparent = FALSE;
    mfc_Button_OpenClose.m_bDontUseWinXPTheme = TRUE;
 1 BOOL CMFCApplication1Dlg::OnInitDialog()
 2 {
 3     CDialogEx::OnInitDialog();
 4 
 5     // Set the icon for this dialog.  The framework does this automatically
 6     //  when the application's main window is not a dialog
 7     SetIcon(m_hIcon, TRUE);            // Set big icon
 8     SetIcon(m_hIcon, FALSE);        // Set small icon
 9 
10     // TODO: Add extra initialization here
11     //Button按鈕初始化
12     mfc_Button_OpenClose.m_bTransparent = FALSE;
13     mfc_Button_OpenClose.m_bDontUseWinXPTheme = TRUE;
14     mfc_Button_OpenClose.SetFaceColor(RGB(255, 255, 255));15 
16     return TRUE;  // return TRUE  unless you set the focus to a control
17 }
  • 在OnClickedMfcbutton1()函式中新增如下事件,即可實現Button按鈕的顏色變化
 1 void CMFCApplication1Dlg::OnClickedMfcbutton1()
 2 {
 3     // TODO: Add your control notification handler code here
 4     if (Button_flag == 0)
 5     {
 6         Button_flag = 1;
 7         mfc_Button_OpenClose.SetWindowTextW(L"關閉");
 8         mfc_Button_OpenClose.SetFaceColor(RGB(0, 255, 0));//綠色
 9     }
10     else
11     {
12         Button_flag = 0;
13         mfc_Button_OpenClose.SetWindowTextW(L"開啟");
14         mfc_Button_OpenClose.SetFaceColor(RGB(255, 255, 255));//白色
15     }
16 
17 
18 }
  • 實現的最終效果如下:

     

 

  •  使用Visual Studio的斷點除錯功能,來檢視Button_flag變數在點選Button之後的賦值變化,在Button點選事件函式Button_flag變數對應的行數右側單擊,會出現對應的紅點,然後點選程式視窗的開啟按鈕,程式會自動跳轉到設定斷點了的一行程式;

 

 

  • 可以通過選單欄的單步執行按鈕,對所編寫的程式碼一行一行地執行 

 

  •  將滑鼠放置到Button_flag變數,會顯示當前變數地值,如下圖所示,當前值為false,當程式往下繼續執行的時候,在Button_flag = 1處,該變數被賦值為true,通過這種除錯方式可以追蹤變數的變化,在程式有bug的時候,可以很方便的幫忙定位錯誤。

 

   軟體程式設計並不是博主的特長,如有解釋的不夠清楚的地方敬請見諒,剛好最近的專案當中用到了MFC,後續會繼續分享在開發當中使用到的東西,希望能在分享中共同進步。

 

相關文章