新Visual C++实用教程 教学课件 周进 朱训林 张宏林 第5章 常用控件.pptVIP

  • 15
  • 0
  • 约2.16万字
  • 约 168页
  • 2016-10-26 发布于广东
  • 举报

新Visual C++实用教程 教学课件 周进 朱训林 张宏林 第5章 常用控件.ppt

第5章 常用控件 在与用户的交互过程中,控件(Control)担任着重要的角色。 MFC提供了大量的控件类,它们封装了控件的功能,通过这些控件类,可以方便地创建控件,对控件进行查询和控制。 控件大致可分为两类,一类是在Windows 3.x中就已支持的传统控件,另一类是Windows 95/NT/2000中支持的新型Win32控件,所有的控件类都是CWnd类的直接或间接派生类。 注意,对于新型Win32控件,应用程序只能创建控件对象而不能创建数据变量。 不管是哪些类型的控件,一般都具有WS_CHILD和WS_VISIBLE窗口风格,其中WS_CHILD指定窗口为子窗口,WS_VISIBLE使窗口是可见的。 另外,大部分控件还具有WS_TABSTOP风格,WS_TABSTOP使控件具有Tabstop属性。 MFC类库提供的主要控件如表5-1所示。 续表 续表   5.1 静态文本控件 静态文本(Static text)控件是传统控件的一种,传统控件主要包括文本控件、命令按钮、选择框、单选按钮、编辑框、列表框和组合框等,如图5-1所示。 5.1.1 传统控件通知消息 在介绍静态文本控件的用法之前,先讲述传统控件的控件通知消息。 控件通过向父窗口发送控件通知消息来表明发生了某种事件。 例如,在按钮上单击鼠标时,按钮控件会向父窗口发送BN_CLICKED消息。 传统控件的通知消息实际上是通过WM_COMMAND消息发给父窗口的(滚动条除外),在该消息的wParam中含有通知消息码(如BN_CLICKED)和控件的ID,在lParam中则包含了控件的句柄。 利用ClassWizard可以很容易地为控件通知消息加入消息映射和消息处理函数,这在第4章中的对话框应用程序中已经讲解过了。 传统控件的消息映射宏是ON_XXXX,其中XXXX表示通知消息码,如BN_CLICKED。 ON_XXXX消息映射宏有两个参数,即控件的ID和消息处理函数名,其格式如下。 ON_XXXX(nID,memberFxn) 消息处理函数的声明形式如下: afx_msg void memberFxn(); 有时,为了处理方便,需要把多个ID连续的控件发出的相同消息映射到同一个处理函数上,这时就要用到ON_CONTROL_RANGE宏。 例如,要处理一组单选按钮发出的BN_CLICKED消息,相应的消息映射如下。 ON_CONTROL_RANGE(BN_CLICKED,IDC_FIRST,IDC_LAST,OnRadioClicked) ON_CONTROL_RANGE消息映射宏的第1个参数是控件消息码,第2和第3个参数分别指明了一组连续的控件ID中的头一个和最后一个ID,最后一个参数是消息处理函数名。 函数OnRadioClicked比OnAdd-memberFxn多了一个参数nID以说明发送通知消息的控件ID,其声明如下。 afx_msg void OnRadioClicked(UINT nID); 注意,ClassWizard不支持ON_CONTROL_RANGE宏,所以需要手工建立消息映射和消息处理函数。 5.1.2 静态控件的使用 静态控件主要起说明和装饰作用,包括静态文本(Static Text)控件和图片(Picture)控件两类。 静态文本控件用来显示文本信息。 静态控件封装在MFC的CStatic类中,成员函数Create负责创建静态控件,该函数的声明如下。 BOOL Create( LPCTSTR lpszText, DWORD dwStyle, const RECT rect, CWnd* pParentWnd, UINT nID = 0xffff ); 其中参数lpszText指定了控件中显示的文本内容,dwStyle指定了静态控件的风格,如表5-2所示。 rect是一个对RECT或CRe

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档