当前位置:首页 > 网络编程 > 软件语言 > 汇编 > 子窗口控件

子窗口控件

点击次数:76 次 发布日期:2008-11-10 08:13:11 作者:源代码网
源代码网推荐
广告载入中
子窗口控件:

源代码网整理以下  本课中我们将探讨控件,这些控件是我们程序主要的输入输出设备。
源代码网推荐理论:
源代码网推荐WINDOWS 提供了几个预定义的窗口类以方便我们的使用。大多数时间内,我们把它们用在对话框中,所以我们一般就它们叫做子窗口控件。子窗口控件会自己处理消息,并在自己状态发生改变时通知父窗口。这样就大大地减轻了我们的编程工作,所以我们应尽可能地利用它们。本课中我们把这些控件放在窗口中以简化程序,但是大多数时间内子窗口控件都是放在对话框中的。我们示例中演示的子窗口控件包括:按钮、下拉菜单、检查框、单选按钮、编辑框等。使用子窗口控件时,先调用CreateWindow 或 CreateWindowEx。在这里由于WINDOWS 已经注册了这些子控件,所以无须我们再注册。当然我们不能改变它们的类名称。譬如:如果您想产生一个按钮,在调用上述两个函数时就必须指定类名为"button"。其他必须指定的参数还有父窗口的句柄和将要产生的子控件的ID号。子控件的ID号是用来标识子控件的,故也必须是唯一 的。子控件产生后,当其状态改变时将会向父窗口发送消息。一般我们应在父窗口的WM_CREATE消息中产生字控件。子控件向父窗口发送的消息是WM_COMMAND,并在传递的参数wPara的底位中包括控件的ID号,消息号在wParam的高位,lParam中则包括了子控件的窗口的句柄。各类控件有不同的消息代码集,详情请参见WIN32 API参考手册。父窗口也可以通过调用函数SendMessage向子控件发送消息,其中第一个参数是子控件的窗口句柄,第二个参数是要发送的消息号,附加的参数可以在wParam和lParam中传递,其实只要知道了某个窗口的句柄就可以用该函数向其发送相关消息。所以产生了子窗口后必须处理WM_COMMAND消息以便可以接收到子控件的消息。

源代码网整理以下例子:
源代码网推荐 我们将产生一个窗口,在该窗口中有一个编辑框和一个按钮。当您按下按钮时 ,会弹出一个对话框其中显示了您在编辑框中输入的内容。另外,该应用程序还有一个菜单,其中有四个菜单项:
源代码网推荐 Say Hello -- 把一个字符串输入编辑控件;
源代码网推荐 Clear Edit Box -- 清除编辑控件中的字符串;
源代码网推荐 Get Text -- 弹出对话框显示编辑控件中的字符串;
源代码网推荐 Exit -- 退出应用程序。
源代码网推荐 .386
源代码网推荐 .model flat,stdcall
源代码网推荐 option casemap:none
源代码网推荐 WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

源代码网整理以下include masm32includewindows.inc
源代码网推荐 include masm32includeuser32.inc
源代码网推荐 include masm32includekernel32.inc
源代码网推荐 includelib masm32libuser32.lib
源代码网推荐 includelib masm32libkernel32.lib

源代码网整理以下.data
源代码网推荐 ClassName db "SimpleWinClass",0
源代码网推荐 AppName db "Our First Window",0
源代码网推荐 MenuName db "FirstMenu",0
源代码网推荐 ButtonClassName db "button",0
源代码网推荐 ButtonText db "My First Button",0
源代码网推荐 EditClassName db "edit",0
源代码网推荐 TestString db "Wow! I"m in an edit box now",0

源代码网整理以下.data?
源代码网推荐 hInstance HINSTANCE ?
源代码网推荐 CommandLine LPSTR ?
源代码网推荐 hwndButton HWND ?
源代码网推荐 hwndEdit HWND ?
源代码网推荐 buffer db 512 dup(?) ; buffer to store the text retrieved from the edit box 软件开发网 www.mscto.com

源代码网整理以下.const
源代码网推荐 ButtonID equ 1 ; The control ID of the button control
源代码网推荐 EditID equ 2 ; The control ID of the edit control
源代码网推荐 IDM_HELLO equ 1
源代码网推荐 IDM_CLEAR equ 2
源代码网推荐 IDM_GETTEXT equ 3
源代码网推荐 IDM_EXIT equ 4

源代码网整理以下.code
源代码网推荐 start:
源代码网推荐 invoke GetModuleHandle, NULL
源代码网推荐 mov hInstance,eax
源代码网推荐 invoke GetCommandLine


源代码网推荐

源代码网供稿.
上一篇: 菜单  下一篇: DeviceIoControl接口
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华