子窗口控件

windows子窗口可以向父窗口发送消息。通过调用GetParent函数,子窗口可以获取父窗口的窗口句柄。

hwndParent = GetParent (hwnd) ;

其中hwnd是子窗口的窗口句柄。子窗口可以向父窗口发送消息,通过SendMessage

SendMessage (hwndParent, message, wParam, lParam) ;

参数message是整型数值,可以随意设定,但是数值大小必须与WM_USER相同或者更大。wParam与lParam是消息参数,又用户自己定义,一般用来传输数据或标志位。实际上是一个指针大小的整型,对于32位系统,大小为32位,对于64位系统,大小则为64位。
 

windows已经建立的一些预定义好的窗口类别与窗口处理程序来建立标准的子窗口控件。这些控件的形式有,按钮,复选框,编辑框,列表清单,下拉列表。比如,如果你想在一个程序的某个地方添加一个按钮,可以通过CreateWindow来建立,而且不用担心鼠标操作,按钮显示操作或者按下按钮的响应。这些都是由windows内部完成。你所需要做的就是拦截WM_COMMAND消息,当按钮被按下时,可以通过该消息通知到你自己的窗口消息处理函数。

子窗口控件在对话框中经常遇到,子窗口控件的大小与位置,一般实在程序的资源描述文件中定义的。但是也可以通过使用预先定义好的,在窗口显示区域里的子控件。可以调用CreateWindow来建立一个子窗口,并通过调用MoveWindow来调整子窗口控件的位置。父窗口消息处理函数向子窗口控件发送消息,子控件向父窗口传回消息。消息的用处,降低窗口类直线的耦合。

在建立一般普通窗口的时候,首先定义窗口类别,并使用RegisterCLass将其注册到Windows中,然后调用Create Window函数根据窗口类别创建一个窗口。

现在使用某个预先定义好的控件时,不必为子控件窗口注册窗口类别,窗口类别已经存在与Windows之中,并且有一个预先定义好的名字。你只需要使用CreateWindow时,将它们名字用作窗口类别参数。CreateWindow中的窗口样式参数准确的定义了子窗口控件的外形与功能。windows内建了处理发送给这些子窗口消息的窗口消息处理函数。

发布了25 篇原创文章 · 获赞 8 · 访问量 410

猜你喜欢

转载自blog.csdn.net/cix1314/article/details/103723734