**********************************
* 系统函数 *
**********************************
-----------------------------------
名称 GetScreenMode
原型 int GetScreenMode (void)
描述 得到当前屏幕的显示方式
GP1288支持3种显示方式:单色、四灰阶、十六灰阶
返回值:1 单色 2 四灰阶 4 十六灰阶
出错返回:-1
参见 SetScreenMode
-----------------------------------
名称 SetScreenMode
原型 int SetScreenMode (int bpp)
描述 设置屏幕显示方式
GP1288支持3种显示方式:单色、四灰阶、十六灰阶
bpp=1 单色 bpp=2 四灰阶 bpp=4 十六灰阶
返回值:0 成功
出错返回:-1
参见 GetScreenMode
-----------------------------------
名称 ResetScreen
原型 void ResetScreen (void)
描述 初始化Microwindow的显示引擎,并重绘屏幕
参见
-----------------------------------
名称 SetDefaultMenuWindow
原型 void SetDefaultMenuWindow (HWND hwnd)
描述 设置缺省的菜单控制窗口。这是MW的特殊函数。
当有多个窗口控件时,最好设定此函数,以使软键盘上的“菜单”键被按下时,显示正确的菜单内容。
菜单消息是WM系统内部产生的,AP无需处理。
如果 hwnd 设为NULL时,默认为系统缺省的最上层窗口。
要注意的是,当设置后,AP退出时,要再将其恢复为NULL。
参见 SetDefaultSearchWindow,SetDefaultSwitchWindow,SetDefaultKeyWindow
-----------------------------------
名称 SetDefaultSearchWindow
原型 void SetDefaultSearchWindow (HWND hwnd)
描述 设置缺省的查询控制窗口。这是MW的特殊函数。
参见 SetDefaultMenuWindow,SetDefaultSwitchWindow,SetDefaultKeyWindow
-----------------------------------
名称 SetDefaultSwitchWindow
原型 void SetDefaultSwitchWindow (HWND hwnd)
描述 设置缺省的切换控制窗口。这是MW的特殊函数。
WM_SWITCH_OUT 消息在任务切换出时产生
WM_SWITCH_IN 消息在任务切换回来时产生
参见 SetDefaultMenuWindow,SetDefaultMenuWindow,SetDefaultKeyWindow
-----------------------------------
名称 SetDefaultKeyWindow
原型 void SetDefaultKeyWindow (HWND hwnd)
描述 设置缺省的按键响应控制窗口。这是MW的特殊函数。
参见 SetDefaultMenuWindow,SetDefaultSearchWindow,SetDefaultSwitchWindow
-----------------------------------
名称
GetDefaultMenuWindow
GetDefaultSearchWindow
GetDefaultSwitchWindow
GetDefaultKeyWindow
原型
HWND GetDefaultMenuWindow (void)
HWND GetDefaultSearchWindow (void)
HWND GetDefaultSwitchWindow (void)
HWND GetDefaultKeyWindow (void)
描述 得到当前的处理菜单(查询、任务切换、按键响应)的主控窗口,返回句柄号
参见 SetDefaultMenuWindow
-----------------------------------
名称 OpenClipboard
原型 BOOL OpenClipboard (HWND hOwner)
描述 打开剪贴板。系统只有一个剪贴板。
hOwner 欲打开剪贴板的窗口句柄
返回值:成功返回TRUE,失败返回FALSE
参见 CloseClipboard
-----------------------------------
名称 CloseClipboard
原型 BOOL CloseClipboard (VOID)
描述 关闭剪贴板。打开剪贴板后必需关闭。
返回值:成功返回TRUE,失败返回FALSE
参见 OpenClipboard
-----------------------------------
名称 ReadClipboard
原型 BOOL ReadClipboard (char *buf, int buf_size)
描述 读出剪贴板的内容
buf 读出的内容
buf_size 读出长度
如果读出长度小于剪贴板中的数据长度,则读出buf_size-1长的字串,并以'/0'为结束
返回值:成功返回TRUE,失败返回FALSE
参见 WriteClipboard
-----------------------------------
名称 WriteClipboard
原型 BOOL WriteClipboard (char *buf)
描述 向剪贴板写入内容
buf 欲写入的字串,以'/0'为结束
返回值:成功返回TRUE,失败返回FALSE
参见 ReadClipboard
-----------------------------------
名称 GetClipboardSize
原型 long GetClipboardSize (void)
描述 得到当前剪贴板中的数据长度
返回值:数据长度
参见
-----------------------------------
名称 IsClipboardEmpty
原型 BOOL IsClipboardEmpty (void)
描述 检测剪贴板是否为空
返回值:空为TRUE,非空为FALSE
参见
-----------------------------------
名称 EmptyClipboard
原型 BOOL EmptyClipboard (void)
描述 清空剪贴板内容
返回值:成功返回TRUE,失败返回FALSE
参见
-----------------------------------
名称 IsClipboardFormatAvailable
原型 BOOL IsClipboardFormatAvailable (UINT uFormat)
描述 检测剪贴板内数据的类型
返回值:成功返回TRUE,失败返回FALSE
现支持类型 : CF_TEXT,即目前只支持文本(其它类型以后再提供)
参见
-----------------------------------
名称 SetClipboardData
原型 HANDLE SetClipboardData (UINT uFormat, HANDLE hMem)
描述 按照数据的类型向剪贴板写入内容
uFormat 数据的类型
hMem 数据的地址
返回值:成功返回TRUE,失败返回FALSE
现支持类型 : CF_TEXT
参见 GetClipboardDat
-----------------------------------
名称 GetClipboardData
原型 HANDLE GetClipboardData (UINT uFormat)
描述 按照数据的类型取得剪贴板数据地址
返回值:成功返回地址,失败返回NULL
uFormat 现只支持 CF_TEXT
参见 SetClipboardData
-----------------------------------
名称 SelectClipRgn
原型 int WINAPI SelectClipRgn(HDC hdc, HRGN hrgn)
描述 设置图形设备的客户显示区域,直接拷贝方式
hdc: 图形设备的句柄
hrgn: 区域数据指针
返回值:成功返回区域类型,失败返回 NULLREGION(0xffffffff)
参见 ExtSelectClipRgn
-----------------------------------
名称 ExtSelectClipRgn
原型 int WINAPI ExtSelectClipRgn(HDC hdc, HRGN hrgn, int fnMode)
描述 设置图形设备的客户显示区域
hdc : 图形设备的句柄
hrgn : 区域数据指针
fnMode : 设置方式:
RGN_COPY 直接拷贝
RGN_AND 取hdc旧区域和hrgn的公共部分
RGN_OR hdc旧区域和hrgn 叠加
RGN_XOR hdc旧区域和hrgn 的不同部分
RGN_DIFF hdc旧区域和hrgn 相减
返回值:成功返回区域类型,失败返回 NULLREGION(0xffffffff)
参见 SelectClipRgn
-----------------------------------
名称 SwitchTo
原型 void SwitchTo (char *fullpath, char *args)
描述 切换到另一个任务
fullpath 另一任务的完整路径名称
args 参数,如有多个参数中间用空格分隔
我们推荐用SwitchTo和下面提到的QuitTo来切换MicroWindow的AP,因为MW的AP不在通常的任务
管理中管理。如果切换的不是MW的AP,还是用系统的 exec,fork。
参见 QuitTo
-----------------------------------
名称 QuitTo
原型 void QuitTo (char *fullpath, char *args)
描述 退出当前的MW程序并切换到另一任务
参见 SwitchTo
-----------------------------------
名称 InputBox
原型 char *InputBox (char *buf, int buf_len, const char *text1, const char *text2, BOOL pwd_mask)
描述 用来获得用户输入文本的简单方法
buf 保存用户输入文本的缓冲区
buf_len 缓冲区长度
text1 字符串1
text2 字符串2
pwd_mask 当输入是密码时,显示的是"*"来加以保护。
TRUE 密码输入
FALSE 非
返回值:如取消输入返回NULL,否则返回字串长度
注意:缓冲区可以为空,也可有预设值。如果你希望这个输入框上有预设的内容时,可以将其填到
buf上。buf的长度最大为255。
参见
-----------------------------------
名称 EnableBuzzer
原型 void EnableBuzzer (BOOL on)
描述 在系统的蜂鸣器开启时,使能当前AP的蜂鸣器
on TRUE 使能 FALSE 关闭
注意:此函数的使用不会影响到系统的蜂鸣器状态
参见 IsBuzzerOn
-----------------------------------
名称 IsBuzzerOn
原型 BOOL IsBuzzerOn (void)
描述 检测当前的蜂鸣器是否开启
返回值:TRUE 开启 FALSE 关闭
参见 EnableBuzzer
-----------------------------------
名称 ControlBuzzer
原型 void ControlBuzzer (int freq, int duration)
描述 控制蜂鸣器以特定的频率和时间发音
freq 发音频率
duration 持续时间
参见 Beep
-----------------------------------
名称 Beep
原型 void Beep (void)
描述 蜂鸣器发出“吡”的一声。这相当于用4K的频率,100的duration调用ControlBuzzer
参见 ControlBuzzer
-----------------------------------
名称 ControlRedLED
原型 void ControlRedLED (BOOL on)
描述 控制GP1288的红色LED灯
on TRUE 开启 FALSE 关闭
同样的,这也不会影响到系统对LED的设定
参见 ControlGreenLED
-----------------------------------
名称 ControlGreenLED
原型 void ControlGreenLED (BOOL on)
描述 控制GP1288的绿色LED灯
on TRUE 开启 FALSE 关闭
参见 ControlRedLED
-----------------------------------
名称 ControlMotor
原型 void ControlMotor (BOOL on)
描述 控制GP1288的震动马达
on TRUE 开启 FALSE 关闭
参见
-----------------------------------
名称 ControlButton
原型 void ControlButton (int speed)
描述 在本任务内,控制键盘连续按键的响应速度
speed 速度值,范围在-10到50之间由慢变快
切换到其他任务后,响应速度恢复变为默认值
参见
-----------------------------------
名称 SetLocalLanguage
原型 void SetLocalLanguage (int lang)
描述 在本任务内设置语言选项
lang 0:大陆,GB码 1:台湾,Big5码 2:香港,Big5码 3:英文 -1:禁止切换
当使用此函数设置语言后后,一般需要更新屏幕,通知控件他们的显示。
实际上,这只是设置显示文字的方式,就是说,是用GB码还是Big5码的格式读取和显示汉字。
参见 GetLanguage
-----------------------------------
名称 GetLanguage
原型 int GetLanguage (void)
描述 得到语言设置的返回值
返回值:lang 0:北京,GB码 1:台湾,Big5码 2:香港,Big5码 3:英文 -1:禁止切换
参见 SetLocalLanguage
-----------------------------------
名称 GetRegionCode
原型 int GetRegionCode (void)
描述 得到GP1288的区域号
返回值:0:北京 1:台湾 2:香港 3:英文 -1:出错
参见
-----------------------------------
名称 GetProductName
原型 int GetProductName (char *buf)
描述 得到产品名称
buf 读出的产品名称
返回值:如果buf==NULL 返回实际需要的长度
否则,成功返回0;失败返回-1
参见 GetSerialNumber
-----------------------------------
名称 GetSerialNumber
原型 int GetSerialNumber (char *buf)
描述 得到GP1288的S/N(串号)
buf 读出的S/N
返回值:如果buf==NULL 返回实际需要的长度
否则,成功返回0;失败返回-1
参见 GetProductName
-----------------------------------
名称 GetPanelKeys
原型 BOOL GetPanelKeys (BOOL bEnable)
描述 系统是否产生(UP,DOWN,LEFT,RIGHT,HOME,END)6个按键消息
在GP1288上,我们将按键分组,这6个按键(就是方向键和边上两个键)归于PanelKeys组,可以
通过程序设定是否起作用,即按下后是否发送按键消息,能被系统接收。其虚拟键值为:
VK_UP 方向键上
VK_DOWN 方向键下
VK_LEFT 方向键左
VK_RIGHT 方向键右
VK_HOME HOME键,默认也是Holink键
VK_END END键,默认是邮件键
bEnable TRUE ,产生按键消息;FALSE 不产生按键消息
参见 GetSoftKeys
-----------------------------------
名称 GetSoftKeys
原型 BOOL GetSoftKeys (BOOL bEnable);
描述 系统是否产生目录、菜单、查找、计算、字典、切换、红外、录音的按键消息
在GP1288上,我们将按键分组,这8个按键归于SoftKeys组,可以通过程序设定是否起作用,即按
下后是否发送按键消息,能被系统接收。其虚拟键值为:
VK_F1 软键盘上的目录键
VK_F2 软键盘上的菜单键
VK_F3 软键盘上的查找键
VK_F4 软键盘上的计算键
VK_F5 软键盘上的字典键
VK_F6 软键盘上的切换键
VK_LBUTTON 红外键
VK_RBUTTON 录音键
bEnable TRUE ,产生按键消息;FALSE 不产生按键消息
参见 GetPanelKeys
-----------------------------------
名称 IsGetPanelKeys
原型 BOOL IsGetPanelKeys (void)
描述 系统是否允许PanelKeys起作用
返回值:TRUE 起作用 FALSE 不起作用
参见 GetPanelKeys
-----------------------------------
名称 IsGetSoftKeys
原型 BOOL IsGetSoftKeys (void)
描述 系统是否允许目录、菜单、查找、计算、字典、切换、红外、录音键起作用
返回值:TRUE 起作用 FALSE 不起作用
参见 GetSoftKeys
-----------------------------------
名称 InitXime
原型 #include<xime.h>
HWND InitXime (HWND owner, InputMethod ime)
描述 以设定的方式初试化输入法
要注意的是,凡是涉及到Xime的函数,都要包含 xime.h这个头文件
owner 欲开启输入法的窗口句柄
ime 输入法代表字
返回值:输入法句柄值,出错返回NULL
输入法代表字含义:
XIME_NONE 最小化
XIME_ASCII ASCII字符输入
XIME_SYMBOL 符号输入
XIME_PHONE 电话符号输入
XIME_CJ 繁体仓颉输入法
XIME_BOSHIAMY 繁体注音
XIME_HANDWRITE 手写输入
XIME_SPCODE 大写符号
XIME_PINYIN 全拼输入
XIME_WUBI 五笔输入
XIME_DEFAULT 系统默认输入法
XIME_USER 自定义输入法
输入法变化后会自动发出信息
WM_XIME_MINIMIZE 输入法最小化
WM_XIME_RESTORE 从最小化恢复
WM_XIME_CHANGED 输入方式变化
注意:调用初试化输入法的时间应在Winmain()中的CreatWindow或对话框建立后,并且
InitXime只能被调用一次,除非你已经销毁过他。
参见 InitXimeEx
-----------------------------------
名称 InitXimeEx
原型 HWND InitXimeEx (HWND owner, InputMethod ime, int sub, int visible)
描述 用附加属性修饰的初试化输入法
owner 欲开启输入法的窗口句柄
ime 输入法代表字
sub 0:默认符号 1:半角符号 2:全角符号
参见 InitXime
-----------------------------------
名称 SelectXime
原型 void SelectXime (InputMethod ime)
描述 在使用中改变输入法
参见 InitXime
-----------------------------------
名称 SelectXimeEx
原型 void SelectXimeEx(InputMethod ime, int sub)
描述 在使用中改变输入法,并有附加属性修饰
参见 SelectXime,InitXime,InitXimeEx
-----------------------------------
名称 SetXimeOwner
原型 HWND SetXimeOwner(HWND owner)
描述 在其他对话框中使用输入法时,要调用此函数设定。
输入法作为一个控件,只能被一个窗体所使用。如果你想在另外一个窗口控件(比如对话框)中使
用,必需为它设定新的属主。
不过千万要记得,在销毁新属主前要将 owner 设回来。
owner 新属主的句柄
返回值:前次属主的句柄
参见
-----------------------------------
名称 DestroyXime
原型 void DestroyXime(void)
描述 手工销毁输入法控件
参见 InitXime
-----------------------------------
名称 ReInitXime
原型 int ReInitXime (void)
描述 手工重新刷新输入法控件。
这并没有破坏原有的句柄,只是重新刷新。
当切换语言时需要这样手工刷新。
参见 InitXime
-----------------------------------
名称 GetSelectedIME
原型 InputMethod GetSelectedIME (void)
描述 返回当前的输入法输入类型
参见 InitXime
-----------------------------------
名称 GetXimeSubStyle
原型 int GetXimeSubStyle (void)
描述 返回当前输入法的附加修饰类型
参见 InitXime
-----------------------------------
名称 GetXimeHandler
原型 HWND GetXimeHandler (void)
描述 返回输入法控件的句柄
必需在InitXime之后才能调用。
还要注意的是,如果是自定义的输入法,请不要调用此函数。
参见
-----------------------------------
名称 PopupXimeMenu
原型 void PopupXimeMenu (int x, int y)
描述 输入法的弹出菜单(就是那个有各种输入法选项的菜单)的位置
x 横坐标位置 y 纵坐标位置
参见 EnableXimeMinimize
-----------------------------------
名称 EnableXimeMinimize
原型 int EnableXimeMinimize (BOOL bEnable);
描述 在输入法弹出菜单上激活(取消)最小化选项
缺省状态下,输入法控件弹出菜单是没有最小化选项的,
调用此函数可以使其出现
bEnable TRUE 显示最小化选项 FALSE 隐藏最小化选项
返回值:0 成功 -1 失败
参见 PopupXimeMenu
-----------------------------------
名称 DefXimeProc
原型 LRESULT CALLBACK DefXimeProc (HWND, UINT, WPARAM, LPARAM)
描述 缺省的输入法处理部件。
如果您写了外挂的自定义输入法,就应该使用DefXimeProc()作为缺省的消息处理部件,在
UserXimeProc()中替代DefWindowProc()
参见 DefWindowProc
-----------------------------------
**********************************
* 用户界面函数 *
**********************************
-----------------------------------
名称 WinMain
原型 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
描述 此函数被系统呼叫,作为MicroWindow程序的初试化入口点,相当于C程序中的main()
hInstance 该程序的实例句柄
hPrevInstance 其他实例的句柄,但实际上其总为NULL
szCmdLine 用于运行程序的命令行,某些AP使用这个参数以在程序启动时将文件加载到内存
iCmdShow 程序最初显示的方式
实际上,我们不需要在WinMain时考虑这些参数,这些参数实际上是被MicroWindow传递并使用的
返回值:WinMain带来的消息循环在接收到WM_QUIT时退出,同时返回退出代码
如果在消息循环之前即退出,返回0
参见 CreateWindow,RegisterClass,ShowWindow,UpdateWindow
-----------------------------------
名称 RegisterClass
原型 ATOM WINAPI RegisterClass(CONST WNDCLASS *lpWndClass)
描述 注册窗口类
窗口总是在窗口类的基础上创建的,窗口类用以标识处理窗口消息的窗口过程
在为程序创建窗口之前,必需先调用RegisterClass注册一个窗口类
lpWndClass 一个指向类型为WNDCLASS 的指针结构
我们要在调用此函数前,先声明一个WNDCLASS 的结构,并为其相关域覆值,例如
WNDCLASS wndclass;
WNDCLASS 在winuser.h中定义,结构如下:
typedef struct tagWNDCLASSA {
MWLIST link; //
UINT style; //类风格
WNDPROC lpfnWndProc; //基于这个类所创建窗口所使用的窗口过程的地址
int cbClsExtra; //
int cbWndExtra; //
HINSTANCE hInstance; //实例句柄
HICON hIcon; //图标
HCURSOR hCursor; //光标
HBRUSH hbrBackground; //背景
LPCSTR lpszMenuName; //窗口类菜单名称
LPCSTR lpszClassName; //窗口类的名称
CHAR szClassName[40];//
} WNDCLASS
类风格中,每一种风格为一位,可以由位“或”来进行组合:
CS_VREDRAW 窗口纵向变化后重绘
CS_HREDRAW 窗口横向变化后重绘
CS_DBLCLKS 发送双击鼠标消息
CS_OWNDC 给该类中的每个窗口分配一个唯一的设备描述表,只需要初始化设备描述
表一次,DC将一直存在,直到窗口被删除
CS_CLASSDC 给该类中的窗口只分配一个共享的设备描述表号
CS_PARENTDC 使子窗口剪贴板区域与父窗口重合
CS_NOCLOSE 窗口菜单上不出现“关闭”选项
CS_SAVEBITS 在窗口重绘时,不发WM_PAINT消息,而是用保存的窗口位图刷新
CS_BYTEALIGNCLIENT
CS_BYTEALIGNWINDOW
CS_GLOBALCLASS 该窗口类具有全局属性
实际上,目前版本的MicroWindow只是模仿Windows的特性,这些风格中,目前只有CS_OWNDC
是真正需要设置的。 (因为窗体尺寸不会变化,也没有双击,剪贴板也只有一个...
参见 CreateWindow, CreateWindowEx, ShowWidow
-----------------------------------
名称 CreateWindow
原型 HWND WINAPI CreateWindow(LPCSTR lpClassName, LPCSTR lpWindowName,DWORD dwStyle,
int x, int y, int nWidth, int nHeight,HWND hwndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
描述 这个函数在内存区域内开辟一个窗口。
它同时定义了窗口的类、标题、风格、初始位置及大小等。
lpClassName 指向注册的类,类必需由 RegisterClass 来注册
lpWindowName 窗口的名称
dwStyle 窗口的风格
x 窗口左上角的横标
y 窗口左上角的纵标
nWidth 窗口宽度
nHeight 窗口高度
hWndParent 父窗口句柄,如是最高级窗口,则为NULL
hMenu 菜单或子窗口句柄
hInstance 程序的实例句柄,是该是由WinMain传递过来的
lpParam 可以用这个指针访问以后向饮用的程序中的数据
注册类可以是新注册的类名称,也可以是系统中已经指定的类,比如:
BUTTON 按钮
COMBOBOX 组合框
EDIT 编辑框
LISTBOX 列表框
SCROLLBAR 滚动条
STATIC 静态文本 等
窗口可以有多种风格(Style),这也是可以按位组合的一些选项:
WS_BORDER 窄边框
WS_CAPTION 有标题栏
WS_CHILD 创建子窗口。此风格不能与WS_POPUS共用
WS_CHILDWINDOW 与 WS_CHILD 相同
WS_CLIPCHILDREN 在父窗口绘图时不考虑被子窗口占据的部分
WS_CLIPSIBLINGS 使子窗口互相关联,当一个子窗口发出WM_PAINT消息时,其它重叠窗口不受影响
WS_DISABLED 不能接受用户输入的“死”窗口
WS_DLGFRAME 对话框型的边框
WS_GROUP 指定第一群组控制
WS_HSCROLL 有横向的滚动条
WS_ICONIC 初始化为最小化的窗口
WS_MAXIMIZE 初始化为最大化的窗口
WS_MAXIMIZEBOX 有最大化按钮
WS_MINIMIZEBOX 同WS_ICONIC
WS_OVERLAPPED 重叠类型的窗口
WS_POPUP 弹出类型的窗口
WS_SYSMENU 标题栏上有菜单
WS_TILED 同WS_OVERLAPPED
WS_VISIBLE 初使化即为可见的
WS_VSCROLL 有纵向的滚动条
返回值:成功返回新窗口句柄,失败返回NULL。
在返回前,其会发出WM_CREATE的消息给窗口过程。
参见 CreateWindowEx, RegisterClassEx
-----------------------------------
名称 CreateWindowEx
原型 CreateWindowEx(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName,DWORD dwStyle,
int x, int y, int nWidth, int nHeight,HWND hwndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
描述 此函数在CreateWindow的基础上,额外多定义了窗口的扩展风格,除此外等同于CreateWindow
扩展风格定义在Winuser.h中,共有:
WS_EX_DLGMODALFRAME 窗口具有双层边框
WS_EX_NOPARENTNOTIFY 子窗口在创建和销毁时,不向其父窗口发送WM_PARENTNOTIFY消息
WS_EX_TOPMOST 该窗口出现在最顶级,甚至当其不在焦点时都如此
WS_EX_ACCEPTFILES 接受拖拽文件
WS_EX_TRANSPARENT 透明窗口,直到其下层窗口被重绘时其才重绘
WS_EX_MDICHILD 产生MID窗口
WS_EX_TOOLWINDOW 产生一个工具窗口,并不出现在任务栏上
WS_EX_WINDOWEDGE 指定窗口边框的边缘加高
WS_EX_CLIENTEDGE 指定窗口边框的边缘下沉
WS_EX_CONTEXTHELP 窗口标题栏上,当用户点击时出现“这是什么”的光标
WS_EX_SHOWKEYB 指定窗口边框边缘
WS_EX_RIGHT 右对齐窗口
WS_EX_LEFT 左对齐窗口,这是默认值
WS_EX_RTLREADING 使用由右至左的阅读排列文字格式
WS_EX_LTRREADING 使用由左至右的阅读排列文字格式
WS_EX_LEFTSCROLLBAR 如是 RTLREADING 方式,纵向滚动条放在左边
WS_EX_RIGHTSCROLLBAR 默认的滚动条在右边
WS_EX_STATICEDGE 不接受用户输入的静态类型
WS_EX_APPWINDOW 当窗口可见时,强制顶级窗口出现在任务条上
WS_EX_LAYERED
WS_EX_OVERLAPPEDWINDOW WS_EX_CLIENTEDGE 与WS_EX_WINDOWEDGE 风格的合集
WS_EX_PALETTEWINDOW WS_EX_WINDOWEDGE WS_EX_TOOLWINDOW 与WS_EX_TOPMOST风格的合集
返回值:成功返回新窗口句柄,失败返回NULL。
在返回前,其会发出WM_CREATE的消息给窗口过程。
参见 CreateWindow
-----------------------------------
名称 ShowWindow
原型 BOOL WINAPI ShowWindow(HWND hwnd, int nCmdShow)
描述 使一个指定窗口被显示
hwnd 窗口句柄
nCmdShow 指定窗口显示方式
在首次调用时,该参数是由WinMain函数中传递过来的,在后续调用中,可以使用:
SW_HIDE 隐藏此窗口并激活另外的窗口
SW_SHOWNORMAL 激活并显示此窗口
SW_NORMAL
SW_SHOWMINIMIZED 激活并最小化显示此窗口
SW_SHOWMAXIMIZED 激活并最大化显示此窗口
SW_MAXIMIZE 最大化此窗口
SW_SHOWNOACTIVATE 显示此窗口并不影响其他激活的窗口
SW_SHOW 在当前位置以其窗口的大小激活并显示
SW_MINIMIZE 最小化此窗口
SW_SHOWMINNOACTIVE 以最小化方式显示窗口,并不影响其他激活的窗口
SW_RESTORE 以其原始尺寸激活并显示
SW_SHOWDEFAULT
SW_MAX 以最大化方式显示窗口
返回值:如此窗口当前为可见,返回非0值;如为隐藏,返回0
参见 WinMain,CreateWindow
-----------------------------------
名称 UpdateWindow
原型 BOOL WINAPI UpdateWindow(HWND hwnd)
描述 此函数通过给窗口过程发送WM_PAINT消息,使窗口的客户区被绘制
hwnd 窗口句柄
返回值:成功返回TRUE,失败返回FALSE
参见 ShowWindow
-----------------------------------
名称 DestroyWindow
原型 BOOL WINAPI DestroyWindow(HWND hwnd)
描述 销毁指定的窗口
此函数发出WM_DESTROY消息给窗口进程,释放和去除该窗口的键盘焦点。
同时也销毁窗口的菜单、记数器等,如果该窗口是父窗口,也自动的销毁其关联的子窗口,
及其由CreateDialog创建的对话框。
hwnd 要销毁的窗口句柄
返回值:成功返回TRUE,失败返回FALSE
参见 CreateWindow,CreateWindowEx,CreateDialog
-----------------------------------
名称 IsWindow
原型 BOOL WINAPI IsWindow(HWND hwnd)
描述 该函数判断指定的句柄是否是存在的窗口
hwnd 要进行判断的窗口句柄
返回值:如是已存在窗口返回TRUE,否则返回FALSE
参见
-----------------------------------
名称 DefWindowProc
原型 LRESULT WINAPI DefWindowProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
描述 该函数调用缺省的窗口进程处理一个窗口应用未处理的消息
其以同样的参数被窗口过程所调用
一般来说我们必需在消息循环中调用此函数以处理系统事件,比如:
{
switch(message){
case XXX:
......
case YYY:
......
}
return DefWindowProc(hwnd, msg,wParam,lParam)
}
hwnd 指向接受消息的窗口过程
msg 消息
wParam 由MAG结构传递的额外参数
lParam 由MAG结构传递的额外参数
返回值:依赖于消息产生的过程处理结果
参见 CallWindowProc, DefDlgProc
-----------------------------------
名称 CallWindowProc
原型 LRESULT WINAPI CallWindowProc(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
描述 将消息传递给指定的窗口处理过程
lpPrevWndFunc 指向改变以前的窗口过程
hWnd 接受消息的窗口过程句柄
Msg 希望处理的消息
wParam 消息的第一个参数
lParam 消息的第二个参数
返回值:依赖于消息处理的结果
SetWindowLong 函数可以通过改变窗口关联的处理过程,来使系统使用新的窗口过程来替代旧
的。这样的应用必需要把它在新窗口过程中未处理的消息通过CallWindowProc来传递给原来的
窗口过程。
CallWindowProc的程序处理实际上非常简单:
CallWindowProc(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
return (*lpPrevWndFunc)(hwnd, Msg, wParam, lParam);
}
参见 SetWindowLong
-----------------------------------
名称 SetWindowLong
原型 LONG WINAPI SetWindowLong(HWND hwnd, int nIndex, LONG lNewLong)
描述 此函数通过设置指定窗口的扩展窗口内存的32位长整型偏移值,来重新设定窗口属性
hwnd 指定窗口的句柄
nIndex 设定属性的索引
lNewLong 指定要设定替换的值
索引在Winuser.h中定义,窗口扩展内存的32位长整型数偏移位置,包括:
GWL_EXSTYLE 新设定窗口的扩展风格
GWL_EXSTYLE 新设定窗口风格
GWL_WNDPROC 用新的窗口处理过程替换原来的
GWL_HINSTANCE 新设定窗口实例句柄
GWL_ID 窗口ID
GWL_USERDATA 新的关联此窗口的32位的值
用GWL_WNDPROC 索引,lNewLong要用long强制转换的新窗口过程的地址。
这样就可以使指定窗口用这个新的窗口过程来预先处理,但如想再用原来的窗口过程,
则要使用函数CallWindowProc
返回值:成功返回以前的32位整型数,失败返回0
参见 CallWindowProc,GetWindowLong
-----------------------------------
名称 SetLayeredWindowAttributes
原型 BOOL WINAPI SetLayeredWindowAttributes(HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags)
描述 目前只有此函数原型,但尚未支持
参见
-----------------------------------
名称 GetWindowLong
原型 LONG WINAPI GetWindowLong(HWND hwnd, int nIndex)
描述 得到指定窗口的信息,即指定的扩展窗口内存中的32位长整型数值
hwnd 指定窗口的句柄
nIndex 窗口扩展内存的32位长整型数偏移位置
返回值:成功返回指定偏移的32位长整型数值,失败返回0
参见 SetWindowLong
-----------------------------------
名称 GetWindowWord
原型 WORD WINAPI GetWindowWord(HWND hwnd, int nIndex)
描述 这个函数实际上在32位模式下是作废的,要应用GetWindowLong替代
参见 GetWindowLong
-------------&