vs2015vs c 控件无法添加被选中

& VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)
VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)
&&&&&& 因为私人问题,鸡啄米暂停更新了几天,首先向关注鸡啄米动态的朋友说一声抱歉。&&&&&& 言归正传,鸡啄米上一节中讲了的用法,本节继续讲解常用控件--按钮控件的使用。&&&&&& 按钮控件简介&&&&&& 按钮控件包括命令按钮(Button)、单选按钮(Radio Button)和复选框(Check Box)等。命令按钮就是我们前面多次提到的狭义的按钮控件,用来响应用户的鼠标单击操作,进行相应的处理,它可以显示文本也可以嵌入位图。单选按钮使用时,一般是多个组成一组,组中每个单选按钮的选中状态具有互斥关系,即同组的单选按钮只能有一个被选中。&&&&&& 命令按钮是我们最熟悉也是最常用的一种按钮控件,而单选按钮和复选框都是一种比较特殊的按钮控件。单选按钮有选中和未选中两种状态,为选中状态时单选按钮中心会出现一个蓝点,以标识选中状态。一般的复选框也是有选中和未选中两种状态,选中时复选框内会增加一个&&&,而三态复选框(设置了BS_3STATE风格)有选中、未选中和不确定三种状态,不确定状态时复选框内出现一个灰色&&&。&&&&&& 按钮控件会向父窗口发送通知消息,最常用的通知消息莫过于BN_CLICKED和BN_DOUBLECLICKED了。用户在按钮上单击鼠标时会向父窗口发送BN_CLICKED消息,双击鼠标时发送BN_DOUBLECLICKED消息。&&&&&& 按钮控件的创建&&&&&& 提供了CButton类封装按钮控件的所有操作。&&&&&& 之前的教程中,我们是在对话框模板上直接添加的按钮控件资源,但某些特殊情况下需要我们动态创建按钮控件,即通过CButton类的成员函数Create来创建按钮。下面是Create函数的原型:virtual BOOL Create(&& LPCTSTR lpszCaption,&& DWORD dwStyle,&& const RECT& rect,&& CWnd* pParentWnd,&& UINT nID );&&&&&& 参数说明:&&&&&& lpszCaption:指定按钮控件显示的文本。&&&&&& dwStyle:指定按钮控件的风格,可以设置为以下按钮风格的任意组合。&&&&&& BS_AUTOCHECKBOX :同BS_CHECKBOX,不过单击鼠标时按钮会自动反转&&&&&& BS_AUTORADIOBUTTON: 同BS_RADIOBUTTON,不过单击鼠标时按钮会自动反转&&&&&& BS_AUTO3STATE :同BS_3STATE,不过单击按钮时会改变状态&&&&&&&BS_CHECKBOX:指定在矩形按钮右侧带有标题的选择框&&&&&& BS_DEFPUSHBUTTON:指定默认的命令按钮,这种按钮的周围有一个黑框,用户可以按回车键来快速选择该按钮&&&&&& BS_GROUPBOX:指定一个组框&&&&&& BS_LEFTTEXT:使控件的标题显示在按钮的左边&&&&&& BS_OWNERDRAW:指定一个自绘式按钮&&&&&& BS_PUSHBUTTON:指定一个命令按钮&&&&&& BS_RADIOBUTTON:指定一个单选按钮,在圆按钮的右边显示正文&&&&&& BS_3STATE:同BS_CHECKBOX,不过控件有3 种状态&选择、未选择和变灰&&&&&&&当然,除了以上列出的风格,一般还会为按钮设置WS_CHILD、WS_VISIBLE和WS_TABSTOP等风格,WS_TABSTOP风格使按钮控件具有tab停止属性,即按tab键切换焦点控件时能够将焦点停在按钮控件上。创建一组单选按钮时,第一个按钮的风格应设置为WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_GROUP|BS_AUTORADIOBUTTON,其他单选按钮的风格应为WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,不包含WS_TABSTOP和WS_GROUP。&&&&&&&在对话框模板上直接添加按钮控件时,它的属性中包含了上述风格,例如,复选框的Tri_state属性实际上代表的就是BS_3STATE风格。&&&&&& 剩下的三个参数与静态文本框的Create函数中的相应参数类似,大家可以参考前面静态文本框的讲解,也可以查阅。&&&&&&& CButton类的主要成员函数&&&&&&&下面是CButton类的一些主要的成员函数,至于其他的函数大家可以在MSDN中查看。&&&&&& HBITMAP SetBitmap(HBITMAP hBitmap);&&&&&& 设置要在按钮中显示的位图。参数hBitmap为位图的句柄。返回值为按钮原来位图的句柄。&&&&& &HBITMAP GetBitmap( )&&&&&& 获取之前由SetBitmap函数设置的按钮位图的句柄。&&&&&&&void SetButtonStyle(UINT nStyle,BOOL bRedraw = TRUE);&&&&&& 设置按钮的风格。参数nStyle指定按钮的风格,bRedraw指定按钮是否重绘,为TRUE则重绘,否则不重绘,默认为重绘。&&&&&&&&UINT GetButtonStyle( )&&&&&& 获取按钮控件的风格。&&&&&& void SetCheck(int nCheck);&&&&&& 设置按钮的选择状态。参数nCheck为0表示未选中状态,1表示选中状态,2表示不确定状态(仅用于复选框)。&&&&&&&int GetCheck( )&&&&&& 获取按钮的选择状态。返回值的意义同SetCheck函数的nCheck参数。&&&&&& HCURSOR SetCursor(HCURSOR hCursor);&&&&&& 设置要显示到按钮上的光标图。参数hCursor指定了光标的句柄。返回值为按钮原来光标的句柄。&&&&&& HCURSOR GetCursor( );&&&&&& 获取之前由SetCursor设置的光标的句柄。&&&&&& HICON SetIcon(HICON hIcon);&&&&&& 设置要在按钮上显示的图标。参数hIcon指定了图标的句柄。返回值为按钮原来图标的句柄。&&&&&& HICON GetIcon( )&&&&&& 获取之前由SetIcon设置的图标的句柄。&&&&&& void SetState(BOOL bHighlight);&&&&&& 设置按钮的高亮状态。参数bHighlight指定按钮是否高亮显示,非0则高亮显示,否则取消高亮显示状态。&&&&&& UINT GetState( )&&&&&& 获取按钮控件的选择状态、高亮状态和焦点状态。我们可以通过将返回值与各个掩码相与来获得各种状态值,掩码与对应的相与结果说明如下:&&&&&& 掩码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)&&&&&& 返回复选框或单选按钮的选择状态。返回值为0表示按钮未被选择,为1表示按钮被选择,为2表示按钮处于不确定状态(仅用于复选框)。&&&&&& void CheckRadioButton(int nIDFirstButton,int nIDLastButton,int nIDCheckButton);&&&&&& 用来选择组中的一个单选按钮。参数nIDFirstButton指定了组中第一个按钮的ID,nIDLastButton指定了组中最后一个按钮的ID,nIDCheckButton指定了要选择的按钮的ID。&&&&&& int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);&&&&&& 用来获得一组单选按钮中被选中按钮的ID。参数nIDFirstButton 说明了组中第一个按钮的ID,nIDLastButton 说明了组中最后一个按钮的ID。&&&&&& 另外,CWnd类的成员函数GetWindowText()、SetWindowText()等也可以用来获取或设置按钮中显示的文本。&&&&&& 关于按钮控件Button、Radio Button和Check Box的使用基础就介绍到此,下一节中鸡啄米将举实例为大家演示各种按钮控件的使用方法,希望大家能继续关注。
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 0:15:31)&&( 22:29:38)&&( 21:26:10)&&( 22:25:46)&&( 20:30:21)&&( 21:30:18)&&( 22:3:6)&&( 20:53:3)&&( 23:49:3)&&( 21:35:2)
很专业的知识,继续来学习!
过来学习学习
博主的话给我一种很职业的感觉,呵呵~鸡啄米 于
10:57:27 回复职场人嘛,呵呵
专业,塑造一切!
很专业的呢
感谢博主的付出,你的Mfc入门对我的帮助很大!谢谢!鸡啄米 于
00:04:08 回复感谢你给的反馈,谢谢支持
谢谢博主,有时间来西安的话我请你喝酒鸡啄米 于
21:35:54 回复呵呵,谢谢了
虽然看不太懂,但继续努力学习
鸡啄米这个网站做得太棒了,谢谢你们的辛勤付出,也谢谢你们的乐于分享。东西都很有用,做得不错。要是有关于动态链接库的入门讲解就更棒了哈,不过这只是我的个人想法。滋滋滋滋。
谢谢鸡啄米老师的辛勤付出!教程写得很好,像我这样的新手,都可以直接用到编程里。鸡涿米 于
14:59:33 回复恩wegen 于
15:47:13 回复...认真一看,原来是鸡涿米。。。。。
您好,想请教您一个问题,现有一“加载图像”按钮,点击按钮,在本地文件夹中选一张图片到picture control,怎么获取所加载的图片的路径以及文件名?谢谢您
完全随机文章vs2015无法选择framework版本
[问题点数:100分]
本版专家分:0
CSDN今日推荐
本版专家分:51843
2016年4月 .NET技术大版内专家分月排行榜第二2016年2月 .NET技术大版内专家分月排行榜第二
2017年3月 .NET技术大版内专家分月排行榜第三2017年2月 .NET技术大版内专家分月排行榜第三2016年9月 .NET技术大版内专家分月排行榜第三2016年8月 .NET技术大版内专家分月排行榜第三2016年7月 .NET技术大版内专家分月排行榜第三2016年3月 .NET技术大版内专家分月排行榜第三2016年1月 .NET技术大版内专家分月排行榜第三2015年12月 .NET技术大版内专家分月排行榜第三2015年11月 .NET技术大版内专家分月排行榜第三
本版专家分:17315
2016年3月 移动开发大版内专家分月排行榜第三
本版专家分:29334
2016年10月优秀大版主
恭喜您,在2016年6月份获得优秀版主称号恭喜您,在2016年4月份获得优秀版主称号恭喜您,在2016年5月份获得优秀版主称号恭喜您,在2016年8月份获得优秀版主称号2015年9月优秀大版主2015年5月优秀大版主2014年11月论坛优秀版主
2015年4月 荣获微软MVP称号2014年4月 荣获微软MVP称号
2014年12月 企业软件大版内专家分月排行榜第一2014年11月 企业软件大版内专家分月排行榜第一2014年7月 企业软件大版内专家分月排行榜第一2011年10月 企业开发大版内专家分月排行榜第一2011年5月 企业开发大版内专家分月排行榜第一2011年3月 企业开发大版内专家分月排行榜第一2010年12月 企业开发大版内专家分月排行榜第一2010年11月 企业开发大版内专家分月排行榜第一2010年9月 企业开发大版内专家分月排行榜第一2010年8月 企业开发大版内专家分月排行榜第一2010年7月 企业开发大版内专家分月排行榜第一2010年6月 企业开发大版内专家分月排行榜第一2010年5月 企业开发大版内专家分月排行榜第一
2011年4月 企业开发大版内专家分月排行榜第二
本版专家分:172856
2015年9月 总版技术专家分月排行榜第一2015年8月 总版技术专家分月排行榜第一2015年7月 总版技术专家分月排行榜第一2015年6月 总版技术专家分月排行榜第一2015年5月 总版技术专家分月排行榜第一2015年4月 总版技术专家分月排行榜第一
2016年1月 总版技术专家分月排行榜第二2015年11月 总版技术专家分月排行榜第二2015年10月 总版技术专家分月排行榜第二
优秀小版主
2016年3月 总版技术专家分月排行榜第三
本版专家分:1635
本版专家分:0
本版专家分:1253
本版专家分:0
本版专家分:825
本版专家分:4705
本版专家分:0
匿名用户不能发表回复!|
CSDN今日推荐VS2015插件安装常见问题【vs2015吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:10,422贴子:
VS2015插件安装常见问题
因为我的是win8系统,我的系统最高是4.5,而VS2015需要4.6,于是我下载了腾讯提供的Microsoft ,NET2015,但是在安装的过程中,提示前一次安装需要重启,我不断的重启打开后还是一样的,求各位大佬解答一下!急!!
贴吧热议榜
使用签名档&&
保存至快速回贴请教大神,本人刚入门的菜鸟,VS2015中的html控件在设计视图中双击无法跳到事件代码页面
[问题点数:20分,结帖人asd4567890]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:724
本版专家分:27417
2018年2月 总版技术专家分月排行榜第二
2018年2月 .NET技术大版内专家分月排行榜第一
2018年1月 .NET技术大版内专家分月排行榜第二
本版专家分:29334
2016年10月优秀大版主
恭喜您,在2016年6月份获得优秀版主称号恭喜您,在2016年4月份获得优秀版主称号恭喜您,在2016年5月份获得优秀版主称号恭喜您,在2016年8月份获得优秀版主称号2015年9月优秀大版主2015年5月优秀大版主2014年11月论坛优秀版主
2015年4月 荣获微软MVP称号2014年4月 荣获微软MVP称号
2014年12月 企业软件大版内专家分月排行榜第一2014年11月 企业软件大版内专家分月排行榜第一2014年7月 企业软件大版内专家分月排行榜第一2011年10月 企业开发大版内专家分月排行榜第一2011年5月 企业开发大版内专家分月排行榜第一2011年3月 企业开发大版内专家分月排行榜第一2010年12月 企业开发大版内专家分月排行榜第一2010年11月 企业开发大版内专家分月排行榜第一2010年9月 企业开发大版内专家分月排行榜第一2010年8月 企业开发大版内专家分月排行榜第一2010年7月 企业开发大版内专家分月排行榜第一2010年6月 企业开发大版内专家分月排行榜第一2010年5月 企业开发大版内专家分月排行榜第一
2011年4月 企业开发大版内专家分月排行榜第二
本版专家分:1190
结帖率 100%
本版专家分:1190
结帖率 100%
本版专家分:33
本版专家分:2
本版专家分:2349
2016年11月 扩充话题大版内专家分月排行榜第三
本版专家分:3712
本版专家分:2
本版专家分:2
本版专家分:1
本版专家分:1
本版专家分:31
匿名用户不能发表回复!|
CSDN今日推荐13:59 提问
VS2015 怎么在工具箱中添加自定义的用户控件
如题,自定义了控件,间接继承自UserControl,运行无错,并没有在工具箱中生成控件,vs2015的版本是学术社区版。
按赞数排序
没有生成可以在工具箱右键鼠标,选择项,然后在里面选择你用户控件生成的dll文件。
添加对控件项目的引用,重新编译就有。保证你的控件类定义为public了
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐

我要回帖

更多关于 vs c 控件无法添加 的文章

 

随机推荐