mfc组件消息及函数

mfc组件消息及函数

ID:22683620

大小:70.50 KB

页数:34页

时间:2018-10-30

mfc组件消息及函数_第1页
mfc组件消息及函数_第2页
mfc组件消息及函数_第3页
mfc组件消息及函数_第4页
mfc组件消息及函数_第5页
资源描述:

《mfc组件消息及函数》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、6.1 传统控件  在上一课的表5.1已经列出了Windows的传统控件及其对应的控件类。在这些控件中,读者应该重点掌握命令按钮、选择框、单选按钮、编辑框、列表框和组合框。.1.1传统控件的控件通知消息  控件通过向父窗口发送控件通知消息来表明发生了某种事件.例如,当用户在按钮上单击鼠标时,按钮控件会向父窗口发送BN_CLICKED消息.传统控件的通知消息实际上是通过WM_COMMAND消息发给父窗口的(滚动条除外),在该消息的wParam中含有通知消息码(如BN_CLICKED)和控件的ID,在lParam中则包含了控件的句柄.  利用ClassWizard可以很容易

2、地为控件通知消息加入消息映射和消息处理函数,这在上一章中已经演示过了.传统控件的消息映射宏是ON_XXXX,其中XXXX表示通知消息码,如BN_CLICKED.ON_XXXX消息映射如下所示,该宏有两个参数,一个是控件的ID,一个是消息处理函数名.ON_XXXX(nID,memberFxn)消息处理函数的声明应该有如下形式:afx_msgvoidmemberFxn();例如,某按钮的BN_CLICKED消息的消息映射及其处理函数的声明如下所示ON_BN_CLICKED(IDC_ADD,OnAdd)afx_msgvoidOnAdd();  有时,为了处理方便,需要把多个I

3、D连续的控件发出的相同消息映射到同一个处理函数上.这就要用到ON_CONTROL_RANGE宏.ON_CONTROL_RANGE消息映射宏的第一个参数是控件消息码,第二和第三个参数分别指明了一组连续的控件ID中的头一个和最后一个ID,最后一个参数是消息处理函数名。例如,要处理一组单选按钮发出的BN_CLICKED消息,相应的消息映射如下所示:ON_CONTROL_RANGE(BN_CLICKED,IDC_FIRST,IDC_LAST,OnRadioClicked)函数OnRadioClicked的声明如下,该函数比上面的OnAdd多了一个参数nID以说明发送通知消息的控

4、件ID.afx_msgvoidOnRadioClicked(UINTnID);ClassWizard不支持ON_CONTROL_RANGE宏,所以需要手工建立消息映射和消息处理函数.提示:事实上,在使用ClassWizard时只要运用一个小小的技巧,就可以把不同控件的通知消息映射到同一个处理函数上,也可以把一个控件的不同通知消息映射到同一个处理函数上.这个技巧就是在用ClassWizard创建消息处理函数时,指定相同的函数名即可.此方法的优点在于控件的ID不必是连续的,缺点是处理函数没有nID参数,因而不能确定是哪一个控件发送的消息.6.1.2静态控件  静态控件包括静

5、态正文(StaticText)和图片控件(Picture)。静态正文控件用来显示正文。图片控件可以显示位图、图标、方框和图元文件,在图片控件中显示图片的好处是不必操心图片的重绘问题。静态控件不能接收用户的输入。在上一章中,读者已经用过静态正文和组框控件。图片控件的例子可以在AppWizard创建的IDD_ABOUTBOX对话框模板中找到,在该模板中有一个图片控件用来显示图标。  静态控件的主要起说明和装饰作用。MFC的CStatic类封装了静态控件。CStatic类的成员函数Create负责创建静态控件,该函数的声明为BOOLCreate(LPCTSTRlpszText

6、,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID=0xffff);  参数lpszText指定了控件显示的正文。dwStyle指定了静态控件的风格,表6.1显示了静态控件的各种风格,dwStyle可将这些风格组合起来。rect是一个对RECT或CRect结构的引用,用来说明控件的位置和尺寸。pParentWnd指向父窗口,该参数不能为NULL。nID则说明了控件的ID。如果创建成功,该函数返回TRUE,否则返回FALSE.表6.1静态控件的风格控件风格含义SS_BLACKFRAME指定一个具有与窗口边界同色的框(缺

7、省为黑色)。SS_BLACKRECT指定一个具有与窗口边界同色的实矩形(缺省为黑色)。SS_CENTER使显示的正文居中对齐,正文可以回绕。SS_GRAYFRAME指定一个具有与屏幕背景同色的边框。SS_GRAYRECT指定一个具有与屏幕背景同色的实矩形。SS_ICON使控件显示一个在资源中定义的图标,图标的名字有Create函数的lpszText参数指定。SS_LEFT左对齐正文,正文能回绕。SS_LEFTNOWORDWRAP左对齐正文,正文不能回绕。SS_NOPREFIX使静态正文串中的&不是一个热键提示符。SS_NOTIFY使控件能

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。