1、CreateInfo.dwStyle 窗口风格 CreateInfo.spCaption 窗口的标题 CreateInfo.dwExStyle 窗口的附加风格 CreateInfo.hMenu 附加在窗口上的菜单句柄 CreateInfo.hCursor 在窗口中所使用的鼠标光标句柄 CreateInfo.hIcon 程序的图标 CreateInfo.MainWindowProc 该窗口的消息处理函数指针 CreateInfo.lx 窗口左上角相对屏幕的绝对横坐标,以象素点表示 CreateInfo.ty 窗口左上角相对屏幕的绝对纵坐标,以象素点表示 Cre
2、ateInfo.rx 窗口右下角相对屏幕的绝对横坐标,以象素点表示 CreateInfo.by 窗口右下角相对屏幕的绝对纵坐标,以象素点表示 CreateInfo.iBkColor 窗口背景颜色 CreateInfo.dwAddData 附带给窗口的一个 32 位值 CreateInfo.hHosting 窗口消息队列的托管窗口 风格标识 含义 备注 WS_NONE 未指定任何风格 WS_VISIBLE 创建初始可见的窗口 WS_DISABLED 创建初始被禁止的窗口 WS_CAPTION 创建含标题栏的主窗口 仅用于主窗口 WS
3、SYSMENU 创建含系统菜单的主窗口 仅用于主窗口 WS_BORDER 创建有边框的窗口 WS_THICKFRAME 创建具有厚边框的窗口 WS_THINFRAME 创建具有薄边框的窗口 WS_VSCROLL 创建带垂直滚动条的窗口 WS_HSCROLL 创建带水平滚动条的窗口 WS_MINIMIZEBOX 标题栏上带最小化按钮 仅用于主窗口 WS_MAXIMIZEBOX 标题栏上带最大化按钮 仅用于主窗口 WS_EX_NONE 无扩展风格 WS_EX_USEPRIVATECDC 使用私有 DC 仅用于主窗口 WS_E
4、X_TOPMOST 建立始终处于顶层的主窗口 仅用于主窗口 WS_EX_TOOLWINDOW 建立Tooltip 主窗口 仅用于主窗口。Tooltip 主窗口将不会拥有输入焦点,但仍接收鼠标消息 WS_EX_USEPARENTFONT 使用父窗口字体作为默认字体 WS_EX_USEPARENTCURSOR 使用父窗口光标作为默认光标 WS_EX_NOCLOSEBOX 主窗口标题栏上不带关闭按钮 WS_EX_CTRLASMAINWIN 建立可显示在主窗口之外的控件 仅用于控件 MiniGUI中控件类的定义如下: typedef st
5、ruct _WNDCLASS { /** the class name */ char* spClassName; /** internal field, operation type */ DWORD opMask; /** window style for all instances of this window class */ DWORD dwStyle; /** extended window style for all instances of this window class */ D
6、WORD dwExStyle; /** cursor handle to all instances of this window class */ HCURSOR hCursor; /** background color pixel value of all instances of this window class */ int iBkColor; /** window callback procedure of all instances of this window class */ int (*Win
7、Proc) (HWND, int, WPARAM, LPARAM); /** the private additional data associated with this window class */ DWORD dwAddData; } WNDCLASS; typedef WNDCLASS* PWNDCLASS; 控件类的主要元素如下: n 类名spClassName:区别于其它控件类的类名称 n 窗口过程函数指针WinProc:该类控件的实例均使用该窗口过程函数,它处理所有发送到控件的消息并定义控件的行为和特征 n 类风格dwStyle:定义窗口的外观
8、和行为等的风格,该类的所有实例将具有该普通风格。 n 扩展的类风格dwExStyle:定义窗口的扩展风格,该类的所有实例将具有该扩展风格。 n 类光标hCursor:定义该类窗口中光标的形状 n 背景色iBkColor:定义该类窗口的背景颜色象素值 n 类的私有附加数据dwAddData:系统为该类保留的附加空间 MiniGUI中控件类操作的相关函数如下: BOOL GUIAPI RegisterWindowClass (PWNDCLASS pWndClass) ; 该函数注册一个控件类。 BOOL GUIAPI UnregisterWindowClass (const cha
9、r *szClassName) ; 该函数注销一个控件类。 const char* GUIAPI GetClassName (HWND hWnd) ; 该函数获取指定控件的类名。. BOOL GUIAPI GetWindowClassInfo (PWNDCLASS pWndClass) ; 该函数获取指定控件类的类信息。 BOOL GUIAPI SetWindowClassInfo (const WNDCLASS *pWndClass) ; 该函数设置指定控件类的类信息。 MiniGUI-Lite 为应用程序使用 GB2312 输入法提供了如下的函数: HWND GBIM
10、EWindowEx ( HWND hosting, int lx, int ty, int rx, int by, BOOL two_lines ); 该函数创建一个GB2312 的输入法窗口。在调用该函数之前,你必须创建一个主窗口作为该IME窗口的托管窗口。 GBIMEWindowEx 函数各参数的含义如下: n hosting IME窗口的托管窗口,不能取 HWND_DESKTOP n lx,ty,rx,by IME窗口的大小和位置 n two_lines 指明IME窗口是否分为两行 GBIMEWindowEx返回IME窗口的句柄。 MiniGUI-
11、Threads 为 GB2312 输入法定义了一个入口函数: HWND GBIMEWindow (HWND hosting); 该函数创建一个可以拖动的 GB2312 输入法窗口。 除上述提供 GB2312 输入法的函数之外,MiniGUI 提供了如下更加通用的输入法接口: int GUIAPI RegisterIMEWindow ( HWND hWnd ); 该函数把指定的窗口hWnd注册为MiniGUI的IME窗口。此后,键盘输入将首先被发送到IME窗口。注意只能注册一个IME窗口。 int GUIAPI UnregisterIMEWindow ( HWND hWnd );
12、 该函数注销一个IME窗口。 int GUIAPI SetIMEStatus ( int StatusCode, int Value ); 该函数设置当前的IME窗口状态。 对 GB2312 输入法,StatusCode可以是以下值之一: n IS_ENABLE 使IME窗口有效或无效 n IS_FULLCHAR 是否转换半角字符为全角字符 n IS_FULLPUNC 是否转换半角标点为全角标点 n IS_METHOD 输入法的种类、比如内码、全拼、五笔等等。 Value为所设状态的
13、值。 int GUIAPI GetIMEStatus ( int StatusCode ); 该函数获取当前IME窗口的状态。 StatusCode指定所要获取的内容。GetIMEStatus返回IME窗口的状态值。 在 MiniGUI-Lite 中,通常由 mginit 程序创建输入法窗口。应用程序可以创建自己的输入法窗口,然后调用 RegisterIMEWindow 函数注册为输入法窗口。之后,MiniGUI 将把所有的按键消息首先发送到输入法窗口,然后再由输入法窗口进行相应的处理并转发给目标窗口或者活动客户。 函数名称 用途 备注 UpdateWindow 立
14、即更新某个窗口 ShowWindow 显示或隐藏某个窗口 IsWindowVisible 判断某个窗口是否可见 控件和主窗口均可用 EnableWindow 使能或禁止某个窗口 IsWindowEnabled 判断某个窗口是否可用 GetClientRect 获取窗口客户区矩形 GetWindowRect 获取窗口矩形 屏幕坐标系中的窗口尺寸 GetWindowBkColor 获取窗口背景色 SetWindowBkColor 设置窗口背景色 GetWindowFont 获取窗口默认字体 SetWindowFont 设置
15、窗口默认字体 GetWindowCursor 获取窗口光标 SetWindowCursor 设置窗口光标 GetWindowStyle 获取窗口风格 GetWindowExStyle 获取窗口扩展风格 GetFocusChild 获取拥有输入焦点的子窗口 SetFocusChild 设置焦点子窗口 GetWindowCallbackProc 获取窗口过程函数 SetWindowCallbackProc 设置窗口过程函数 GetWindowAdditionalData 获取窗口附加数据一 SetWindowAdditi
16、onalData 设置窗口附加数据一 GetWindowAdditionalData2 获取窗口附加数据二 对话框和控件在内部已使用附加数据二,保留附加数据一给应用程序使用 SetWindowAdditionalData2 设置窗口附加数据二 GetWindowCaption 获取窗口标题 通常用于主窗口 SetWindowCaption 设置窗口标题 InvalidateRect 使窗口的给定矩形区域无效 将引发窗口重绘 GetUpdateRect 获取窗口当前的无效区域外包矩形 ClientToScreen 将窗口客户区坐标转换为屏幕坐标 Sc
17、reenToClient 将屏幕坐标转换为客户区坐标 WindowToScreen 将窗口坐标转换为屏幕坐标 ScreenToWindow 将屏幕坐标转换为窗口坐标 IsMainWindow 判断给定窗口是否为主窗口 IsControl 判断给定窗口是否为控件 GetParent 获取窗口的父窗口句柄 主窗口的父窗口永远为 HWND_DESKTOP GetMainWindowHandle 返回包含某个窗口的主窗口句柄 GetNextChild 获取下一个子窗口 用于遍历某个窗口的所有子窗口 GetNextMainWindow 获取下
18、一个主窗口句柄 用于遍历所有主窗口 GetHosting 获取某个主窗口的托管窗口 GetFirstHosted 获取某个主窗口的第一个被托管窗口 用于遍历某个主窗口的所有被托管窗口 GetNextHosted 获取下一个被托管窗口 GetActiveWindow 获取当前活动主窗口 SetActiveWindow 设置当前活动主窗口 GetCapture 获取当前捕获鼠标的窗口 第 24 章讲述鼠标捕获相关内容 SetCapture 捕获鼠标 ReleaseCapture 释放鼠标 MoveWindow 移动窗口或改变窗口大小 Sc
19、rollWindow 滚动窗口内容 对话框操作函数 函数名称 用途 备注 DestroyAllControls 销毁所有的子窗口 GetDlgCtrlID 根据控件句柄获取控件标识符 GetDlgItem 根据控件标识符获取控件句柄 GetDlgItemInt 获取控件文本并转换为整数值 SetDlgItemInt 根据整数值设置控件文本 GetDlgItemText 获取子控件文本 功能同 GetWindowText GetDlgItemText2 获取子控件文本 根据文本长度自动分配内存,应用程序负责释放该内存
20、 SetDlgItemText 设置子控件文本 功能同 SetWindowText GetNextDlgGroupItem 获取下一个同组子控件 用于遍历同组控件,参阅 WS_GROUP 风格 GetNextDlgTabItem 获取下一个“TAB 键停止”子控件 用于 TAB 键游历控件,参阅 WS_TABSTOP 风格 SendDlgItemMessage 向子控件发送消息 功能同 SendMessage CheckDlgButton 设置检查框子控件的选中状态 CheckRadioButton 设置单选按钮子控件的选中状态 IsDlgButtonC
21、hecked 检查子按钮是否选中 GetDlgDefPushButton 获取当前默认子按钮 MiniGUI 预定义的控件类和对应类名称 控件类 类名称 宏定义 备注 静态框 "static" CTRL_STATIC 按钮 "button" CTRL_BUTTON 简单编辑框 "edit" CTRL_EDIT 使用等宽系统字符来显示输入文字,只能处理 ISO8859 和 GB2312 字符集。 单行编辑框 "sledit" CTRL_SLEDIT 可处理变宽字符,支持任意字符集 多
22、行编辑框 "mledit" CTRL_MLEDIT 列表框 "listbox" CTRL_LISTBOX 进度条 "progressbar" CTRL_PRORESSBAR 滑块 "trackbar" CTRL_TRACKBAR 工具条 "toolbar" CTRL_TOOLBAR 已废弃,不推荐使用 新工具条 "newtoolbar" CTRL_NEWTOOLBAR 菜单按钮 "menubutton" CTRL_MENUBUTTON 属性页 "propsheet" CTRL_PROPSHEET 树型控件 "treev
23、iew" CTRL_TREEVIEW 包含在 mgext 库,即MiniGUI 扩展库中。 列表型控件 "listview" CTRL_LISTVIEW 月历 "MonthCalendar" CTRL_MONTHCALENDAR 旋钮控件 "SpinBox" CTRL_SPINBOX 酷工具栏 "CoolBar" CTRL_COOLBARA 通用控件操作函数 函数名称 用途 备注 GetNotificationCallback 获取控件的通知消息回调函数 在 MiniGUI 1.2.6 版本中出现 SetNotificationCallback 设置控件的通知消息回调函数 NotifyParentEx 发送控件通知消息






