Minigui学习--MAINWINCREATE 结构体

本文介绍了如何使用MiniGUI的CreateMainWindow函数创建主窗口,重点解析了MAINWINCREATE结构体的各项属性,包括窗口风格、标题、菜单、光标、图标、窗口过程、位置、背景色等,提供了详细的参数设置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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说明要显示主窗口,并把它置为顶层窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值