资源描述
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
窗口消息队列的托管窗口
风格标识
含义
备注
WS_NONE
未指定任何风格
WS_VISIBLE
创建初始可见的窗口
WS_DISABLED
创建初始被禁止的窗口
WS_CAPTION
创建含标题栏的主窗口
仅用于主窗口
WS_SYSMENU
创建含系统菜单的主窗口
仅用于主窗口
WS_BORDER
创建有边框的窗口
WS_THICKFRAME
创建具有厚边框的窗口
WS_THINFRAME
创建具有薄边框的窗口
WS_VSCROLL
创建带垂直滚动条的窗口
WS_HSCROLL
创建带水平滚动条的窗口
WS_MINIMIZEBOX
标题栏上带最小化按钮
仅用于主窗口
WS_MAXIMIZEBOX
标题栏上带最大化按钮
仅用于主窗口
WS_EX_NONE
无扩展风格
WS_EX_USEPRIVATECDC
使用私有 DC
仅用于主窗口
WS_EX_TOPMOST
建立始终处于顶层的主窗口
仅用于主窗口
WS_EX_TOOLWINDOW
建立Tooltip 主窗口
仅用于主窗口。Tooltip 主窗口将不会拥有输入焦点,但仍接收鼠标消息
WS_EX_USEPARENTFONT
使用父窗口字体作为默认字体
WS_EX_USEPARENTCURSOR
使用父窗口光标作为默认光标
WS_EX_NOCLOSEBOX
主窗口标题栏上不带关闭按钮
WS_EX_CTRLASMAINWIN
建立可显示在主窗口之外的控件
仅用于控件
MiniGUI中控件类的定义如下:
typedef struct _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 */
DWORD 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 (*WinProc) (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:定义窗口的外观和行为等的风格,该类的所有实例将具有该普通风格。
n 扩展的类风格dwExStyle:定义窗口的扩展风格,该类的所有实例将具有该扩展风格。
n 类光标hCursor:定义该类窗口中光标的形状
n 背景色iBkColor:定义该类窗口的背景颜色象素值
n 类的私有附加数据dwAddData:系统为该类保留的附加空间
MiniGUI中控件类操作的相关函数如下:
BOOL GUIAPI RegisterWindowClass (PWNDCLASS pWndClass) ;
该函数注册一个控件类。
BOOL GUIAPI UnregisterWindowClass (const char *szClassName) ;
该函数注销一个控件类。
const char* GUIAPI GetClassName (HWND hWnd) ;
该函数获取指定控件的类名。.
BOOL GUIAPI GetWindowClassInfo (PWNDCLASS pWndClass) ;
该函数获取指定控件类的类信息。
BOOL GUIAPI SetWindowClassInfo (const WNDCLASS *pWndClass) ;
该函数设置指定控件类的类信息。
MiniGUI-Lite 为应用程序使用 GB2312 输入法提供了如下的函数:
HWND GBIMEWindowEx ( 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-Threads 为 GB2312 输入法定义了一个入口函数:
HWND GBIMEWindow (HWND hosting);
该函数创建一个可以拖动的 GB2312 输入法窗口。
除上述提供 GB2312 输入法的函数之外,MiniGUI 提供了如下更加通用的输入法接口:
int GUIAPI RegisterIMEWindow ( HWND hWnd );
该函数把指定的窗口hWnd注册为MiniGUI的IME窗口。此后,键盘输入将首先被发送到IME窗口。注意只能注册一个IME窗口。
int GUIAPI UnregisterIMEWindow ( HWND hWnd );
该函数注销一个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为所设状态的值。
int GUIAPI GetIMEStatus ( int StatusCode );
该函数获取当前IME窗口的状态。
StatusCode指定所要获取的内容。GetIMEStatus返回IME窗口的状态值。
在 MiniGUI-Lite 中,通常由 mginit 程序创建输入法窗口。应用程序可以创建自己的输入法窗口,然后调用 RegisterIMEWindow 函数注册为输入法窗口。之后,MiniGUI 将把所有的按键消息首先发送到输入法窗口,然后再由输入法窗口进行相应的处理并转发给目标窗口或者活动客户。
函数名称
用途
备注
UpdateWindow
立即更新某个窗口
ShowWindow
显示或隐藏某个窗口
IsWindowVisible
判断某个窗口是否可见
控件和主窗口均可用
EnableWindow
使能或禁止某个窗口
IsWindowEnabled
判断某个窗口是否可用
GetClientRect
获取窗口客户区矩形
GetWindowRect
获取窗口矩形
屏幕坐标系中的窗口尺寸
GetWindowBkColor
获取窗口背景色
SetWindowBkColor
设置窗口背景色
GetWindowFont
获取窗口默认字体
SetWindowFont
设置窗口默认字体
GetWindowCursor
获取窗口光标
SetWindowCursor
设置窗口光标
GetWindowStyle
获取窗口风格
GetWindowExStyle
获取窗口扩展风格
GetFocusChild
获取拥有输入焦点的子窗口
SetFocusChild
设置焦点子窗口
GetWindowCallbackProc
获取窗口过程函数
SetWindowCallbackProc
设置窗口过程函数
GetWindowAdditionalData
获取窗口附加数据一
SetWindowAdditionalData
设置窗口附加数据一
GetWindowAdditionalData2
获取窗口附加数据二
对话框和控件在内部已使用附加数据二,保留附加数据一给应用程序使用
SetWindowAdditionalData2
设置窗口附加数据二
GetWindowCaption
获取窗口标题
通常用于主窗口
SetWindowCaption
设置窗口标题
InvalidateRect
使窗口的给定矩形区域无效
将引发窗口重绘
GetUpdateRect
获取窗口当前的无效区域外包矩形
ClientToScreen
将窗口客户区坐标转换为屏幕坐标
ScreenToClient
将屏幕坐标转换为客户区坐标
WindowToScreen
将窗口坐标转换为屏幕坐标
ScreenToWindow
将屏幕坐标转换为窗口坐标
IsMainWindow
判断给定窗口是否为主窗口
IsControl
判断给定窗口是否为控件
GetParent
获取窗口的父窗口句柄
主窗口的父窗口永远为 HWND_DESKTOP
GetMainWindowHandle
返回包含某个窗口的主窗口句柄
GetNextChild
获取下一个子窗口
用于遍历某个窗口的所有子窗口
GetNextMainWindow
获取下一个主窗口句柄
用于遍历所有主窗口
GetHosting
获取某个主窗口的托管窗口
GetFirstHosted
获取某个主窗口的第一个被托管窗口
用于遍历某个主窗口的所有被托管窗口
GetNextHosted
获取下一个被托管窗口
GetActiveWindow
获取当前活动主窗口
SetActiveWindow
设置当前活动主窗口
GetCapture
获取当前捕获鼠标的窗口
第 24 章讲述鼠标捕获相关内容
SetCapture
捕获鼠标
ReleaseCapture
释放鼠标
MoveWindow
移动窗口或改变窗口大小
ScrollWindow
滚动窗口内容
对话框操作函数
函数名称
用途
备注
DestroyAllControls
销毁所有的子窗口
GetDlgCtrlID
根据控件句柄获取控件标识符
GetDlgItem
根据控件标识符获取控件句柄
GetDlgItemInt
获取控件文本并转换为整数值
SetDlgItemInt
根据整数值设置控件文本
GetDlgItemText
获取子控件文本
功能同 GetWindowText
GetDlgItemText2
获取子控件文本
根据文本长度自动分配内存,应用程序负责释放该内存
SetDlgItemText
设置子控件文本
功能同 SetWindowText
GetNextDlgGroupItem
获取下一个同组子控件
用于遍历同组控件,参阅 WS_GROUP 风格
GetNextDlgTabItem
获取下一个“TAB 键停止”子控件
用于 TAB 键游历控件,参阅 WS_TABSTOP 风格
SendDlgItemMessage
向子控件发送消息
功能同 SendMessage
CheckDlgButton
设置检查框子控件的选中状态
CheckRadioButton
设置单选按钮子控件的选中状态
IsDlgButtonChecked
检查子按钮是否选中
GetDlgDefPushButton
获取当前默认子按钮
MiniGUI 预定义的控件类和对应类名称
控件类
类名称
宏定义
备注
静态框
"static"
CTRL_STATIC
按钮
"button"
CTRL_BUTTON
简单编辑框
"edit"
CTRL_EDIT
使用等宽系统字符来显示输入文字,只能处理 ISO8859 和 GB2312 字符集。
单行编辑框
"sledit"
CTRL_SLEDIT
可处理变宽字符,支持任意字符集
多行编辑框
"mledit"
CTRL_MLEDIT
列表框
"listbox"
CTRL_LISTBOX
进度条
"progressbar"
CTRL_PRORESSBAR
滑块
"trackbar"
CTRL_TRACKBAR
工具条
"toolbar"
CTRL_TOOLBAR
已废弃,不推荐使用
新工具条
"newtoolbar"
CTRL_NEWTOOLBAR
菜单按钮
"menubutton"
CTRL_MENUBUTTON
属性页
"propsheet"
CTRL_PROPSHEET
树型控件
"treeview"
CTRL_TREEVIEW
包含在 mgext 库,即MiniGUI 扩展库中。
列表型控件
"listview"
CTRL_LISTVIEW
月历
"MonthCalendar"
CTRL_MONTHCALENDAR
旋钮控件
"SpinBox"
CTRL_SPINBOX
酷工具栏
"CoolBar"
CTRL_COOLBARA
通用控件操作函数
函数名称
用途
备注
GetNotificationCallback
获取控件的通知消息回调函数
在 MiniGUI 1.2.6 版本中出现
SetNotificationCallback
设置控件的通知消息回调函数
NotifyParentEx
发送控件通知消息
展开阅读全文