windows sdk编程系列文章08 ---- 子窗口控件

windows sdk编程系列文章08 ---- 子窗口控件

ID:41032597

大小:41.50 KB

页数:7页

时间:2019-08-14

windows sdk编程系列文章08 ---- 子窗口控件_第1页
windows sdk编程系列文章08 ---- 子窗口控件_第2页
windows sdk编程系列文章08 ---- 子窗口控件_第3页
windows sdk编程系列文章08 ---- 子窗口控件_第4页
windows sdk编程系列文章08 ---- 子窗口控件_第5页
资源描述:

《windows sdk编程系列文章08 ---- 子窗口控件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、windowssdk编程系列文章----子窗口控件2008-04-1017:49本课中我们将探讨控件,这些控件是我们程序主要的输入输出设备。理论:WINDOWS提供了几个预定义的窗口类以方便我们的使用。大多数时间内,我们把它们用在对话框中,所以我们一般就它们叫做子窗口控件。子窗口控件会自己处理消息,并在自己状态发生改变时通知父窗口。这样就大大地减轻了我们的编程工作,所以我们应尽可能地利用它们。本课中我们把这些控件放在窗口中以简化程序,但是大多数时间内子窗口控件都是放在对话框中的。我们示例中演示的子窗口控件包括:按钮、下拉菜单、检查框、单选按钮、编辑框等。使用子窗口

2、控件时,先调用CreateWindow或CreateWindowEx。在这里由于WINDOWS已经注册了这些子控件,所以无须我们再注册。当然我们不能改变它们的类名称。譬如:如果您想产生一个按钮,在调用上述两个函数时就必须指定类名为"button"。其他必须指定的参数还有父窗口的句柄和将要产生的子控件的ID号。子控件的ID号是用来标识子控件的,故也必须是唯一的。子控件产生后,当其状态改变时将会向父窗口发送消息。一般我们应在父窗口的WM_CREATE消息中产生字控件。子控件向父窗口发送的消息是WM_COMMAND,并在传递的参数wPara的底位中包括控件的ID号,消息

3、号在wParam的高位,lParam中则包括了子控件的窗口的句柄。各类控件有不同的消息代码集,详情请参见msdn参考手册。父窗口也可以通过调用函数SendMessage向子控件发送消息,其中第一个参数是子控件的窗口句柄,第二个参数是要发送的消息号,附加的参数可以在wParam和lParam中传递,其实只要知道了某个窗口的句柄就可以用该函数向其发送相关消息。所以产生了子窗口后必须处理WM_COMMAND消息以便可以接收到子控件的消息。例子:见光盘FirstWindow7我们将产生一个窗口,在该窗口中有一个编辑框和一个按钮。当您按下按钮时,会弹出一个对话框其中显示了您

4、在编辑框中输入的内容。另外,该应用程序还有一个菜单,其中有四个菜单项:1.SayHello--把一个字符串输入编辑控件;2.ClearEditBox--清除编辑控件中的字符串;3.GetText--弹出对话框显示编辑控件中的字符串;4.Exit--退出应用程序#include"Windows.h"#include"tchar.h"#defineIDM_HELLO1#defineIDM_CLEAR2#defineIDM_GETTEXT3#defineIDM_EXIT4#defineButtonID1#defineEditID  2TCHARMenuName[]=_T

5、("FirstMenu");TCHARTestString[]=_T("Wow!I'minaneditboxnow");HWNDhWinMain;HWNDhWndEdit;HWNDhWndButton;TCHARszClassName[]=_T("MyClass");TCHARszCaptionMain[]=_T("MyFirstWindow!");TCHARbuffer[512];WNDCLASSEXstdWndClass;HINSTANCEg_hInstance;LRESULTCALLBACKProcWinMain(  HWNDhWnd,           

6、           UINTMsg,                      WPARAMwParam,                      LPARAMlParam){   switch(Msg)   {      caseWM_CREATE:      {         hWndEdit=CreateWindowEx(WS_EX_CLIENTEDGE,_T("edit"),NULL,WS_CHILD

7、WS_VISIBLE

8、WS_BORDER

9、ES_LEFT

10、ES_AUTOHSCROLL,            50,35,200,25,hWnd,(

11、HMENU)EditID,g_hInstance,NULL);         if(hWndEdit)           SetFocus(hWndEdit);         hWndButton=CreateWindowEx(NULL,_T("button"),_T("MyFirstButton"),WS_CHILD

12、WS_VISIBLE

13、BS_DEFPUSHBUTTON,            75,70,140,25,hWnd,(HMENU)ButtonID,g_hInstance,NULL);      }       break;         

14、 case

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

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

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