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);

   有关各种按钮的控制界面如下:VS2010中新控件的编程------ MFC按钮_第1张图片

你可能感兴趣的:(VS2010)