VC++基础控件案例图详解
- 格式:doc
- 大小:1017.50 KB
- 文档页数:25
第二章VC6.0简单绘图说明许多学编程的都是从C 语言开始入门的,而目前的现状是:有些学校以Turbo C 为环境讲C 语言,只是Turbo C 的环境实在太老了,复制粘贴都很不方便。
有些学校直接拿VC 来讲C 语言,因为VC 的编辑和调试环境都很优秀,并且VC 有适合教学的免费版本。
可惜在VC 下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。
初学编程想要绘图就得用TC,很是无奈。
还有计算机图形学,这门课程的重点是绘图算法,而不是Windows 编程。
所以,许多老师不得不用TC 教学,因为Windows 绘图太复杂了,会偏离教学的重点。
新的图形学的书有不少是用的OpenGL,可是门槛依然很高。
要给初学者一个简单的学习平台,就要VC的开发平台和TC的简单的绘图功能,于是就有了这个EasyX 库,我们需要在VC下下载安装EasyX库,下载地址:http:///。
下面是VC下简单绘图函数的基本说明。
1.系统支持操作系统版本:Windows 2000 及以上系统。
编译环境版本:Visual C++ 6.0 / 2008(x86 & x64) / 2010(x86 & x64)。
2.安装请先将下载的压缩包解压缩,然后执行Setup.hta,并跟随提示安装。
安装程序会检测已经安装的VC 版本,并根据选择将对应的.h 和.lib 文件安装至VC 的include 和lib 文件夹内。
安装程序不会修改注册表或者本机的任何文件。
如果需要手动安装,请根据下面的文件列表说明将安装包里的相关文件分别复制到VC 对应的include 和lib 文件夹内,或者将include 和lib 文件夹放到任意位置,然后修改VC 中的Lib 和Include 的引用路径。
3.卸载由于安装程序并不改写注册表,因此在“添加删除程序”中不会看到EasyX 的卸载项。
VC++简单应用指南三——控件的使用一.静态文本控件1.设置静态文本控件显示文字2.通过函数修改静态文本显示内容/2.1修改ID2.2给文本框添加变量 2.3变量调用函数2.4程序m_m.SetWindowText("函数修改文本显示内容");3.设置文本颜色/3.1添加窗口消息句柄 3.2添加程序3.3程序if(nCtlColor==CTLCOLOR_STATIC)pDC->SetTextColor(RGB(255,0,0));4.给静态文本添加单击事件/4.1修改ID 4.2选择Notify属性(属性-样板-通知)4.3创建单击事件函数 4.4程序void CWenbenDlg::OnStatic1(){// TODO: Add your control notification handlercode hereMessageBox("成功");}二、编辑框控件1.1密码输入编辑框 1.2使编辑框内容只读(用户不可修改)1.3让编辑框内容多行显示 1.4在编辑框中Enter键换行1.5效果显示2.获取编辑框内容/2.1给编辑框添加变量2.2添加按钮控件并为其添加函数 2.3程序CString str;m_v.GetWindowText(str);MessageBox(str);2.4显示效果三、图像控件1.1创建图像控件 1.2为图像控件添加图像/1.2.1在资源视图中导入图像1.2.2显示图像 1.2.3排列控件上下显示顺序1.2.4显示效果 2.设置边框颜色和填充颜色只有类型是框架或者矩形时,可调控颜色;类型为位图时,是无法调控的3.居中显示位图四、按钮控件1.按钮控件显示图标/1.1先设置图标属性 1.2添加图标/1.3程序m_b.SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME));1.4显示效果2.为按钮控件添加单击事件/2.1双击添加函数2.2通过类向导添加函数五、复选框控件1.设置复选框选中状态/1.1创建对话框 1.2创建2个群组框控件和6个复选框控件1.3给复选框设置变量 1.4.1在OnInitDialog函数中设置复选框1.4.1程序 1.4.2属性中设置复选框不可修改m_Chinese.EnableWindow(FALSE);//复选框不可修改m_Chinese.SetCheck(1);//复选框选中状态m_Arith.EnableWindow(FALSE);m_Arith.SetCheck(1);2.用复选框统计信息/2.1在案例一的基础上加控件 2.2给提交按键添加单击事件2.2程序 2.3测试CString ID,Name,str,text;GetDlgItem(IDC_EDIT1)->GetWindowText(Name);GetDlgItem(IDC_EDIT2)->GetWindowText(ID);str="姓名:"+Name+"编号:"+ID+"\r\n";str+="必修课:语文、数学\r\n选修课:";for(int i=0;i<4;i++){CButton*but=(CButton*)GetDlgItem(IDC_CHECK3+i);if(but->GetCheck()==1){but->GetWindowText(text);str+=text+"、";}}str=str.Left(str.GetLength()-2);MessageBox(str);六、单选按钮控件1.单选按钮分组/1.1创建对话框 1.2创建单选按钮控件1.3属性对单选进行分组 1.4效果语文单选按钮以后为一组;英语单选按钮以后为一组;遵循Tab键顺序2.使用Tab键重建分组/2.1打乱上例的单选按钮顺序 2.2使用Tab顺序重新排列顺序3.获得单选按钮控件文本/3.1创建按钮控件 3.2创建变量3.3为四个单选按钮创建单选事件 3.3程序void CDfsqerDlg::OnRadio1(){ m_Radio=1;}void CDfsqerDlg::OnRadio2(){ m_Radio=2;}void CDfsqerDlg::OnRadio3(){ m_Radio=3;}void CDfsqerDlg::OnRadio4(){ m_Radio=4;}3.4提交按键的单击事件创建 3.4程序CString str;CButton *Radiobutton=(CButton*)GetDlgItem(IDC_RADIO1+m_Radio-1);Radiobutton->GetWindowText(str);MessageBox(str);1.创建组合框/1.1创建对话窗口 1.2添加组合框控件1.3在属性中添加下拉内容 1.3显示效果如果下拉无法显示,就增大组合框控件的大小1.4调整数据显示顺序 1.5类型为简单显示2.获取选择的数据/2.1以上例,为组合框添加变量 2.2为组合框添加选择改变事件2.3为组合框添加选择改变事件添加函数 2.3程序int pos=m_Combo.GetCurSel();//获得当前选择的列表项索引CString str;m_Combo.GetLBText(pos,str);//根据索引获得数据MessageBox(str);1.在列表框中指定位置插入内容/1.1创建对话框 1.2添加2个静态文本,2个编辑框,1个列表框和按键1.3对编辑框和列表框添加变量 1.4在对话框初始化时向列表框插入数据程序:m_List.AddString("语文");m_List.AddString("数学");m_List.AddString("英语");m_List.AddString("物理");1.5给插入按键添加单击事件 1.5程序UpdateData(TRUE);m_List.InsertString(m_Num,m_Text);2.实现避免插入重复数据/2.1修改上例,删除编辑框等 2.2修改编辑框变量的属性2.3处理插入按钮的点击事件CString str;m_Text.GetWindowText(str);int num=m_List.GetCount();//获得列表框的行数for(int i=0;i<num;i++){CString Text;m_List.GetText(i,Text);if(Text == str){MessageBox("数据已存在!");return;}} m_List.AddString(str);3.在列表框中实现复选功能/3.1修改2例; 3.2对列表框设置变量;是控件型3.3双击类文件,打开头文件,修改CListBox为CCheckListBox 3.4确定按键添加函数3.5程序 3.6修改列表框属性CString strText="";int num=m_List.GetCount();//获得列表框的行数for(int i=0;i<num;i++){if(m_List.GetCheck(i)){CString str;m_List.GetText(i,str);strText += str;}}MessageBox(strText);九.进度条控件1.1创建一个对话框 1.2添加一个进度条控件1.3对进度条控件添加变量 1.4在初始化方法中添加进度条范围m_p.SetRange(1,100);//设置进度条范围SetTimer(1,100,NULL);//100是一秒,一秒发生一次事件1.5建立计时器事件 1.6在计时器函数中添加程序static int i;//定义局部变量m_p.SetPos(i++);//定义进度条位置1.6效果:1.7设置显示风格。
VC++ 列表控件(CList) 使用方法(2)列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。
MFC中使用CListCtrl类来封装列表控件的各种操作。
通过调用BOOL Create( DWORD dwStyle, const RECT&rect, CWnd* pParentWnd, UINT nI D );创建一个窗口,dwStyle中可以使用以下一些列表控件的专用风格:LVS_ICON LVS_SMALLICON LVS_LIST LVS_REPORT 这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示LVS_EDITLABELS 结点的显示字符可以被编辑,对于报表风格来讲可编辑的只为第一列。
LVS_SHOWSELALWAYS 在失去焦点时也显示当前选中的结点LVS_SINGLESEL 同时只能选中列表中一项首先你需要设置列表控件所使用的ImageList,如果你使用大图标显示风格,你就需要以如下形式调用:CImageList* SetImageList( CImageList* pImageList, LVSIL_NORMAL);如果使用其它三种风格显示而不想显示图标你可以不进行任何设置,否则需要以如下形式调用:CImageList* SetImageList( CImageList* pImageList, LVSIL_SMALL);通过调用intInsertItem( intnItem, LPCTSTR lpszItem );可以在列表控件中nItem指明位置插入一项,lpszItem为显示字符。
除LVS_REPORT风格外其他三种风格都只需要直接调用InsertItem就可以了,但如果使用报表风格就必须先设置列表控件中的列信息。
通过调用intInsertColumn( intnCol, LPCTSTR lpszColumnHeading, intnFormat , intnWidth, i ntnSubItem);可以插入列。
VC++常⽤控件控件⽤法VC++中常⽤控件的使⽤⽅法12011-02-19 22:55转载⾃韩逸_86最终编辑韩逸_861.表头控制 Header Control2.图像列表控制 Image List3.列表控制和视 List Control&List View4.树控制和视 Tree Control&Tree View5.标签控制和视 Tab Control&Tab View6.⼯具条控制 Toolbar Control7.进度条控制 Progress Control8.滑动条控制 Slider Control9.旋转按钮控制 Spin Button Control10.状态条控制 Status Bar Control其中,绝⼤部分通⽤控制在MFC类库中都存在两种封装形式,即控制类和视类,控制类主要是供直接使⽤控制⽽提供的,⽽视类则是通过间接使⽤控制⽽提供的,视类可以更好地把控制类集成到MFC结构中,并且使⽤视类可以利⽤引⽤直接对嵌套在其中的控制进⾏各种操作。
两者在使⽤⽅法上没有太⼤区别,就拿列表控制类和视类来说,当创建列表视后可通过CListCtrl& ctrlList =GetListCtrl()成员函数取得视类引⽤ctrlList之后,就可以利⽤列表视的视函数对视进⾏各项操作(ctrlList.Add 等)。
第1章演练CHeadCtrl表头控制(CHeaderCtrl)通常应⽤在窗⼝中的⽂本或数据的列表之上。
⼀般为数据列的标题,可以包括多个部分,⽤户可以拖动每个部分并可以控制每列的宽度。
表头控制类提供了普通表头控制的基本⽅法,只有在WINDOWS95以后版本系统中才提供,其⽅法包含在afxcmn.h⽂件中,⼀般与标签控制(CTabCtrl)和列表控制(CListCtrl)组合使⽤。
1.1 表头控制的对象结构1.1.1 表头控制对象的建⽴⽅法CHeaderCtrl &cheaderCtrl 建⽴表头控制对象Create 建⽴表头并绑定对象CHeaderCtrl::Create的格式如下:BOOL Create( DWORD dwStyle, const RECT&rect, CWnd* pParentWnd, UINT nID );其返回值⾮零时初始化成功,否则失败。
VC控件资料汇总--------列表控件1、编辑对话框2、编辑位图三、添加变量四、添加代码(红色部分)BOOL CCListCtrlDlg::OnInitDialog(){CDialog::OnInitDialog();ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}SetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization here//创建列表视图窗口m_imagelist.Create(24,24,ILC_COLOR24|ILC_MASK,1,0);//向图像列表中添加图标m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON1));m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON2));m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON3));//将图像列表关联到列表视图控件中m_list.SetImageList(&m_imagelist,LVSIL_NORMAL );//向列表视图中添加数据m_list.InsertItem(0,"长江",0);m_list.InsertItem(1,"黄河",1);m_list.InsertItem(2,"泰山",2);return TRUE; // return TRUE unless you set the focus to a control}五、编译六、运行七、函数说明1、CListCtrl::SetImageList函数说明CImageList* SetImageList(CImageList*pImageList,int nImageListType)pImageList:图像列表指针nImageListType:标识图像列表类型功能:关联图像列表控件和列表视图。
visual studio net控件使用范例详解
在Visual Studio中使用.NET控件的范例详解如下:
1. 打开Visual Studio,创建一个新的Windows Forms应用程序项目。
2. 在工具箱中,找到你需要的控件。
例如,如果你需要一个按钮,找到Button控件并将其拖动到窗体上。
3. 设置控件的属性。
例如,你可以设置按钮的Text属性为"Click Me",设置其Size属性以调整其大小。
4. 为控件添加事件处理程序。
例如,要为按钮添加单击事件处理程序,你可以双击按钮,Visual Studio会自动为你生成事件处理程序。
5. 在事件处理程序中编写代码以实现控件的功能。
例如,你可以在按钮的单击事件处理程序中编写代码,使其在单击时显示一条消息。
6. 运行应用程序并测试控件的功能。
以上就是在Visual Studio中使用.NET控件的基本步骤。
具体的控件使用方法可能会因控件类型和功能的不同而有所差异,你可以参考Visual Studio 的文档或在线教程来了解更多关于使用.NET控件的详细信息。
老肖VC讲座 一.简单MFC应用程序开发。 例1. 编写如下图的程序,若单击“复制”按钮,则把上面的编辑框中的内容复制到下面的编辑框中;若单击“结束”按钮,则退出程序的运行。
(1)工程创建 ①选择“文件|新建”命令; ②在“工程”选项卡中,选定“MFC App Wizard(exe),输入工程名称TEST,单击“确定”按钮;
③选定“D基本对话框”即创建基于对话框的应用程序,单击“完成”按钮。 老肖VC讲座 (2)放置控件,先删除原有的控件,然后放置本例需要的控件,本例共涉及4个控件:2
个编辑框和2个命令按钮。编辑框主要用来输入数据,也可以用来显示数据;命令按钮用来执行有关操作。 老肖VC讲座 (3)设置控件的属性,控件添加后就要设置其有关的属性。
上编辑框的属性设置:选定“Multiline”复选框,编辑框中可以输入多行文本;选定“Vertical scroll和Auto VScroll,编辑框将有垂直滚动条;选定“Want Return”。 老肖VC讲座 下编辑框的属性设置同上编辑框,但可不选定“Want Return”。 (4)连接变量,为控件连接变量就是为控件起一个名字。每一个控件都是一个对象,调
用MFC类库中的函数都是通过对象来实现的。编辑框属于CEdit类,一个具体的编辑框就是一个CEdit类的对象,如上IDC_EDIT1和IDC_EDIT2。这些对象必须有名称才能对它们进行操作,所以要给每一个对象连接一个变量,作为对象的名称。这个变量将成为类中的一个数据成员。 现在为IDC_EDIT1连接一个变量m_e1。 ①在IDC_EDIT1编辑框中右击鼠标出现快捷菜单选择“建立类向导”,如下图所示。
②在上图中选择“创建类向导”后,弹出如下图所示的MFC ClassWizard对话框,在“Member Variables”中,选定“IDC_EDIT1”,再选择“Add Variable”按钮。 老肖VC讲座 ③出现下图所示的Add Member Variable对话框中输入以下的数据: Member Variable name(成员变量名):m_e1; Category(类别):Control; Variable type(类型):CEdit。
用同样的方法为IDC_EDIT2连接一个变量m_e2,结果如下图所示。 老肖VC讲座 (5)添加并且编写消息处理函数,在建立了对话框(用户操作界面)、设置控件属性
和连接变量后,就要考虑为哪些控件编写什么样的消息处理函数了。 本例要求单击“复制”按钮后,编辑框中的内容复制到下面的编辑框中。也就是说,在程序运行时,在“复制”按钮上发生单击事件后,Windows向对话框发出了一个BN_CLICKED消息,CTESTDlg类应有一个处理该消息的函数。 添加和编写这个消息处理函数的过程是: ①双击“复选”按钮,弹出如下图所示的“Add Member Function”对话框,输入函数名(缺省函数名为OnButton1),单击“确定”按钮后,添加了一个空函数。
另一个方法是在“MFC ClassWizard”对话框“Message Maps”选项卡中,选定IDC_BUTTON1和BN_CLICKED消息,如图所示,然后单击“Add Function”按钮即可。 老肖VC讲座 再单击Edit Code按钮,出现如下消息处理函数。 为消息处理函数void CTESTDlg::OnButton1()和void CTESTDlg::OnButton2()分别添加代码如下图所示。 老肖VC讲座 二.静态文本框、命令按钮和编辑框的使用 静态文本框,是最简单的控件,它主要用来显示文本信息,不能接受用户输入,一般不需要连接变量,也不需要处理消息。
命令按钮,是最常见的、应用最广泛的一种控件。在程序执行期间,若单击某个命令按钮,则执行相应的消息处理函数。命令按钮的主要属性是标题属性,该属性用来设置命令按钮上显示的文本。命令按钮一般不需要连接变量。命令按钮能处理BN_CLICKED消息。
编辑框,是一个文本编辑区域,用户可以在该区域输入、编辑和显示正文内容。由于编辑框内置了一定的编辑功能,如剪切、复制、粘贴、撤销等功能,一般不需要对它进行编程。 (1)属性设置,编辑框的重要属性(样式style选项卡中)设置: Multiline,定义该编辑框为多行文本框;Number,限定输入的字符只能是数字字符;Boder为控件创建边界;Read-only,编辑框成为只读的,禁止用户编辑修改。
(2)成员函数,编辑框常用的成员函数如下表所示。 成员函数 功能 应用示例 SetSel(n,m) 选定编辑框中从第n个字符到第m个字符的内容。SetSel(0,-1)的作用是选定所有的内容 m_e.SetSel(0,-1);
Copy() 将编辑框中当前选定的内容复制到剪切板 m_e.Copy(); Cut() 将编辑框中当前选定的内容剪切到剪切板 m_e.Cut(); Clear() 删除编辑框中当前选定的内容 m_e.Clear(); Paste() 把剪贴板中内容粘贴到编辑框中光标所在位置 m_e.Paste(); GetLine(n,ch) 将多行编辑框中第n行的内容复制到ch中,ch一般为字符数组 char ch[80]; m_e.GetLine(0,ch); 老肖VC讲座 ReplaceSel(ch) 将ch中内容替换编辑框中选定的内容 char ch[80]=”abcd”; m_e.ReplaceSel(ch); Undo() 撤销对编辑框的最后一次操作 m_e.Undo(); 由于CEdit是从CWnd类直接派生来的,所以编辑框可以使用CWnd类的成员函数。CWnd类的重要成员函数有: ①获取编辑框中内容:GetWindowText(CString &rString) const;将编辑框中内容复制到CString类对象rString中。 例如,将编辑框m_e中内容复制到CString类对象ch中: CString ch; m_e.GetWindowText(ch); 例如,将编辑框m_e中内容复制到字符数组ch中: char ch[80]; m_e.GetWindowText(ch,80); ②设置编辑框中内容:void SetWindowText(LPCTSTR lpszString);将lpszString中内容替换编辑框中原有内容,lpszString是字符数组或字符串指针。 例如:设置编辑框中的内容为“abcdefg”: char ch[20]=”abcdefg”; m_e.SetWindowText(ch); (3)连接变量 编辑框在连接变量时,除了要指定变量名之外,还要确定变量类别。变量类别有两个可选择:Control是指该变量作控件使用,对应的变量类型只能是Cedit,可以使用该控件类的成员函数;Value,是指该变量作C/C++中普通的变量使用,对应的变量类型有CString、int、double等。如下图所示。
注意:如果一个编辑框连接了一个Value类别的变量,则该变量就表示这个编辑框,编辑框中显示的内容就是变量的值。但是,改变了编辑框的内容并不会自动更新对应的变量的值,同样改变了变量的值也不会自动刷新编辑框的内容。若要保持一致,需要使用UpdateData()函数更新:若编辑框的内容改变了,则应使用语句UpdateData(TRUE);更新对应的变量的值;若变量的值改变了,则应使用语句UpdateData(FALSE);刷新编辑框的内容。 老肖VC讲座 例2,输入一元二次方程ax2+bx+c=0的系数a、b、c,计算并输出两个根x1、x2,如下图所示。
说明:建立工程名为FC,对话框上有5个静态文本框、5个编辑框和2个命令按钮。为5个编辑框连接的变量如下图,类型都是value,数据类型都是double。
为了计算b2-4ac的平方根,需要使用sqrt()函数,因此在FCDlg.cpp文件的开头添加文件包含命了:#include “math.h”。 “计算”和“结束”按钮的消息函数如下图所示。 老肖VC讲座 例3,编写一个对输入的字符串进行转换的程序。转换规则为:将大写字母转换成小写;将小写转换成大写;换行符和回车符不变;其余字符转换为“*”。要求每输入一个字符立即进行判断和转换。
程序运行界面如下图所示,其上仅放有2个编辑框,它们的属性如下表所示,连接的变量分别是m_e1和m_e2,都是Control类别。 控件 属性 属性值 m_e1 ID 缺省 老肖VC讲座 Multiline 选定
Vertical Scroll 选定
Auto VScroll 选定
Want Return 选定
m_e2 ID 缺省
Multiline 选定
Vertical Scroll 选定
Auto VScroll 选定
Read only 选定
为了在每输入一个字符后立即进行判断和转换,编写了“EN_CHANGE”的消息函数,如下图所示。 老肖VC讲座 三.框架、单选按钮和复选框 框架、单选按钮和复选框都是对话框的常见控件,框架与静态文本框一样是CString类的对象,单选按钮和复选框与命令按钮都是CButton类的对象。 1.框架 当对话框上控件较多时,可以使用框架将一组相关的控件框起来,达到标识一组控件的作用。框架不需要连接变量,也不需要处理消息。框架的重要属性有:ID,所有框架的缺省ID都是IDC_STATIC,不需要重新设置;标题,该属性决定框架上的标题文本。
2.单选按钮,单选按钮必须成组出现,用户在一组单选按钮中最多只能选择一项。当
某一项被选定后,其他选项自动变成未选状态。 窗体中放置一组单选按钮的方法:同一组按钮必须一个接一个地放进对话框中,中间不能插入其他控件,并且一个组的第一个按钮要选中“Group”属性,表示一组控件的开始。打开MFC ClassWizard的Member Variables选项卡,可以发现一组中只有第一个按钮的ID被显示,这意味着只能对第一个按钮连接变量。 单选按钮的重要属性:ID,每个单选按钮都有一个缺省ID,如IDC_RADIO1,可以重新设置;标题,该属性值就是单选按钮右边显示的文本标题;Group,一组中第一按钮选中该属性,表示它是一组的开始。 单选按钮的消息函数:BN_CLICKED。 单选按钮的重要成员函数: (1)设定单选按钮选中状态,初始时,可使用Window API函数CheckRadioButton()设定一组单选按钮中选中的按钮。 形式:void CheckRadioButton(int nIDFirstButton,int nIDLastButton, int nIDCheckButton); 说明:nIDFirstButton是一组中第一个单选按钮的ID;nIDLastButton,是一组中最后一个单选按钮的ID;nIDCheckButton为初始时设置为选中的那个单选按钮的ID。 (2)判定单选按钮是否被选定 形式:UNIT IsDlgButtonChecked(int nIDButton) const; 说明:如果ID为nIDButton的单选按钮被选中,则该函数的返回值为true,否则为false。