【MFC 创建控件】VS/VC创建动态控件/创建按钮

本文介绍了如何在MFC中动态创建控件,特别是按钮和单选按钮。动态控件在需要时由Create()函数创建,与预先放置在对话框中的静态控件不同。创建过程涉及设置控件ID、建立控件对象、使用Create()函数,以及处理动态控件的响应。此外,文章还展示了如何为动态创建的单选按钮分组并实现单击响应。
摘要由CSDN通过智能技术生成
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。
一、创建动态控件:
为了对照,我们先来看一下静态控件的创建。
放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静
态控件就创建好了,当对话框被显示时,其上的控件也会显示。
静态控件不需要调用Create()函数来创建。
而创建动态控件有很大不同,以下以按钮为例,看一下动态控件的创建过程:
1.建立控件ID号:
ID号是控件的标识,创建控件前必须先为它设置一个ID号。
打开资源中的“String Table”,在空白行上双击鼠标,这时会弹出一个ID属性对话框,在其中的ID编辑框中输入ID,如:IDC_MYBUTTON,在Caption中输入控件标题或注解(注:
Caption框不能为空,为空会导致创建失败),这里我输入的是按钮上要显示的文字--动态按钮。
2.建立控件对象:
不同种类的控件应创建不同的类对象,
按钮控件       CButton   (包括普通按钮、单选按钮和复选按钮)
编辑控件       CEdit
静态文本控件   CStatic
标签控件       CTabCtrl
旋转控件       CSpinButtonCtrl
滑标控件       CSliderCtrl
多信息编辑控件 CRichEditCtrl
进度条控件     CProgressCtrl
滚动条控件     CSrcollBar
组合框控件     CComboBox
列表框控件     CListBox
图像列表控件   CImageCtrl
树状控件       CTreeCtrl
动画控件       CAnimateCtrl
本例中我们创建一个CButton类的普通按钮。注意不能直接定义CButton对象,如:CButton m_MyBut;这种定义只能用来给静态控件定义控制变量,不能用于动态控件。
正确做法是用new调用CButton构造函数生成一个实例:
CButton *p_MyBut = new CButton();
然后用CButton类的Create()函数创建,该函数原型如下:
BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
lpszCaption是按钮上显示的文本;
dwStyle指定按钮风格,可以是按钮风格与窗口风格的组合,取值有:
窗口风格:
WS_CHILD   子窗口,必须有
WS_VISIBLE   窗口可见,一般都有
WS_DISABLED   禁用窗口,创建初始状态为灰色不可用的按钮时使用
WS_TABSTOP   可用Tab键选择
WS_GROUP   成组,用于成组的单选按钮中的第一个按钮
按钮风格:
BS_PUSHBUTTON 下压式按钮,也即普通按钮
BS_AUTORADIOBUTTON 含自动选中状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值