MiniGUI教程

  • 格式:doc
  • 大小:156.00 KB
  • 文档页数:6

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;

控件类的主要元素如下:

 类名spClassName:区别于其它控件类的类名称

 窗口过程函数指针WinProc:该类控件的实例均使用该窗口过程函数,它处理所有发送到控件的消息并定义控件的行为和特征

 类风格dwStyle:定义窗口的外观和行为等的风格,该类的所有实例将具有该普通风格。

 扩展的类风格dwExStyle:定义窗口的扩展风格,该类的所有实例将具有该扩展风格。

 类光标hCursor:定义该类窗口中光标的形状

 背景色iBkColor:定义该类窗口的背景颜色象素值

 类的私有附加数据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 函数各参数的含义如下:

 hosting IME窗口的托管窗口,不能取 HWND_DESKTOP

 lx,ty,rx,by IME窗口的大小和位置

 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可以是以下值之一:

 IS_ENABLE 使IME窗口有效或无效

 IS_FULLCHAR 是否转换半角字符为全角字符

 IS_FULLPUNC 是否转换半角标点为全角标点

 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 将屏幕坐标转换为窗口坐标