VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 221|回复: 0

[交流] MFC编程入门三(按钮(Button)单选按钮(Radio Button)复选框(Check Box)

[复制链接]
13_avatar_middle
最佳答案
1 
在线会员 发表于 2021-4-1 23:51:26 | 显示全部楼层 |阅读模式
按钮控件包括按钮(Button)、单选按钮(Radio Button)和复选框(Check Box)-----同属Cbutton没什么好说的
MFC提供了CBUtton类封装按钮控件的所有操作,常用的列出了,其他的学到再说吧,牵扯太多了

CButton类的主要成员函数。至于其他的函数大家可以在MSDN中查看

HBITMAP SetBitmap(HBITMAP hBitmap);
设置要在按钮中显示的位图。参数hBitmap为位图的句柄。返回值为按钮原来位图的句柄。

HBITMAP GetBitmap() const;
获取之前由SetBitmap函数设置的按钮位图的句柄。

void SetButtonStyle(UINT nStyle, BOOL bRedraw = TRUE);
设置按钮的风格。参数nStyle指定按钮的风格,bRedraw指定按钮是否重绘,为TRUE则重绘,否则不重绘,默认为重绘

UINT GetButtonStyle() const;
获取按钮控件的风格。

void SetCheck(int nCheck);
设置按钮的选择状态。参数nCheck为0表示未选中状态,1表示选中状态,2表示不确定状态(仅用于复选框)

int GetCheck() const;
获取按钮的选择状态。返回值的意义同SetCheck函数的nCheck参数。

HCURSOR SetCursor(HCURSOR hCursor);
设置要显示到按钮上的光标图。参数hCursor指定了光标的句柄。返回值为按钮原来的光标的句柄。

HCURSOR GetCursor();
获取之前有SetCursor设置的光标的句柄。

HICON SetIcon(HICON hIcon);
设置要在按钮上显示的图标。参数hIcon指定了图标的句柄。返回值为按钮原来图标的句柄。

HICON GetIcon() const;
获取之前有SetIcon设置的图标的句柄。

void SetState(BOOL bHighlight);
设置按钮的高亮状态。参数bHighlight指定按钮是否高亮显示,非0则高亮显示,否则取消高亮显示状态

UINT GetState() const;
  获取按钮控件的选择状态、高亮状态和焦点状态。我们可以通过将返回值与各个掩码相与来获得各种状态值,掩码与对应的相与结果说明如下
  掩码0x0003:用来获取单选按钮或复选框的状态。相与结果为0表示未选中,1表示被选中,2表示不确定状态(仅用于复选框)
  掩码0x0004:用来判断按钮是否高亮显示。相与结果为非0值表示按钮是高亮显示的。当单击按钮并按住鼠标左键时,按钮会呈高亮显示
  掩码0x0008:相与结果为非零值表示按钮拥有输入焦点
  下面再列出几个继承自CWnd类的成员函数,通过它们获取或设置按钮控件的状态非常方便,只需要知道按钮的ID

void CheckDlgButton(int nIDButton, UINT nCheck);
   用来设置按钮的选中状态。参数nIDButton指定了按钮的ID。nCheck的值为0表示按钮未被选择,为1表示按钮被选择,为2表示按钮处于不确定状

态   (仅用于复选框)
UINT IsDlgButtonChecked(int nIDButton) const;[
    返回复选框或单选按钮的选择状态。返回值为0表示按钮未被选择,为1表示按钮被选择,为2表示按钮处于不确定状态(仅用于复选框)

   nIDCheckButton 指定了要选择的按钮的ID]
void CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton)
    用来选择组中的一个单选按钮。参数nIDFirstButton指定了组中第一个按钮的ID,nIDLastButton指定了组中最后一个按钮的ID
      
int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton)
用来获得一组单选按钮中被选中按钮的ID。参数nIDFirstButton说明了组中第一个按钮的ID,nIDLastButton说明了组中最后一个按钮的ID
另外,CWnd类的成员函数GetWindowText()、SetWindowText()等也可以用来获取或设置按钮中显示的文本

按钮-事件-BN_CLICKED添加代码,可以打开任意网址,目录,视频,图片,文本l等,很实用
ShellExecute(NULL, L"open", L"https://www.cctry.com/", NULL, NULL, SW_SHOWNORMAL);
ShellExecute(NULL, CString("open"), CString("https://www.cctry.com/"), NULL, NULL, SW_SHOWNORMAL);
图片,exe,doc,jpg,bmp等都可以打开
CString("E:\\编程视频\\小白学编程")注意:路径名一定要加上‘\\’

单选按钮
CheckedRadioButton(IDC_xxx1,IDC_xxx2,IDC_xxx3,IDC_xxx1)//针对1-多个指定选定
也可以和变量名绑定使用  
1)使某个控件或窗口可用/不可用
GetDlgItem(IDC_XX)->EnableWindow(false);//变灰,不可用,可见
GetDlgItem(IDC_XX)->EnableWindow(true);//还原正常,可用,可见

2)使某个控件或窗口可见/不可见
GetDlgItem(IDC_XX)->ShowWindow(SW_HIDE);//隐藏控件,不可见
GetDlgItem(IDC_XX)->ShowWindow(SW_SHOW);//显示控件,可见

m_check1.SetCheck(true)或false 0和1都可以  

总结:这三个按钮挺简单的 不涉及事件-消息处理上,小菜完全可以得心应手


评分

参与人数 1热心值 +3 收起 理由
75_avatar_small wl1383838438 + 3 赞一个!

查看全部评分





上一篇:MFC编程入门之二(接各种按钮详解)
下一篇:MFC编程入门之四 check box--植物大战僵尸练手
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2021-4-23 04:31

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表