VS2010中新控件的編程------ MFC按鈕

  MFC按鈕

1) 按鈕  

在Page1中加入按鈕資源,並加入按鈕設置風格相關的選擇框,在CMFCButton中可以設置按鈕的圖標、圖標和文本的位置、信息提示等

m_bRightImage設置圖標是否靠右;

m_bTopImage設置圖標是否朝上;

m_nFlatStyle設置按鈕的屬性;

SetImage設置按鈕上的圖標,其中參數1爲正常狀態下的圖標,參數2爲鼠標置於其上的圖標,參數3爲禁止狀態下的圖標,如果設置爲NULL則表示按鈕上沒有圖標;

SetMouseCursor()設置位於按鈕上的鼠標狀態,

m_Button.SetMouseCursor(NULL);

m_Button.SetMouseCursorHand();

m_Button.SetMouseCursor(AfxGetApp()->LoadCursor(IDC_CURSOR));

          SizetoContent()使得按鈕大小和其上的內容相一致

2) 單選按鈕

在資源對話框中加入單選按鈕,並定義變量爲CMFCButton型,分別設置當前圖標和Check圖標

m_btnRadio1.m_nFlatStyle= CMFCButton::BUTTONSTYLE_SEMIFLAT;

           m_btnRadio2.m_nFlatStyle= CMFCButton::BUTTONSTYLE_SEMIFLAT;

          m_btnRadio3.m_nFlatStyle =CMFCButton::BUTTONSTYLE_SEMIFLAT;

          m_btnRadio4.m_nFlatStyle =CMFCButton::BUTTONSTYLE_SEMIFLAT;

 

          m_btnRadio1.SetImage( IDB_RADIO_OFF);

          m_btnRadio2.SetImage( IDB_RADIO_OFF);

          m_btnRadio3.SetImage( IDB_RADIO_OFF);

          m_btnRadio4.SetImage( IDB_RADIO_OFF);

 

          m_btnRadio1.SetCheckedImage(IDB_RADIO_ON);

          m_btnRadio2.SetCheckedImage(IDB_RADIO_ON);

          m_btnRadio3.SetCheckedImage(IDB_RADIO_ON);

          m_btnRadio4.SetCheckedImage(IDB_RADIO_ON);

 

          m_btnRadio1.SizeToContent();

          m_btnRadio2.SizeToContent();

          m_btnRadio3.SizeToContent();

          m_btnRadio4.SizeToContent();

 

          m_btnRadio1.SetCheck(TRUE);

3) 複選按鈕

在資源對話框中加入複選按鈕,並定義變量爲CMFCButton型,分別設置當前圖標和Check圖標。

         m_CheckBut.SetImage(IDB_CHECKNO);

         m_CheckBut.SetCheckedImage(IDB_CHECK);

         m_CheckBut.m_nFlatStyle= CMFCButton::BUTTONSTYLE_SEMIFLAT;

         m_CheckBut.SizeToContent();

4) Windows XP風格按鈕

CMFCButton默認爲XP類型的按鈕,能夠根據設定的風格顯示相應界面的風格,也可去掉這樣的風格,成爲普通的按鈕。

         UpdateData();

         CMFCButton::EnableWindowsTheming(m_XPStyle);

         RedrawWindow();

5) 帶菜單的按鈕設計

在資源中加入加入按鈕控件,並定義變量CMFCMenuButton類型,利用該類的成員函數加入相應的菜單資源,並設置屬性

m_menu.LoadMenu(IDR_MENU1);

m_MenuBut.m_hMenu= m_menu.GetSubMenu(0)->GetSafeHmenu();

m_MenuBut.SizeToContent();

m_MenuBut.m_bOSMenu= TRUE;

m_MenuBut.m_bRightArrow= TRUE;

m_MenuBut.m_bStayPressed = TRUE;

m_MenuBut.m_bDefaultClick= TRUE;

         CMFCToolBar::AddToolBarForImageCollection(IDR_TOOLBAR_MENU_IMAGES);

按鈕菜單的選擇,判斷選擇的是那一個菜單

CStringstrItem;

         switch(m_MenuBut.m_nMenuResult)

         {

         case ID_MENU_MENUITEM1:

                   strItem= _T("Menu item1");

                   break;

         case ID_MENU_MENUITEM2:

                   strItem= _T("Menu item2");

                   break;

         case ID_MENU_MENUITEM3:

                   strItem= _T("Menu item3");

                   break;

         case ID_MENU_MENUITEM4:

                   strItem= _T("Menu item4");

                   break;

         }

         AfxMessageBox(strItem);

   有關各種按鈕的控制界面如下:

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