MFC单文档添加按钮控件、消息响应函数
来源:互联网 发布:mysql error 1007 编辑:程序博客网 时间:2024/05/16 18:39
单文档中如何添加按钮控件和消息响应函数?
通过以下三步即可完成
一、创建动态控件
两种方法:
1、 在资源管理器视图中的Resource.h头文件中自定义
如:#defineID_DemoButton 123456
2、资源视图的String Table中定义
在最下端双击新建
二、定义并显示按钮
在View类声明成员变量CButton demoButton,用向导类工具在C***View(***指工程名)中添加OnCreate 或OnInitialUpdate 函数
在函数中加入按钮定义
CRectrect_button(40,10,200,60); //控制按钮大小、位置
m_button.Create("Button1",WS_CHILD|WS_VISIBLE|WS_BORDER,rect_button,this, ID_DemoButton);
m_button.ShowWindow(SW_SHOWNORMAL);
注:Create方法的最后一个参数为第一步中定义的按键资源的名称
这样按钮应该都可以显示出来了。
附:
不同种类的控件应创建不同的类对象,
按钮控件 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 含自动选中状态的单选按钮
BS_RADIOBUTTON 单选按钮,不常用
BS_AUTOCHECKBOX 含自动选中状态的复选按钮
BS_CHECKBOX 复选按钮,不常用
BS_AUTO3STATE 含自动选中状态的三态复选按钮
BS_3STATE 三态复选按钮,不常用
以上风格指定了创建的按钮类型,不能同时使用,但必须有其一。
BS_BITMAP 按钮上将显示位图
BS_DEFPUSHBUTTON 设置为默认按钮,只用于下压式按钮,一个对话框中只能指定一个默认按钮
rect指定按钮的大小和位置;
pParentWnd指示拥有按钮的父窗口,不能为NULL;
nID指定与按钮关联的ID号,用上一步创建的ID号。
不同控件类的Create()函数略有不同,可参考相关资料。
例:p_MyBut->Create("动态按钮", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,CRect(20,10,80,40), this, IDC_MYBUTTON );
这样,我们就在当前对话框中的(20,10)处创建了宽60,高30,按钮文字为“动态按钮”的下压式按钮。
三、添加消息响应函数
1、C***View头文件中MESSAGE_MAP中添加响应函数:afx_msg void OnBtnDown();
C***View.cpp文件的BEGIN_MESSAGE_MAP和 END_MESSAGE_MAP 之间加入ON_BN_CLICKED(ID_DemoButton,OnBtnDown) 用来关联按钮和函数;
2、加入按键响应函数的定义
void C***View::OnBtnDown()
{
MessageBox("hello","helloworld",MB_OK);//按自己的功能需求写
}
除了按钮的响应函数外,你还可以用上面获得的指针访问按钮,如:
修改按钮的大小和位置:p_MyBut[0]->MoveWindow(……);
修改按钮文本:p_MyBut[0]->SetWindowText(……);
显示/隐藏按钮:p_MyBut[0]->ShowWindow(……);
- MFC单文档添加按钮控件、消息响应函数
- MFC单文档添加控件和消息响应函数
- MFC 单文档中添加按钮控件
- MFC 单文档中添加按钮控件
- MFC 单文档中添加按钮控件
- MFC单文档窗口添加按钮控件
- MFC单文档程序添加消息映射和消息响应函数的问题
- MFC单文档下为视图类添加按钮及其响应函数(手把手截图)
- MFC添加消息响应函数
- MFC-为问号按钮添加点击消息响应函数
- MFC文档添加多个按钮(及响应函数)
- MFC 动态创建控件及添加消息响应函数
- MFC为控件添加消息响应函数(事件)
- MFC添加控件的响应函数
- 为动态按钮添加消息响应函数
- 为自定义工具栏按钮添加消息响应函数
- MFC中添加自定义消息响应函数
- MFC 如何添加自定义消息及其响应函数
- Xcode 7.2 MD5 SHA1
- appium简明教程
- struts2配置文件中的include和global-results
- gps的获取
- 唯有志存高远,方能风行天下
- MFC单文档添加按钮控件、消息响应函数
- java设置环境变量
- Mysql+Tomcat下载与安装教程地址
- [leetcode]Unique Paths
- Android文件操作的一些小总结
- java中reference libraries如何删除
- Data Structure(1-8)---单链表结构与顺序存储结构优缺点
- IOS开发中copy和retain的区别
- Fresco 代码设置圆形进度条实现