MiniGUI 中的主窗口没有窗口类的概念,应通过初始化一个MAINWINCREATE 结构,
然后调用CreateMainWindow 函数来创建一个主窗口。MAINWINCREATE 结构的成员解释
如下:
CreateInfo.dwStyle 窗口风格
CreateInfo.spCaption 窗口的标题
CreateInfo.dwExStyle 窗口的附加风格
CreateInfo.hMenu 附加在窗口上的菜单句柄
CreateInfo.hCursor 在窗口中所使用的鼠标光标句柄
CreateInfo.hIcon 程序的图标
CreateInfo.MainWindowProc 该窗口的消息处理函数指针
CreateInfo.lx 窗口左上角相对屏幕的绝对横坐标,以象素点表示
CreateInfo.ty 窗口左上角相对屏幕的绝对纵坐标,以象素点表示
CreateInfo.rx 窗口右下角相对屏幕的绝对横坐标,以象素点表示
CreateInfo.by 窗口右下角相对屏幕的绝对纵坐标,以象素点表示
CreateInfo.iBkColor 窗口背景颜色
CreateInfo.dwAddData 附带给窗口的一个 32 位值
CreateInfo.hHosting 窗口消息队列的托管窗口
其中有如下几点要特别说明:
1. CreateInfo.dwAddData:在程序编制过程中,应该尽量减少静态变量,但是如何不使
用静态变量而给窗口传递参数呢?这时可以使用这个域。该域是一个 32 位的值,因
此可以把所有需要传递给窗口的参数编制成一个结构,而将结构的指针赋予该域。在
窗口过程中,可以使用 GetWindowAdditionalData 函数获取该指针,从而获得所需
要传递的参数。
2. CreateInfo.hHosting:该域表示的是将要建立的主窗口使用哪个主窗口的消息队列。
使用其他主窗口消息队列的主窗口,我们称为“被托管”的主窗口。在 MiniGUI 中,
托管的概念非常重要,一般要遵循如下规则: