第六讲:子窗口控制

第六讲:子窗口控制

ID:10021100

大小:155.50 KB

页数:22页

时间:2018-05-21

第六讲:子窗口控制_第1页
第六讲:子窗口控制_第2页
第六讲:子窗口控制_第3页
第六讲:子窗口控制_第4页
第六讲:子窗口控制_第5页
资源描述:

《第六讲:子窗口控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第六讲:子窗口控制控制(控件)是一种特殊的子窗口,也属于某个窗口类,这个窗口类或者是已经预先定义好的,或者是由拥有者(开发者)定义。窗口类以及对应的窗口过程定义了控制的属性,包括其外观、行为、目的等。应用程序既可以通过在调用CreateWindow时指定窗口类的类名来单独创建一个控制,也可以在对话框模板中指定一些控制,然后由系统为其创建。预定义控制:操作系统为一些控制提供了已经定义好的窗口类及对应的窗口过程。属于这些窗口类的控制称为预定义控制。类名说明BUTTON按钮COMBOBOX组合框EDIT编辑框LISTBOX列表框RichEditRichEdit1.0RICHEDIT_CLASS

2、RichEdit2.0或3.0SCROLLBAR滚动条STATIC静态控件表一、系统预定义的控制每个预定义控制窗口类都有一组相关的控制样式,使它们在应用程序中展现出不同的外观和行为,例如BUTTON窗口类支持pushbuttons,radiobuttons,checkboxes,groupboxes等样式;每个预定义控制窗口类同时还有一组相关的通知和控制消息,应用程序通过这些消息确定用户何时及怎样对这些控制进行输入。通知消息:当系统为对话框创建了控制时,这些控制就成为对话框的子窗口;当应用程序创建控制时,这些控制就成为由应用程序指定的某个窗口的子窗口。这些子窗口控制接收到用户的输入时,会

3、向其父窗口发送通知消息。应用程序通过这些消息来确定用户想让它们完成什么工作。例如,当用户点击pushbutton时,按钮会向父窗口发送BN_CLICKED消息。这些通知消息以WM_COMMAND形式出现,消息中包含子窗口控制标识和通知码。参数说明LOWORD(wParam)子窗口ID号HIWORD(wParam)通知码,告诉父窗口到底发生了什么变化,通知码和控件的类型以及事件相关,系统对每一类控件的每个事件的通知码都有明确的定义,用一个系统定义的整常量来表示LParam子窗口句柄表二、WM_COMMAND通知消息子窗口控制标识是一个由应用程序指定的唯一ID,用以代表这个控制,这个标识既可

4、以在CreateWindowEx的hMenu参数中指定,也可以在DLGITEMTEMPLATEEX结构的id成元中指定。由于控制本身并不知道其自身的标识,在向父窗口发送通知消息之前,必须查询其自身标识。以下是经常用到的与子窗口标识相关的API:知道子窗口ID号和父窗口句柄,找子窗口句柄:hwndChild=GetDlgItem(hwndParent,id);知道子窗句柄,找子窗口ID:id=GetWindowLong(hwndChild,GWL_ID);id=GetDlgCtrlID(hwndChild);知道子窗句柄,找父窗口句柄:hwndParent=GetParent(hwndCh

5、ild);控制消息:应用程序可以利用SendMessage向子控制发送消息,来指导子窗口控制完成特定的任务。每种控制消息的目的和功能是与特定控制的窗口类相关的,并且由窗口类对应的窗口过程定义。控制消息既可以是预先定义好的如WM_GETTEXT和WM_GETDLGCODE等,也可以由应用程序自定义。通常情况下,对于由应用程序创建的控制,窗口过程应当处理如下消息:消息说明WM_GETDLGCODEProcessifthecontrolusestheENTER,ESC,TAB,orarrowkeys.TheIsDialogMessagefunctionsendsthismessagetocon

6、trolsinadialogboxtodeterminewhethertoprocessthekeysorpassthemtothecontrol.WM_GETFONTProcessiftheWM_SETFONTmessageisalsoprocessed.WM_GETTEXTProcessifthecontroltextisnotthesameasthetitlespecifiedbytheCreateWindowExfunction.WM_GETTEXTLENGTH同上WM_SETTEXT同上WM_SETFOCUSProcessifthecontroldisplaysacaret,a

7、focusrectangle,oranotheritemtoindicatethatithastheinputfocus.WM_KILLFOCUS同上WM_SETFONTProcessifthecontroldisplaystext.ThesystemsendsthismessagewhencreatingadialogboxthathastheDS_SETFONTstyle.对于由应用程序自定义的控制消息,必须通过调用SendMe

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

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

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