1.介绍:
hMainWnd = CreateMainWindow (&CreateInfo);
每个MiniGUI 应用程序的初始界面一般都是一个主窗口,你可以通过调用CreateMainWindow函数来创建一个主窗口,其参数是一个指向MAINWINCREATE 结构的指针,本例中就是CreateInfo,返回值为所创建主窗口的句柄。MAINWINCREATE 结构描述一个主窗口的属性,在使用 CreateInfo创建主窗口之前,需要设置它的各项属性。
2.解析:
MAINWINCREATE CreateInfo;
(1)窗口风格设置
CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
上面是把窗口设为初始可见的,并具有边框和标题栏。
此参数可为如下值:(在/usr/local/include/minigui/window.h文件中定义)
WS_NONE:None style (没有风格,没有标题栏,没有边框..)
WS_ABSSCRPOS:brief Creates a main window whose position is based on absolute screen coordinates.
WS_CAPTION:Creates a main window with caption
WS_SYSMENU:Creates a main window with system menu**
WS_VISIBLE:Creates a window initially visible/**
WS_DISABLED:Creates a window initially disabled/
WS_BORDER:Creates a window with border
WS_THICKFRAME:Creates a window with thick frame
WS_THINFRAME:Creates a window with thin frame
WS_VSCROLL:Creates a window with vertical scroll bar
WS_HSCROLL:Creates a window with horizontal scroll bar
WS_MINIMIZEBOX :Creates a window with minimizing box on caption
WS_MAXIMIZEBOX :Creates a window with maximizing box on caption
如下特性是主窗口不支持的:
WS_MINIMIZE:
WS_MAXIMIZE:
WS_DLGFRAME:
(2)窗口有扩展风格设置:
CreateInfo.dwExStyle = WS_EX_NONE;
设置主窗口的扩展风格,该窗口没有扩展风格。
在/usr/local/include/minigui/window.h文件中定义了这个属性的很多参数,以WS_EX_开头的都是此属性的可配置参数
(3)标题栏显示的内容:
CreateInfo.spCaption = "HelloWorld";
设置主窗口的标题为“HelloWorld”。
注意:此栏目只有当dwStly属性配置了WS_CAPTION参数时,才可以显示出来。
(4)设置主窗口的菜单:
CreateInfo.hMenu = 0;
设置主窗口的主菜单,该窗口没有主菜单。
(5)设置鼠标
CreateInfo.hCursor = GetSystemCursor(0);
设置主窗口的光标为系统缺省光标。
(6)设置窗口图标:
CreateInfo.hIcon = 0;
设置主窗口的图标,该窗口没有图标。
(7)设置窗口处理过程:
CreateInfo.MainWindowProc = HelloWinProc;
设置主窗口的窗口过程函数为 HelloWinProc,所有发往该窗口的消息由该函数处理。
(8)设置主窗口在屏幕上的位置:
CreateInfo.lx = 0;
CreateInfo.ty = 0;
CreateInfo.rx = 320;
CreateInfo.by = 240;
设置主窗口在屏幕上的位置,该窗口左上角位于(0, 0) ,右下角位于(320, 240) 。
(9)设置主窗口的背景色:
CreateInfo.iBkColor = PIXEL_lightwhite;
设置主窗口的背景色为白色,PIXEL_lightwhite是MiniGUI 预定义的象素值。
在/usr/local/include/gdi.h文件中定义了颜色宏,以PIXEL_和COLOR_开头的宏。
(10)串口的附件数据:
CreateInfo.dwAddData = 0;
设置主窗口的附加数据,该窗口没有附加数据。
(11)窗口的托管窗口:
CreateInfo.hHosting = HWND_DESKTOP;
设置主窗口的托管窗口为桌面窗口。
此宏定义在/usr/local/include/window.h文件中定义。
#define HWND_INVALID 0xFFFFFFFF
#define HWND_NULL 0
#define HWND_DESKTOP __mg_hwnd_desktop
ShowWindow(hMainWnd, SW_SHOWNORMAL);
创建完主窗口之后,还需要调用 ShowWindow函数才能把所创建的窗口显示在屏幕上。
MiniGUI 编程指南 V2.0-3
ShowWindow的第一个参数为所要显示的窗口句柄,第二个参数指明显示窗口的方式(显示
还是隐藏),SW_SHOWNORMAL说明要显示主窗口,并把它置为顶层窗口。