Linux/XWindow的api函数介绍
**********************************
* 系统函数 *
**********************************
-----------------------------------
名称 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
-----------------------------------
名称 SetWindowWord
原型 WORD WINAPI SetWindowWord(HWND hwnd, int nIndex, WORD wNewWord)
描述 这个函数实际上在32位模式下是作废的,要应用SetWindowLong替代
参见 SetWindowLong
-----------------------------------
名称 GetWindowTextLength
原型 int WINAPI GetWindowTextLength(HWND hwnd)
描述 如果当前窗口有指定标题栏,此函数得到此标题栏的文本长度
hwnd 指定的窗口句柄
返回值:成功返回长度,如果该窗口没有标题文本,返回0
参见 GetWindowText, SetWindowText
-----------------------------------
名称 GetWindowText
原型 int WINAPI GetWindowText(HWND hwnd, LPSTR lpString, int nMaxCount)
描述 拷贝指定窗口的标题栏的文本到指定的缓冲区
hwnd 指定窗口的句柄
lpString 指定的缓冲区
nMaxCount 拷贝字串长度
返回值:成功返回拷贝字串长度(不包含结尾的NULL),
如窗口无标题栏、标题栏为空、或窗口句柄非法返回0
参见 GetWindowTextLength, SetWindowText
-----------------------------------
名称 SetWindowText
原型 BOOL WINAPI SetWindowText(HWND hwnd, LPCSTR lpString)
描述 改变当前窗口的标题栏文字
hwnd 窗口句柄
LPCSTR lpString 以NULL为结束的新标题栏文字串指针
返回值:成功返回TRUE,失败返回FALSE
参见 GetWindowText
-----------------------------------
名称 MoveWindow
原型 BOOL WINAPI MoveWindow(HWND hwnd, int x, int y, int nWidth, int nHeight, BOOL bRepaint)
描述 改变指定窗口的位置和大小,这都是相对于屏幕上其左上角的位置而言的
hwnd 窗口句柄
x 新位置左上角横标
y 新位置左上角纵标
nWidth 宽度
nHeigth 高度
bRepaint 重绘标志,TRUE 重绘,FALSE不重绘
返回值:成功返回TRUE,失败返回FALSE
参见 SetWindowPos,UpdateWindow
-----------------------------------
名称 SetWindowPos
原型 BOOL WINAPI SetWindowPos(HWND hwnd, HWND hwndInsertAfter, int x, int y, int cx, int cy, UINT fuFlags)
描述 改变窗口、弹出窗口、或子窗口的位置、大小
hwnd 窗口句柄
hwndInsertAfter 布局顺序句柄,它只能是下列值之一:
SWP_SHOWWINDOW 显示窗口
SWP_HIDEWINDOW 隐蔽窗口
HWND_TOP 显示在多窗口前面
HWND_BOTTOM 显示在多窗口后面
x 指定新窗口的左上角横标
y 指定新窗口的左上角纵标
cx 指定新窗口的宽
cy 指定新窗口的高
fuFlags 指定窗口的位置、大小的旗标,它可以是下列值的组合:
SWP_NOMOVE 不改变窗口座标
SWP_NOSIZE 不改变窗口大小
SWP_NOZORDER 不改变窗口叠层次序
返回值:成功返回TRUE,失败返回FALSE
需要注意的是,如果你用了SetWindowLong来改变当前窗口的话,那就必须要用SetWindowPos来
使它发生作用。
参见 MoveWindow
-----------------------------------
名称 GetCursorPos
原型 BOOL WINAPI GetCursorPos(LPPOINT lpPoint)
描述 得到屏幕上的光标位置
lpPoint 指向一个POINT结构,使它接收屏幕的光标
POINT结构定义如下:
typedef struct tagPOINT {
LONG x;
LONG y;
} POINT;
就是光标的X,Y位置
返回值:如果得到光标,返回非零值;否则返回零
参见 SetCursor,SetCursorPos
-----------------------------------
名称 GetFocus
原型 HWND WINAPI GetFocus(VOID)
描述 得到正获得输入焦点的窗口句柄
返回值:该窗口句柄
参见 SetFocus
-----------------------------------
名称 SetFocus
原型 HWND WINAPI SetFocus(HWND hwnd)
描述 使指定窗口获得输入焦点
返回值:成功返回上次获得焦点的窗口句柄;如hwnd参数非法则失败返回0
参见 GetFocus
-----------------------------------
名称 SetForegroundWindow
原型 BOOL WINAPI SetForegroundWindow(HWND hwnd)
描述 激活一个窗口并将其显示在最上层
当我们想显示错误信息或消息并立即通知用户时,就要调用这个函数
参见 GetForegroundWindow, SetActiveWindow
-----------------------------------
名称 GetForegroundWindow
原型 HWND GetForegroundWindow(VOID)
描述
参见 GetActiveWindow,SetForegroundWindow
-----------------------------------
名称 SetActiveWindow
原型 HWND WINAPI SetActiveWindow(HWND hwnd)
描述 激活一个窗口,
参见
-----------------------------------
名称 GetActiveWindow
原型 HWND WINAPI GetActiveWindow(VOID)
描述 得到正获得输入焦点的窗口的父窗口句柄
返回值:该窗口句柄
参见 SetActiveWindow
-----------------------------------
名称 BringWindowToTop
原型 BOOL WINAPI BringWindowToTop(HWND hwnd)
描述 在这里,这个函数的效果和SetForegroundWindow相同
参见 SetForegroundWindow
-----------------------------------
名称 GetDesktopWindow
原型 HWND WINAPI GetDesktopWindow(VOID)
描述 得到根窗口句柄
返回值:根窗口句柄
参见
-----------------------------------
名称 GetParent
原型 HWND WINAPI GetParent(HWND hwnd)
描述 得到指定子窗口的父窗口句柄
hwnd 指定子窗口句柄
返回值:如成功返回其父窗口句柄;如果其无父窗口,返回NULL
参见
-----------------------------------
名称 EnableWindow
原型 BOOL WINAPI EnableWindow(HWND hwnd, BOOL bEnable)
描述 使指定的窗口或控件开启/关闭输入响应
hwnd 窗口/控件句柄
bEnable TRUE为开启,FALSE为关闭
返回值:如果该窗口之前为关闭状态,返回TRUE;否则返回TRUE
默认一个窗口在创建时都是Enable的,如果希望其是Disable的,那么就要在CreateWindow或
CreateWindowEx函数中指定WS_DISABLED 风格;
当窗口创建后,用此函数来切换开启/关闭。
在对话框中关闭的控件不能接收用户的输入(变灰的那种)。
参见 CreateWindow,CreateWindowEx, IsWindowEnabled
-----------------------------------
名称 IsWindowEnabled
原型 BOOL IsWindowEnabled(HWND hWnd)
描述 判断指定窗口是否可以接受输入
hwnd 窗口句柄
返回值:如果窗口可以接受输入(Enable)返回TRUE;否则返回FALSE
参见 EnableWindow
-----------------------------------
名称 AdjustWindowRectEx
原型 BOOL WINAPI AdjustWindowRectEx(LPRECT lpRect, DWORD dwStyle, BOOL bMenu,DWORD dwExStyle)
描述 基于需要的客户区尺寸,计算需要的窗口区域尺寸
根据(dwStyle)调整(lpRect)为客户的相对区域
lpRect 指向客户区RECT结构的指针
dwStyle 窗口属性
bMenu 窗口菜单,现在无作用
dwExStyle 扩展窗口属性,现在无作用
返回值:现在无作用
参见
-----------------------------------
名称 GetClientRect
原型 BOOL WINAPI GetClientRect(HWND hwnd, LPRECT lpRect)
描述 获取窗口客户区的尺寸
hwnd 窗口的句柄
lpRect 指向客户区的RECT结构的指针
RECT结构定义如下:
typedef struct _RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
即一个矩形的上下左右
返回值:成功返回TRUE,失败返回FALSE
参见 GetWindowRect
-----------------------------------
名称 GetWindowRect
原型 BOOL WINAPI GetWindowRect(HWND hwnd, LPRECT lpRect)
描述 得到指定窗口的区域尺寸
hWnd 窗口句柄
lpRect 指向RECT结构的指针,用来得到窗口的相关屏幕位置
参见 GetClientRect
-----------------------------------
名称 ClientToScreen
原型 BOOL WINAPI ClientToScreen(HWND hwnd, LPPOINT lpPoint)
描述 将客户区内一点的位置对应到相关屏幕位置上
hwnd 窗口句柄
lpPoint 指向POINT结构的包含客户区相关内容的指针
返回值:成功返回TRUE,失败返回FALSE
参见 ScreenToClient
-----------------------------------
名称 ScreenToClient
原型 BOOL WINAPI ScreenToClient(HWND hwnd, LPPOINT lpPoint)
描述 把lpPoint从窗口的区域转到窗口客户区
hwnd 窗口句柄
lpPoint 点指针
返回值:成功返回TRUE,失败返回FALSE
参见 ClientToScreen
-----------------------------------
名称 MapWindowPoints
原型 int WINAPI MapWindowPoints(HWND hwndFrom, HWND hwndTo, LPPOINT lpPoints,UINT cPoints)
描述 把一组点从一个窗口转换到另一个窗口
hwndFrom : 源窗口句柄
hwndTo : 目的窗口句柄
lpPoints : 点起始指针
cPoints : 点的个数
返回值:低 2字节是转换点数据时水平方向加的数值
高 2字节是转换点数据时垂直方向加的数值
参见 ScreenToClient,ClientToScreen.
-----------------------------------
名称 GetMessage
原型 BOOL WINAPI GetMessage(LPMSG lpMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax)
描述 得到消息队列中指定范围的消息
lpMsg 指向欲得到消息的MSG消息结构
MSG结构定义如下:
typedef struct tagMSG {
HWND hwnd; //指定接收消息的窗口句柄
UINT message; //指定消息的标称序号
WPARAM wParam; //消息附带的第一参数
LPARAM lParam; //消息附带的第二参数
DWORD time; //指定消息张贴的时间
POINT pt; //当消息发生时,光标的位置
} MSG;
hwnd 窗口句柄,如为NULL表示这一进程包含的全部父窗体和子窗体
wMsgFilterMin 消息过滤器低
wMsgFilterMax 消息过滤器高
实际上该函数只判断在这个过滤器范围之间的消息
当过滤器Min和Max都为0时表接收全部消息
返回值:如果得到WM_QUIT消息,返回0
如果得到其它消息,返回非0
如出错返回-1
参见 PostMessage
-----------r-----------------------------------
名称 SendMessage
原型 LRESULT WINAPI SendMessage(HWND hwnd, UINT Msg,WPARAM wParam,LPARAM lParam)
描述 给指定的窗口发送一个消息
这个消息是不进队的,就是说它立即调用指定窗口的消息处理过程来处理这个消息,直到处理完
才返回。
hwnd 指定窗口的句柄
Msg 消息
Wparam 消息参数1
lParam 消息参数2
返回值:依赖消息的不同,返回消息处理的结果
参见 PostMessage,GetMessage
-----------------------------------
名称 PostMessage
原型 BOOL WINAPI PostMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
描述 该函数将消息放到指定窗口的消息队列中
这个消息队列是先进先出的,包括键盘消息等,可以被GetMessage得到
hwnd 窗口句柄
Msg 消息
wParam 消息参数1
lParam 消息参数2
返回值:成功返回TRUE,失败返回FALSE
参见 GetMessage, PeekMessage
-----------------------------------
名称 PostQuitMessage
原型 VOID WINAPI PostQuitMessage(int nExitCode)
描述 该函数贴入消息队列中一个WM_QUIT消息并立即返回,指示系统该AP需要结束
nExitCode 退出码,作为WM_QUIT的第二个参数
当从消息队列中得到WM_QUIT消息时,该AP即退出WinMain中的消息循环,并将控制权交还系统
返给系统的退出值就是消息的第二个参数,即nExitCode
参见 GetMessage, PeekMessage, PostMessage
-----------------------------------
名称 PostThreadMessage
原型 BOOL WINAPI PostThreadMessage(DWORD dwThreadId, UINT Msg, WPARAM wParam,LPARAM lParam)
描述 目前系统尚不支持线程,该函数功能目前等同于PostMessage
参见 PostMessage
-----------------------------------
名称 PeekMessage
原型 BOOL WINAPI PeekMessage(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin,UINT uMsgFilterMax, UINT wRemoveMsg)
描述 消息监听器,我们用它来查看系统在消息队列中是否有新的消息
lpMsg 指向消息结构
hwnd 要被监听消息的窗口句柄
wMsgFilterMin 消息过滤器低位
wMsgFilterMax 消息过滤器高位
这里的消息过滤器用来对消息过滤。
当wMsgFilterMin wMsgFilterMax 都为0,代表我们要监听所有消息
wRemoveMsg 指定如何处理消息,它只能从下列值中选一:
PM_NOREMOVE 在PeedMessage处理后,消息不从消息队列中删除
PM_REMOVE 在PeedMessage处理后,消息从消息队列中删除
这个函数可以使程序检查队列中的下一个消息,就像“偷看”一样,但并不实际删除它。
这个监听不像GetMessage那样不将控制返回给程序,而是不论消息是否出现,立即返回。
当我们想在程序中一直做些事情,比如,画些随机的图案,这不是简单地在WM_PAINT中使用
While(TRUE)循环来实现的,因为这样就无法处理其它消息了,我们就必须用到这个监听函数:
while(TRUE)
{
if(PeekMessage($msg,NULL,0,0,PM_REMOVE))
{
if(msg.message==WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else{
[在这里写我们的随机绘图函数了]
}
}
要注意的是,WM_QUIT消息必须检查,因为如果GetMessage接到WM_QUIT消息将返回0,但PeekMessage
用它的返回值指示是否得到消息,所以WM_QUIT必须检查。
参见 GetMessage
-----------------------------------
名称 DispatchMessage
原型 LONG WINAPI DispatchMessage(CONST MSG *lpMsg)
描述 这个函数分发消息到窗口过程,它典型的是和GetMessage配套使用
lpMsg 指向消息结构
返回值:实际上这里一般是忽略其返回值的
参见 GetMessage
-----------------------------------
名称 GetCapture
原型 HWND WINAPI GetCapture(VOID)
描述 得到当前能接受笔触的窗口
同一时间只能有一个窗口能接受笔触
返回值:成功返回该窗口句柄,如没有窗口能接受笔触返回NULL
参见 SetCapture ,ReleaseCapture
-----------------------------------
名称 SetCapture
原型 HWND WINAPI SetCapture(HWND hwnd)
描述 将指定窗口设为可以接受笔触
同一时间只能有一个窗口能接受笔触
hwnd 欲设接受笔触的窗口句柄
返回值:成功返回上次接受笔触的窗口句柄;如没有这样的窗口返回NULL
参见 GetCapture
-----------------------------------
名称 ReleaseCapture
原型 BOOL WINAPI ReleaseCapture(VOID)
描述 使当前接受笔触的窗口不再接受笔触
通常在SetCapture之后如有需要才调用此函数进行释放
返回值:成功返回非0值,失败返回0
参见 GetCapture, SetCapture,
-----------------------------------
名称 SetTimer
原型 UINT WINAPI SetTimer(HWND hwnd, UINT idTimer, UINT uTimeout,TIMERPROC lpTimerFunc);
描述 用此函数为MicroWindow程序分配一个计时器
我们通过此函数设定系统间隔多长时间给你的程序正常窗口发送WM_TIMER消息。
当使用完计时器后,要调用KillTimer函数停止计时器消息。
在当前版本的MicroWindow中,计时器具有 的分辨率
要注意的是,计时器消息也是在消息队列中,并不一定在设置的计时器时间到后就会立即收到WM_TIMER
消息,程序只有在消息队列中没有其它消息时才能接收到。
要注意的是,不能直接用计时器来精确计时。
hwnd 接收WM_TIMER消息的窗口句柄
idTimer 计时器ID,应该是个非0整数
如果使用多个计时器,那么对每个计时器要使用不同的ID
当窗口过程收到WM_TIMER消息时,wParam参数等于计时器的ID,lParam参数为0
uTimerout 以毫秒为单位指定时间间隔,时间到后发送一次WM_TIMER消息
lpTimerFunc 计时器处理过程
当我们不指定此过程(该参数填为NULL)SetTimer会给窗口过程发送WM_TIMER消息;
如果我们指定一个过程处理计时器的动作,那么SetTimer不会再显式的发送WM_TIMER
消息,而是由此过程来处理。例如:
switch(message){
case WM_CREATE:
SetTimer(hwnd,ID_TIMER,1000,TimerProc);
return 0;
//...
}
VOID CALLBACK TimerProc(HWND hwnd,UINT message,UINT iTImerID,DWORD dwTIme)
{
//... ... do what you want
}
返回值:成功返回标识新计时器的整数;失败返回0
参见 KillTimer
-----------------------------------
名称 KillTimer
原型 BOOL WINAPI KillTimer(HWND hwnd, UINT idTimer);
描述 销毁指定的计时器
hwnd 关联指定计时器的窗口句柄
idTimer 计时器ID
返回值:成功返回TRUE,失败返回FALSE
参见 SetTimer
-----------------------------------
名称 MwGetNextTimeoutValue
原型 UINT MwGetNextTimeoutValue(void)
描述 得到计时器下一个到时的值,单位为毫秒
返回值:返回此值,出错返回0
参见 SetTimer
-----------------------------------
名称 MwHandleTimers
原型 void MwHandleTimers(void)
描述 检查并且执行已经到时的定时器
参见 SetTimer
-----------------------------------
名称 GetSystemMetrics
原型 int WINAPI GetSystemMetrics(int nIndex)
描述 得到系统变量和系统设定,所有单位以像素为准
nIndex 希望得到的系统设定索引
当前版本的MicroWindow支持如下值:
SM_CXSCREEN 屏幕宽度
SM_CYSCREEN 屏幕高度
SM_CXVSCROLL 垂直滚动条块宽度
SM_CYHSCROLL 水平滚动条块高度
SM_CYVSCROLL 垂直滚动条块高度
SM_CXHSCROLL 水平滚动条块宽度
SM_CYCAPTION 标题区域高度
SM_CXBORDER 窗口滚动条边框宽度
SM_CYBORDER 窗口滚动条边框高度
SM_CXDLGFRAME 对话框横边宽度
SM_CYDLGFRAME 对话框纵边宽度
SM_CXICON 图标缺省的宽度
SM_CYICON 图标缺省的高度
SM_CYMENU 菜单区高度
SM_CXFRAME 水平边框宽度
SM_CYFRAME 垂直边框高度
返回值:得到相应索引对应的系统值
参见
-----------------------------------
名称 CreateCaret
原型 BOOL CreateCaret(HWND hWnd, int nWidth, int nHeight)
描述 产生一个新的系统光标,并将其分配给指定的窗口
只有一个窗口得到键盘输入焦点或激活时才能给其创建光标
在失去键盘输入焦点前应销毁光标
hWnd 属主窗口句柄
nWidth 光标宽度
nHeight 光标高度
返回值:成功创建返回TRUE;失败返回FALSE
参见 ShowCaret ,HideCaret,DestroyCaret
-----------------------------------
名称 ShowCaret
原型 BOOL ShowCaret(HWND hWnd)
描述 使光标出现在屏幕的在光标位置上
当光标出现后即会自动闪烁
只有窗口自己拥有光标,且光标有自己的形状,并且不被隐藏时才会出现
HideCaret是效果叠加的,举例说,如果你在程序中调过3次HideCaret,那就必需再用ShowCaret
才能显示光标
hWnd 光标属主窗口句柄
返回值:成功返回TRUE;失败返回FALSE
参见 HideCaret,CreateCaret
-----------------------------------
名称 HideCaret
原型 BOOL HideCaret(HWND hWnd)
描述 隐藏光标。光标隐藏后并没有破坏它的形状和光标位置
hWnd 光标属主窗口句柄
返回值:成功返回TRUE;失败返回FALSE
参见 ShowCaret,CreateCaret
-----------------------------------
名称 ActiveCaret
原型 BOOL ActiveCaret(HWND hWnd)
描述 指定光标要显示在哪个窗口
hWnd 属主窗口句柄
返回值:成功返回TRUE;失败返回FALSE
参见 CreateCaret
-----------------------------------
名称 GetCaretBlinkTime
原型 UINT GetCaretBlinkTime(HWND hWnd)
描述 得到以毫秒为单位的光标闪烁间隔
hWnd 光标属主窗口句柄
返回值:成功返回闪烁间隔;失败返回0
参见 SetCaretBlinkTime
-----------------------------------
名称 SetCaretBlinkTime
原型 BOOL SetCaretBlinkTime(HWND hWnd, UINT uTime)
描述 以毫秒为单位设置光标闪烁间隔
hWnd 光标属主窗口句柄
uTime 毫秒值,现在只支持500毫秒(即每秒闪动一次)
返回值:成功返回TRUE;失败返回FALSE
参见 SetCaretBlinkTime
-----------------------------------
名称 DestroyCaret
原型 BOOL DestroyCaret(HWND hWnd)
描述 销毁指定窗口的光标
只有窗口拥有光标时才能销毁,否则该函数会立即返回FALSE
hWnd 光标属主窗口句柄
返回值:成功返回TRUE;失败返回FALSE
参见 CreatCaret
-----------------------------------
名称 SetCaretPos
原型 BOOL SetCaretPos(HWND hWnd, int x, int y)
描述 移动光标到指定位置
不管光标是否可见,此函数都会移动光标的位置
hWnd 光标属主窗口句柄
x 光标位置横标
y 光标位置纵标
参见 GetCaretPos
-----------------------------------
名称 GetCaretPos
原型 BOOL GetCaretPos(HWND hWnd, PPOINT pPt)
描述 得到光标位置
hWnd 光标属主窗口句柄
pPt 指向POINT结构的光标位置
返回值:成功返回TRUE;失败返回FALSE
参见 SetCaretPos
-----------------------------------
**********************************
* GDI函数 *
**********************************
-----------------------------------
名称 GetDC
原型 HDC WINAPI GetDC(HWND hwnd)
描述 该函数返回指向当前窗口客户区的显示设备描述表句柄
我们可以用这个返回的句柄来使用GDI(图形设备接口:Graphics Device Interface)函数
在显示设备上画图,并不改变设备的显示区域数据
hwnd 窗口句柄,如为NULL表当前屏幕
需要说明的是,当我们想在一个图形输出设备上绘图时,必须先获得一个设备描述表(DC)的句柄。
将句柄返回给程序时,系统就给与了对这个设备的权限,然后我们才能在GDI函数中将这个句柄作为
参数,来标识想在其上进行绘图的设备。
使用GetDC使我们在非WM_PAINT消息期间也能得到设备描述表句柄,但在退出窗口函数之前必须要
调用ReleaseDC来将其释放。而BeginPaint和EndPaint函数在进行绘图的WM_PAINT消息期间使用。
这个函数等同于 GetDCEx(hwnd, NULL, DCX_DEFAULTCLIP|DCX_EXCLUDEUPDATE);
返回值:如果成功返回指定窗口客户区的设备描述表句柄
失败返回NULL
参见 GetDCEx,ReleaseDC,BeginPaint,EndPaint,GetWindowDC
-----------------------------------
名称 GetDCEx
原型 HDC WINAPI GetDCEx(HWND hwnd,HRGN hrgnClip,DWORD flags)
描述 这是GetDC函数的超集,除了GetDC的功能外,向应用程序额外提供了在客户区域的剪切控制
hwnd 窗口句柄
hrgnClip 指定可能和设备描述表可视区域接合的剪切区域
flags 指定设备描述表如何被创建。现版本的MicroWindow只支持:
DCX_WINDOW
DCX_DEFAULTCLIP
返回值:如果成功返回指定窗口客户区的设备描述表句柄
失败返回NULL
参见 GetDC
-----------------------------------
名称 GetWindowDC
原型 HDC WINAPI GetWindowDC(HWND hWnd)
描述 这个函数可以获取整个窗口而不仅限于窗口客户区的设备描述句柄,同样的,也必须要在使用完毕
后用ReleaseDC释放。
这个设备描述表除了客户区外,还包括窗口的标题栏、菜单、滚动条和框架。
正常情况下,在非客户区绘图是不推荐的。如果想尝试使用GetWindowDC,必须捕获WM_NCPAINT
(非客户区绘制)消息。
返回值:如果成功返回指定窗口客户区的设备描述表句柄
失败返回NULL
参见 GetDC
-----------------------------------
名称 ReleaseDC
原型 int WINAPI ReleaseDC(HWND hWnd, HDC hDC)
描述 释放设备描述表句柄,以便其它应用可以使用。
要注意的是,所有应用GetDC或GetDCEx、GetWindowDC来获得设备描述表句柄后,都必须用
ReleaseDC来释放;但是用CreateDC函数生成的DC不可以使用ReleaseDC来释放,它必须用
DeleteDC来删除
hwnd 窗口句柄
hDC 要释放的设备描述表句柄
返回值:如果成功释放返回1;否则返回0
参见 GetDC,CreateDC,DeleteDC
-----------------------------------
名称 DeleteDC
原型 BOOL WINAPI DeleteDC(HDC hdc)
描述 删除一个创建的设备描述表句柄
只有调用CreateDC创建的设备描述表才能用此函数删除。
hdc 要释放的设备描述表句柄
返回值:成功删除返回TRUE;失败返回FALSE
参见 CreateDC
-----------------------------------
名称 CreateDC
原型 HDC CreateDC(LPCTSTR lpszDriver,LPCTSTR lpszDevice,LPCTSTR lpszOutput,CONST DEVMODE *lpInitData)
描述 用指定的名称创建一个设备描述表
实际上,lpszDriver 只有在一种情况下才有意义,那就是当其为“DISAPLY”时,这时后面其它
参数必须都填为NULL,例如:
hdc=CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL);
返回值:如果成功返回创建的设备描述表句柄
失败返回NULL
参见 GetDC,DeleteDC
-----------------------------------
名称 GetDeviceCaps
原型 int WINAPI GetDeviceCaps(HDC hdc, int nIndex)
描述 设备描述表通常是指一个物理设备,可以通过此函数得到它的属性信息
hdc 指定的设备描述表句柄
nIndex 指定要得到的属性信息索引,它可以是:
HORZRES 返回屏幕水平显示像素数
VERTRES 返回屏幕垂直显示像素数
BITSPIXEL 显示一个像素需要的bits数
PLANES planes 的数目
SIZEPALETTE 颜色数
返回值:指定的属性信息
参见
-----------------------------------
名称 BeginPaint
原型 HDC WINAPI BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint)
描述 得到窗口图形设备和画图区域,准备绘制填充指定窗口
hwnd 窗口句柄
lpPaint 指向准备接收绘图信息的PAINTSTRUCT 结构指针
PAINTSTRUCT 结构定义如下:
typedef struct tagPAINTSTRUCT {
HDC hdc; //准备绘图的设备描述表句柄
BOOL fErase; //指定背景是否擦除
RECT rcPaint; //指定一个RECT结构的绘图区域
BOOL fRestore; //保留
BOOL fIncUpdate; //保留
BYTE rgbReserved[32]; //保留
} PAINTSTRUCT;
BeginPaint会发WM_ERASEBKGND 消息给窗口擦写画图区域成背景色
应用程序应当在WM_PAINT处调用BeginPaint,画图结束后须调用EndPaint释放设备描述表
返回值:成功返回图形设备的句柄, 失败返回NULL
参见 EndPaint,GetDC
-----------------------------------
名称 EndPaint
原型 BOOL WINAPI EndPaint(HWND hWnd, CONST PAINTSTRUCT *lpPaint)
描述 画图结束后释放由BeginPaint获得的图形设备描述表
该函数必须配合BeginPaint函数使用
hWnd 窗口句柄
lpPaint 画图区域指针,调用BeginPaint所得到的指针
参见 BeginPaint
-----------------------------------
名称 SetTextColor
原型 COLORREF WINAPI SetTextColor(HDC, COLORREF)
描述 设置显示字符颜色
hdc 图形设备描述表句柄
crColor 颜色值,如果系统无此颜色值将选用最接近的颜色
返回值:图形设备的旧颜色值,如失败返回CLR_INVALID
参见 TextOut ,GetTextColor,ExtTextOut
-----------------------------------
名称 GetTextColor
原型 COLORREF WINAPI GetTextColor(HDC)
描述 得到指定的显示设备的字符输出颜色
hdc 图形设备描述表句柄
返回值:成功返回颜色值,如失败返回CLR_INVALID
参见 TextOut ,SetTextColor,ExtTextOut
-----------------------------------
名称 SetBkColor
原型 COLORREF WINAPI SetBkColor(HDC, COLORREF)
描述 设置显示背景色,包括为TextOut和ExtTextOut设置背景色
hdc 图形设备的句柄
crColor 颜色值,如果系统无此颜色值将选用最接近的颜色
返回值:图形设备的旧颜色值,如失败返回CLR_INVALID
参见 GetBKColor
-----------------------------------
名称 GetBkColor
原型 COLORREF WINAPI GetBkColor(HDC)
描述 得到当前指定的图形设备的背景色
hdc 图形设备的句柄
返回值:图形设备的旧颜色值,如失败返回CLR_INVALID
参见 SetBKColor
-----------------------------------
名称 GetSysColor
原型 DWORD WINAPI GetSysColor(int nIndex)
描述 从指定的显示元素中得到当前的颜色
nIndex 颜色的索引值,它必须是下面列表中的一种:
返回值:颜色值,如失败返回0
参见 SetSysColor
-----------------------------------
名称 SetSysColor
原型 COLORREF WINAPI SetSysColor(int nIndex, COLORREF crColor)
描述 设置系统颜色值为指定的显示元素
nIndex 颜色的索引值,它必须是下面列表中的一种:
crColor 颜色值
返回值:成功返回旧颜色值,失败返回0
参见 GetSysColor
-----------------------------------
名称 SetBkMode
原型 int WINAPI SetBkMode(HDC hdc, int iBKMode)
描述 设定指定图形设备的背景混合模式
hdc 图形设备描述表句柄
iBKMode 指定背景模式,目前只支持
OPAQUE 画图前用图形设备的背景色擦写画图区域。这是缺省模式。
返回值:返回值:成功返回旧模式,失败返回0
参见 GetBkMode
-----------------------------------
名称 GetBkMode
原型 int GetBkMode(HDC hdc);
描述 得到指定显示设备的背景混合模式
参见 SetBkMode
-----------------------------------
名称 DrawText
原型 int WINAPI DrawText(HDC hdc, LPCSTR lpString, int nCount, LPRECT lpRect,UINT uFormat)
描述 在指定区域显示文字
hdc 图形设备描述表句柄
lpString 字符串指针
nCount 要显示字符数。如其为-1,那么lpString参数一定是一个以NULL结尾的字符串,此时
DrawText会自动计算字符数目
lpRect 指向一个包含文字显示区域的RETC结构
uFormat 指定文字的显示方式,它可以是下面列表的组合:
DT_CALCRECT 只计算显示区域的宽高,存入lpRect,立即返回字符高度,不显示字符
DT_CENTER 显示字符在显示区域的正中
DT_RIGHT 显示字符在显示区域的最右边
DT_LEFT 显示字符在显示区域的最左边,这是系统缺省方式
返回值:成功返回字符高度,失败返回0
参见 TextOut
-----------------------------------
名称 TextOut
原型 BOOL WINAPI TextOut(HDC hdc, int x, int y, LPCSTR lpszString, int cbString)
描述 使用当前选定的字体、背景和字体颜色,在指定位置显示字符串
hdc 图形设备描述表句柄
x 左上角的起始横标
y 左上角的起始纵标
lpszString 指向要显示的字符串,这个字符串不必须是以NULL结尾的,因为cbString会指定长度
cbString 字串长度
返回值:成功返回非零值;失败返回0
参见 SelectObject, SetBkColor, SetTextColor
-----------------------------------
名称 ExtTextOut
原型 BOOL WINAPI ExtTextOut(HDC hdc, int x, int y, UINT fuOptions, CONST RECT *lprc, LPCSTR lpszString,
UINT cbCount, CONST INT *lpDx)
描述
参见
-----------------------------------
名称 ExtTextOutW
原型 BOOL WINAPI ExtTextOutW(HDC hdc, int x, int y, UINT fuOptions, CONST RECT *lprc, LPCWSTR lpszString,
UINT cbCount, CONST INT *lpDx)
描述 在这里实际与ExtTextOut等效
参见 ExtTextOutW
-----------------------------------
名称 DrawTextW
原型 int WINAPI DrawTextW(HDC hdc, LPCWSTR lpString, int nCount, LPRECT lpRect,UINT uFormat)
描述 在这里实际与DrawText等效
参见 DrawText
-----------------------------------
名称 SetTextAlign
原型 UINT WINAPI SetTextAlign(HDC hdc, UINT fMode)
描述 设定在指定设备描述表中的文字排列方式
同样的文字可以有不同的排列方式,比如可以是横排,从左向右,也可以从右向左;古书还多有从
右上到左下的。
hdc 设备描述表句柄
fMode 排列方式,它可以是下面列表中不冲突的组合:
TA_BASELINE 从左上向右下排
返回值:成功返回前次的排列方式;失败返回GDI_ERROR
参见 ExtTextOut, TextOut
-----------------------------------
名称 SetROP2
原型 int WINAPI SetROP2(HDC hdc, int fnDrawMode)
描述 设定当前绘图的前景色混合模式
它定义了画笔或刷子上的颜色如何与已存在的图像向叠加
hdc 设备描述表句柄
fnDrawMode 指定混合模式,它只能从下面的列表中选一种
R2_XORPEN 异或模式,即叠加效果
R2_COPYPEN 写模式,即覆盖效果,这是系统缺省值
返回值:成功返回上次的模式;失败返回0
参见
-----------------------------------
名称 GetPixel
原型 COLORREF WINAPI GetPixel(HDC hdc, int x, int y)
描述 在指定显示设备上取得点的颜色
hdc 设备描述表句柄
x 点位置像素横标
y 点位置像素纵标
不是所有的设备都支持GetPixel,一个应用程序保险起见应该调用GetDeviceCaps 来确定是否支持。
返回值:返回该像素点的颜色;如这个点在当前客户区之外,返回CLR_INVALID
参见 SetPixel,GetDeviceCaps
-----------------------------------
名称 SetPixel
原型 COLORREF WINAPI SetPixel(HDC hdc, int x, int y, COLORREF crColor)
描述 将指定位置的像素点置成指定颜色
hdc 设备描述表句柄
x 点位置像素横标
y 点位置像素纵标
crColor 颜色值
返回值:成功返回颜色值;失败返回-1
参见 GetPixel
-----------------------------------
名称 MoveToEx
原型 BOOL WINAPI (HDC hdc, int x, int y, LPPOINT lpPoint)
描述 该函数不会画线,它只是设定了“当前位置”属性
画一条直线必须要使用两个函数,这个函数指定线的开始点,第二个函数 LineTo指定终点
在默认的设备描述表中,当前位置最初设在(0,0)
hdc 设备描述表句柄
x 起点横标
y 起点纵标
lpPoint 指向POINT结构的指针,从该函数返回后,POINT结构中的x、y保存了先前的当前位置。
如果这个参数对您没有用(大部分情况如此),那就将其填为NULL
返回值:成功返回非0;失败返回0
参见 LineTo
-----------------------------------
名称 LineTo
原型 BOOL WINAPI LineTo(HDC hdc, int x, int y)
描述 这个函数从“当前位置”到指定位置之间画一条直线
如上所述,LineTo必须和MoveToEx结合使用
hdc 设备描述表句柄
x 终点横标
y 终点纵标
返回值:成功返回非0;失败返回0
参见 MoveToEx
-----------------------------------
名称 Polyline
原型 BOOL WINAPI Polyline(HDC hdc, CONST POINT *lppt, int cPoints)
描述 画一组相连的直线
hdc 设备描述表句柄
lppt 指向一个POINT结构数组,每个结构都定义了一个像素点
coints 指定像素点的数目,这个数目必须>=2
应用这个函数顺序连接这些点而画出一系列直线
返回值:成功返回非0值;失败返回0
参见 LineTo,MoveToEx
-----------------------------------
名称 Polygon
原型 BOOL WINAPI Polygon(HDC hdc, CONST POINT *lpPoints, int nCount)
描述 画由多条直线边组成的多边形,并以当前的色刷填充
hdc 设备描述表句柄
lpPoints 指向一个POINT结构数组,里面存放多边形的各个顶点坐标
nCount 指定多边形顶点数目,必须>=2
返回值:成功返回非0值;失败返回0
参见 Polyline
-----------------------------------
名称 PolyPolygon
原型 BOOL WINAPI PolyPolygon(HDC hdc, CONST POINT *lpPoints, LPINT lpPolyCounts,int nCount)
描述 画一系列封闭多边形
hdc 设备描述表句柄
lpPoints 指向一个POINT结构数组,里面存放多个多边形的各个顶点坐标
lpPolyCounts 指向每个多边形顶点坐标数目的数组,这个数目必须>=2
nCount 指定多边形顶点数目,必须>=2
返回值:成功返回非0值;失败返回0
参见 Polygon, Polyline
-----------------------------------
名称 Ellipse
原型 BOOL WINAPI Ellipse(HDC hdc, int nLeftRect, int nTopRect, int nRightRect,int nBottomRect);
描述 画椭圆
hdc 设备描述表句柄
nLeftRect 左上角横标
nLeftRect 左上角纵标
nRightRect 右下角横标
nBottomRect 右下角纵标
返回值:成功返回非0值;失败返回0
参见 Arc
-----------------------------------
名称 Arc
原型 BOOL WINAPI Arc(HDC hdc, int nLeftRect, int nTopRect, int nRightRect,int nBottomRect,
int nXStartArc, int nYStartArc,int nXEndArc, int nYEndArc)
描述 画一弧线
hdc 设备描述表句柄
nLeftRect 左上角横标
nTopRect 左上角纵标
nRightRect 右下角横标
nBottomRect 右下角纵标
nXStartArc 弧线水平起始
nYStartArc 弧线垂直起始
nXEndArc 弧线水平终点
nYEndArc 弧线垂直终点
返回值:成功返回非0值;失败返回0
参见 Ellipse
-----------------------------------
名称 Pie
原型 BOOL WINAPI Pie(HDC hdc, int nLeftRect, int nTopRect,
int nRightRect,int nBottomRect, int nXRadial1, int nYRadial1,int nXRadial2, int nYRadial2)
描述 画一圆形
hdc 设备描述表句柄
nLeftRect 左上角横标
nTopRect 左上角纵标
nRightRect 右下角横标
nBottomRect 右下角纵标
nXRadial1 左水平半径
nYRadial1 左垂直半径
nXRadial2 右水平半径
nYRadial2 右垂直半径
返回值:成功返回非0值;失败返回0
参见 Arc
-----------------------------------
名称 Rectangle
原型 BOOL WINAPI Rectangle(HDC hdc, int nLeft, int nTop, int nRight, int nBottom)
描述 画一矩形
hdc 图形设备的句柄
nLeft 左上角水平座标
nTop 左上角垂直座标
nRight 右下角水平座标
nBottom 右下角垂直座标
返回值:成功返回TRUE,失败返回FALSE
参见
-----------------------------------
名称 FillRect
原型 int WINAPI FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr)
描述 用指定的刷子填充矩形
hdc 图形设备的句柄
lprc 指向要被填充矩形的RECT结构指针
hbr 填充矩形的刷子句柄
刷子也可以用GetStockObject函数得到。
返回值:成功返回非0值;失败返回0
参见 GetStockObject,
-----------------------------------
名称 SetRect
原型 BOOL WINAPI SetRect(LPRECT lprc,int xLeft,int yTop,int xRight,int yBottom)
描述 设置一个矩形的新形状
lprc 指向被设置矩形的RECT结构指针
xLeft 新左上角横标
yTop 新左上角纵标
xRight 新右下角横标
yBottom 新右下角纵标
返回值:成功返回非0值;失败返回0
参见 SetRectEmpty
-----------------------------------
名称 SetRectEmpty
原型 BOOL WINAPI SetRectEmpty(LPRECT lprc)
描述 创建一个空的矩形
lprc 指向这个空矩形的RECT指针
返回值:成功返回非0值;失败返回0
参见 SetRect,CopyRect
-----------------------------------
名称 CopyRect
原型 BOOL WINAPI CopyRect(LPRECT lprcDst, CONST RECT *lprcSrc)
描述 拷贝一个矩形为另一个
lprcSst 指向源矩形的RECT结构指针
lprcDrc 指向目的矩形的RECT结构指针
返回值:成功返回非0值;失败返回0
参见 SetRect, SetRectEmpty
-----------------------------------
名称 XorRect
原型 void XorRect (HDC hdc, RECT *rect)
描述 将矩形异或,即反色显示
hdc 图形设备的句柄
rect 指向矩形的RECT结构指针
该函数无返回值
参见
-----------------------------------
名称 IsRectEmpty
原型 BOOL WINAPI IsRectEmpty(CONST RECT *lprc)
描述 检测是否为空矩形(无效矩形)
lprc 指向矩形的RECT结构指针
返回值:TRUE无效矩形;FALSE有效矩形
参见
-----------------------------------
名称 InflateRect
原型 BOOL WINAPI InflateRect(LPRECT lprc, int dx, int dy)
描述 增加或缩小指定矩形的高和宽
lprc 指向矩形的RECT结构指针
dx 增加或减少的宽度值
dy 增加或减少的高度值
dx、dy是有符号的,正数表增加,复数则为减小
返回值:成功返回非0值;失败返回0
参见 OffsetRect
-----------------------------------
名称 IntersectRect
原型 BOOL WINAPI IntersectRect(LPRECT dest, const RECT *src1, const RECT *src2 )
描述 用矩形2去横截矩形1
dest 指向横截面矩形
src1 指向矩形1
src2 指向矩形2
返回值:如果能够横断返回非0值,否则返回0
参见 InflateRect,OffsetRect
-----------------------------------
名称 OffsetRect
原型 BOOL WINAPI OffsetRect(LPRECT lprc, int dx, int dy)
描述 水平或垂直移动矩形
lprc 指向矩形的RECT结构指针
dx 水平移动值,正数表示右移;负数表左移
dy 垂直移动值,正数表示下移;负数表上移
返回值:成功返回非0值;失败返回0
参见 InflateRect
-----------------------------------
名称 InvalidateRect
原型 BOOL WINAPI InvalidateRect(HWND hwnd, CONST RECT *lpRect, BOOL bErase)
描述 给指定的窗口更新区域增加矩形显示区
这也使客户区域必须重绘
hwnd 窗口句柄
如为NULL为重绘整个窗口
lpRect 指向要增加的矩形的RECT结构指针
如其值为NULL,整个客户区被加入到更新区域中
bErase 背景擦除标识,目前版本只能填TRUE
返回值:返回值:成功返回非0值;失败返回0
参见 ValidateRect
-----------------------------------
名称 ValidateRect
原型 BOOL WINAPI ValidateRect(HWND hwnd, CONST RECT *lprc)
描述 给指定的窗口更新区域减小矩形显示区
hwnd 窗口句柄
如为NULL为重绘整个窗口
lpRect 指向要减小的矩形的RECT结构指针
如为NULL,整个客户区被减去
返回值:返回值:成功返回非0值;失败返回0
参见 InvalidateRect
-----------------------------------
名称 GetUpdateRect
原型 BOOL WINAPI GetUpdateRect(HWND hwnd, LPRECT lpRect, BOOL bErase)
描述 得到指定窗口的确切显示区域
hwnd 窗口句柄
lpRect 指向得到的显示区域矩形的RECT结构指针
bErase 背景擦除标识,目前版本只能填TRUE
返回值:返回值:成功返回非0值;失败返回0
参见 ValidateRect ,InValidateRect
-----------------------------------
名称 UnionRect
原型 BOOL WINAPI UnionRect(LPRECT dest, const RECT *src1, const RECT *src2 )
描述 建立两个矩形的联合,即得到包含这两个矩形的最小矩形
dest 指向合并后的矩形
src1 欲合并的矩形1
src2 欲合并的矩形2
返回值:返回值:成功返回非0值;失败返回0
参见 InflateRect,OffsetRect
-----------------------------------
名称 EqualRect
原型 BOOL WINAPI EqualRect(const RECT* rect1, const RECT* rect2 )
描述 通过比较指定的两个矩形的左上角和右下角来判断两个矩形是否相同
rect1 指向待比较矩形1
rect2 指向待比较矩形2
返回值:相等返回TRUE,不等返回FALSE
参见
-----------------------------------
名称 SubtractRect
原型 BOOL WINAPI SubtractRect(LPRECT dest, const RECT *src1, const RECT *src2 )
描述 得到从矩形src1中减去矩形src2后的矩形
dest 指向相减后得到的矩形
src1 待减矩形
src2 待减去的矩形
减去的矩形必须在源矩形中占据完整的断面,例如,如果
src1为(10,10,100,100) src2为(50,50,150,150)
减去后结果还为(10,10,100,100);但如
src1为(10,10,100,100) src2为(50,10,150,150)
减去后结果则为(10,10,50,100)
参见 UnionRect
-----------------------------------
名称 GetStockObject
原型 HGDIOBJ WINAPI GetStockObject(int nObject)
描述 得到系统设备描述表中默认存储的图形对象,比如画笔、刷子、字体等
nObject 图形对象类型
在当前MicroWindow版本中支持如下图形对象:
WHITE_BRUSH
LTGRAY_BRUSH
GRAY_BRUSH
DKGRAY_BRUSH
BLACK_BRUSH
NULL_BRUSH
HOLLOW_BRUSH
WHITE_PEN
BLACK_PEN
NULL_PEN
OEM_FIXED_FONT
ANSI_FIXED_FONT
ANSI_VAR_FONT
SYSTEM_FONT
DEVICE_DEFAULT_FONT
DEFAULT_PALETTE
SYSTEM_FIXED_FONT
DEFAULT_GUI_FONT
DC_BRUSH
DC_PEN
STOCK_LAST
参见 SelectObject,DeleteObject
-----------------------------------
名称 SelectObject
原型 HGDIOBJ WINAPI SelectObject(HDC hdc, HGDIOBJ hObject)
描述 为指定的设备描述表选定一个图形对象,新对象将替代先前相同类型的对象
图形设备描述表是一个定义了一套图形对象及其相关属性的结构,在我们需要用图形设备绘图时必需
用此函数设定相关的图形对象。
图形对象有6种,包括位图、画笔、刷子、字体、区域和调色板。除了调色板之外,这些对象都是
通过SelectObject选进设备描述表的。
在释放设备描述表后,就可以用DeleteObject来删除选进的对象了。
在使用图形对象时,应遵守以下规则:
×最后要删除自己创建的所有图形对象
×当图形对象正在一个有效的设备描述表中时,不要删除它
×不要删除现有对象
hdc 设备描述表句柄
hObject 对象句柄 下表中支持的对象必须用下列相应的函数来创建:
Bitmap 位图 CreateCompatibleBitmap
Brush 刷子 CreateSolidBrush
Font 字体 GetSystemFontObject
Pen 画笔 CreatPen
Region 区域 CreateRectRgn
参见 DeleteObject,CreateCompatibleBitmap,CreateSolidBrush ,GetSystemFontObject
CreatPen,CreateRectRgn
-----------------------------------
名称 DeleteObject
原型 BOOL WINAPI DeleteObject(HGDIOBJ hObject);
描述 删除一个图形对象并释放与其相关的系统资源
hObject 图形对象句柄
返回值:成功返回TRUE,失败返回FALSE
参见 SelectObject
-----------------------------------
名称 CreateSolidBrush
原型 HBRUSH WINAPI CreateSolidBrush(COLORREF crColor)
描述 创建一个逻辑画刷,将其选进设备描述表后用来填充图形内部区域。
得到刷子句柄后就可以用SelectObject将其选进设备描述表,使用后用DeleteObject将其删除。
crColor 刷子颜色值
返回值:成功返回画刷句柄;失败返回NULL
参见 SelectObject,DeleteObject
-----------------------------------
名称 CreatePen
原型 HPEN WINAPI CreatePen(int nPenStyle, int nWidth, COLORREF crColor)
描述 产生一个指定类型、宽度、颜色的逻辑画笔
画笔决定了画出线的色彩、宽度和线型,默认设备描述表中画笔为BLACK_PEN,即黑色单实线画笔。
如果不用系统设备描述表中当前选定的画笔,就需要创建自己的画笔。
nPenStyle 画笔类型,目前版本MicroWindow只支持两种:
PS_SOLID 实线
PS_NULL 不显示线条
nWidth 指定线条像素宽度
crColor 线条颜色,系统将其转换为设备所能表示的最相近颜色
返回值:成功返回上次的画笔句柄;如上次无画笔句柄返回NULL
参见 SelectObject,DeleteObject
-----------------------------------
名称 GetSystemFontObject
原型 HFONT GetSystemFontObject (void)
描述 取得系统指定的汉字库字体
如果不调用此函数的话,是不能显示汉字的,只能显示6*13的ASCII字符
现在系统内只有12*12的汉字库(简、繁体),并且是随着语言设置自适应的
我们并不推荐您使用CreateFont()来手工创建字体,因为这可能使系统混乱
如果您希望使用TextOut()、TextOut()来显示文本,那么要如下书写程序:
SelectObject (hdc, GetSystemFontObject ());
来给设备描述表(DC)分配字体对象,并且不需要调用DeleteObject()释放。
返回值:字体句柄
参见 SelectObject,DeleteObject
-----------------------------------
名称 CreateCompatibleBitmap
原型 HBITMAP WINAPI CreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight)
描述 给指定的设备描述表创建适宜大小的位图
此函数创建的位图颜色格式继承于hdc参数指定的设备,这个位图可以被选定到内存设备描述表中。
一般我们使用此函数用来将一幅位图创建到内存中,然后使用BitBlt绘制到显示缓冲区(
FrameBuffer)。
当创建此位图后,还需要应用SelectObjct将其关联到指定的hdc中,
当我们不需要此位图时,应该调用DeleteObject来将其删除。
hdc 设备描述表句柄
nWidth 以像素为单位指定位图宽度
nHeigth 以像素为单位指定位图高度
返回值:成功返回位图句柄,失败返回NULL
参见 CreateCompatibleDC,DeleteObject,SelectObject
-----------------------------------
名称 CreateCompatibleDC
原型 HDC WINAPI CreateCompatibleDC(HDC hdc)
描述 创建一个指定设备的内存设备描述表句柄
内存设备描述表句柄是只建立在内存中的,当其被创建时只有一个像素大小,当一个应用程序需要
使用它来完成绘图操作时,一定要给它选定一个正确大小的位图。
通常我们使用CreateCompatibleBitmap 指定位图的大小颜色。
当我们不再使用此设备描述表时,依然用DeleteDC来将其删除。
hdc 指向存在的设备描述表句柄。
当其为NULL时,指向当前应用程序的当前屏幕
返回值:成功返回内存设备描述表句柄;失败返回NULL
参见 CreateCompatibleBitmap,DeleteDC
-----------------------------------
名称 CreateRectRgn
原型 HRGN WINAPI CreateRectRgn(INT left, INT top, INT right, INT bottom)
描述 创建一个矩形区域图形对象
left 矩形左上角横标
top 矩形左上角纵标
right 矩形右下角横标
bottom 矩形右下角纵标
返回值:成功返回被创建区域的句柄;失败返回NULL
参见 DeleteObject, SelectObject
-----------------------------------
名称 CreateRectRgnIndirect
原型 HRGN WINAPI CreateRectRgnIndirect(const RECT* rect )
描述 创建一个矩形区域图形对象的另一种方法
这种方法创建的矩形区域与用CreateRectRgn完全相同,只是参数不同而已
rect 指向欲创建矩形区域的RECT结构指针
返回值:成功返回被创建区域的句柄;失败返回NULL
参见 DeleteObject, SelectObject ,CreateRectRgn
-----------------------------------
名称 SetRectRgn
原型 VOID WINAPI SetRectRgn(HRGN hrgn, INT left, INT top, INT right, INT bottom )
描述 改变一个指定区域图形对象的大小
hrgn 区域的句柄
left 改变后的矩形左上角横标
top 改变后的矩形左上角纵标
right 改变后的矩形右下角横标
bottom 改变后的矩形右下角纵标
目前版本的该函数无返回值
参见 CreateRectRgn
-----------------------------------
名称 CreateRoundRectRgn
原型 HRGN WINAPI CreateRoundRectRgn(INT left, INT top, INT right, INT bottom,
INT ellipse_width, INT ellipse_height )
描述 创建一个圆角矩形区域图形对象
left 矩形左上角横标
top 矩形左上角纵标
right 矩形右下角横标
bottom 矩形右下角纵标
nWidthEllipse 圆角的椭圆宽度
nHeightEllipse 圆角的椭圆高度
返回值:成功返回被创建区域的句柄;失败返回NULL
参见 DeleteObject, SelectObject,CreateRectRgn, CreateRectRgnIndirect
-----------------------------------
名称 CreateEllipticRgn
原型 HRGN WINAPI CreateEllipticRgn(INT left, INT top, INT right, INT bottom )
描述 创建一个椭圆区域图形对象
left 左上角横标
top 左上角纵标
right 右上角横标
bottom 右上角纵标
返回值:成功返回被创建区域的句柄;失败返回NULL
参见 DeleteObject, SelectObject
-----------------------------------
名称 CreateEllipticRgnIndirect
原型 HRGN WINAPI CreateEllipticRgnIndirect(const RECT *rect )
描述 创建一个椭圆区域图形对象的另一种方法
这种方法创建的椭圆区域与用CreateElliptRgn完全相同,只是参数不同而已
rect 指向欲创建椭圆区域外框的RECT结构指针
返回值:成功返回被创建区域的句柄;失败返回NULL
参见 CreateEllipticRgn
-----------------------------------
名称 GetRegionData
原型 DWORD WINAPI GetRegionData(HRGN hrgn, DWORD count, LPRGNDATA rgndata)
描述 得到指定区域的数据
hrgn 区域句柄
count 存放得到数据的缓冲区的长度
rgndata 指向得到数据的缓冲区指针
返回值:成功返回 1,失败:如果count不够太返回所需长度,否则返回 0,
参见
-----------------------------------
名称 PtInRegion
原型 BOOL WINAPI PtInRegion(HRGN hrgn, INT x, INT y )
描述 判断一个点是否在指定区域内
hrgn 区域句柄
x 该点横标
y 该点纵标
返回值:在此区域返回TRUE,否则返回FALSE
参见 RectInRegion
-----------------------------------
名称 RectInRegion
原型 BOOL WINAPI RectInRegion(HRGN hrgn, const RECT *rect )
描述 判断一个矩形是否在指定区域内
hrgn 区域句柄
rect 指向矩形的指针
返回值:在此区域返回TRUE,否则返回FALSE
参见 PtInRegion
-----------------------------------
名称 EqualRgn
原型 BOOL WINAPI EqualRgn(HRGN hrgn1, HRGN hrgn2 )
描述 判断两个区域的大小和形状从而断定其是否相同
hrgn1 区域1句柄
hrgn2 区域2句柄
返回值:相等返回TRUE,否则返回FALSE
参见 CreateRectRgn, CreateRectRgnIndirect
-----------------------------------
名称 CombineRgn
原型 INT WINAPI CombineRgn(HRGN hDest, HRGN hSrc1, HRGN hSrc2, INT mode)
描述 组合两个区域图形对象为一个
hDest 目的区域句柄
hSrc1 区域1
hSrc2 区域2
mode 组合模式,它必需是下面列表中的一种:
RGN_AND 两个区域“与”,取交集部分
RGN_OR 两个区域“或”,取并集
RGN_XOR 两个区域“异或”,为重合部分之外的区域
RGN_COPY 从区域1直接拷贝
RGN_DIFF 组合两个区域不同的部分
返回值:随着组合结果的不同,其返回下列值之一:
NULLREGION 区域为空
SIMPLEREGION 区域为单一矩形
COMPLEXREGION 区域为多个矩形组合
ERROR 区域未被创建
参见 CreateRectRgn, CreateRectRgnIndirect
-----------------------------------
名称 OffsetRgn
原型 INT WINAPI OffsetRgn(HRGN hrgn, INT x, INT y )
描述 向指定方向移动区域图形对象
hrgn 区域指针
x 横向移动单位,正数表左移,负数表右移
y 纵向移动单位,正数表上移,负数表下移
返回值: 其返回下列值之一:
NULLREGION 区域为空
SIMPLEREGION 区域为单一矩形
COMPLEXREGION 区域为多个矩形组合
ERROR 区域未被创建
参见
-----------------------------------
名称 GetRgnBox
原型 INT WINAPI GetRgnBox(HRGN hrgn, LPRECT rect )
描述 得到区域的边界矩形大小
hrgn 区域句柄
rect 指向存放矩形大小数据的指针
返回值:区域属性, 其返回下列值之一:
NULLREGION 区域为空
SIMPLEREGION 区域为单一矩形
COMPLEXREGION 区域为多个矩形组合
ERROR 区域未被创建
参见
-----------------------------------
名称 InvalidateRgn
原型 BOOL WINAPI InvalidateRgn(HWND hwnd, HRGN hrgn, BOOL bErase)
描述 给指定的窗口更新区域增加区域的覆盖范围
hwnd 窗口句柄
hrgn 区域句柄
bErase 背景擦除标识,目前版本只能填TRUE
返回值:永远返回非0
参见 InvalidateRect, ValidateRect,ValidateRgn
-----------------------------------
名称 GetUpdateRgn
原型 int WINAPI GetUpdateRgn(HWND hwnd, HRGN hrgn, BOOL bErase)
描述 得到指定窗口的全部显示区域
hwnd 窗口句柄
hrgn 指向得到的显示区域的结构指针
bErase 目前版本没用此叁数
返回值:区域属性, 其返回下列值之一:
NULLREGION 区域为空
SIMPLEREGION 区域为单一矩形
COMPLEXREGION 区域为多个矩形组合
ERROR 区域未被创建
参见
-----------------------------------
名称 ValidateRgn
原型 BOOL WINAPI ValidateRgn(HWND hwnd, HRGN hrgn)
描述 给指定的窗口更新区域减去区域的覆盖范围
hwnd 窗口句柄
hrgn 区域句柄
返回值:成功返回非0值;失败返回0
参见
-----------------------------------
名称 DrawDIB
原型 BOOL WINAPI DrawDIB(HDC hdc,int x,int y,PMWIMAGEHDR pimage)
描述 在指定位置画图,目前版本可支持的画图文件类型是BMP,颜色有 2 , 4, 16 色
hdc 指向存在的设备描述表句柄。
x 画图横标
y 画图纵标
pimage 指向图形数据的指针
如果图形数据在BMP文件中,且Makefile中有此编译文件,可按如下引用:
image_BMP主文件名
例如: BMP文件 arrow.bmp
extern MWIMAGEHDR image_arrow;
DrawDIB( hdc, 0,0, &image_arrow);
返回值:成功返回TRUE; 失败返回FALSE
参见
-----------------------------------
名称 BitBlt
原型 BOOL WINAPI BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,
int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop)
描述 BitBlt(读作bit blit)函数实现位块传送功能。
它将源设备描述表中将一个矩形区的像素传到目标设备描述表中大小相同的矩形。
通过此函数,被传送的图块直接显示到目标设备中。
hdcDest 目标设备描述表句柄
nXDext 目标矩形左上角横标
nYDest 目标矩形左上角纵标
nWidth 目标矩形宽度
nHeight 目标矩形高度
hdcSrc 源设备描述表句柄
nXSrc 源矩形左上角横标
nYSrc 源矩形左上角纵标
dwRop 光删操作码
当前的MicroWindow版本只支持 SRCCOPY模式,即直接拷贝
返回值:成功返回非零值;失败返回0
参见
-----------------------------------
名称 GdJPEG
原型 #include device.h
GdJPEG(PSD psd, MWCOORD destx, MWCOORD desty, MWCOORD width,
MWCOORD height,MWBOOL fast_grayscale, char* filename)
描述 这是MicroWindow底层支持的JPEG支持引擎
用来将JPEG图片文件读出后按像素对应写入到指定设备描述表
因为是底层函数,所以参数众多,并要包含device.h头文件
psd 设备描述表指向的PSD结构(MicroWindow的屏幕显示设备)
PSD结构是包含在hdc中的一项,在device.h中定义:
typedef struct _mwscreendevice *PSD;
typedef struct _mwscreendevice {
MWCOORD xres; /* X screen res (real) */
MWCOORD yres; /* Y screen res (real) */
MWCOORD xvirtres; /* X drawing res (will be flipped in portrait mode) */
MWCOORD yvirtres; /* Y drawing res (will be flipped in portrait mode) */
int planes; /* # planes*/
int bpp; /* # bpp*/
int linelen; /* line length in bytes for bpp 1,2,4,8*/
/* line length in pixels for bpp 16, 24, 32*/
int size; /* size of memory allocated*/
long ncolors; /* # screen colors*/
int pixtype; /* format of pixel value*/
int flags; /* device flags*/
void * addr; /* address of memory allocated (memdc or fb)*/
...
(详见device.h中的描述)
}SCREENDEVICE;
destx 目标的左上角横标
desty 目标的左上角纵标
width JPEG图像的像素宽度
heigth JPGE图像的像素高度
fast_grayscale TRUE表示将JPEG图用灰阶方式转换(快速,推荐)
FALSE表示将JPEG图用彩色对照灰阶方式转换
filename JPEG图像的文件名
该函数无返回值。
参见 GdBMP
-----------------------------------
名称 GdBMP
原型 int GdBMP (PSD psd, MWCOORD destx, MWCOORD desty, MWCOORD width, MWCOORD height,
char* filename)
描述 这是MicroWindow底层支持的bmp文件的引擎
psd 设备描述表指向的PSD结构(MicroWindow的屏幕显示设备)
destx 目标的左上角横标
desty 目标的左上角纵标
width bmp图像的像素宽度
heigth bmp图像的像素高度
filename bmp图像的文件名
返回值:成功返回0,失败返回-1
参见 GdJPEG
-----------------------------------
名称 GetSystemPaletteEntries
原型 UINT WINAPI GetSystemPaletteEntries(HDC hdc,UINT iStartIndex,UINT nEntries, LPPALETTEENTRY lppe)
描述 从指定设备描述表中得到系统调色板数值
hdc : 图形设备句柄
iStartIndex : 调色板起始序列号
nEntries : 得到系统调色板数值的总个数
lppe : 存放数值内存指针
返回值 : 成功,得到系统调色板数值的个数; 失败返回0
参见
-----------------------------------
**********************************
* 控件函数 *
**********************************
-----------------------------------
名称 CreateMenu
原型 HMENU WINAPI CreateMenu(void)
描述 创建菜单
系统创建菜单的内部的数据结构
返回值 : 成功,菜单句柄,失败,NULL
参见 DestroyMenu
-----------------------------------
名称 LoadMenuEx
原型 HMENU WINAPI LoadMenuEx(NAMEINFO *minfo, LPCSTR lpMenuName,int count)
描述 系统装载菜单定义的数据,这是MicroWindow的专用函数
minfo 菜单数据指针
如果在资源文件中定义菜单,该参数必需用固定的名称 menu_info,例如:
......
extern NAMEINFO menu_info[];
......
LoadMenuEx(menu_info,"TEST-MENU",MAX_MENUNUMBER);
lpMenuName 指向菜单名称的字符串指针
count menu_info 资源文件中定义的菜单总个数
实际上,资源文件经编译后,菜单部分数据被放置在menu_info数组中,LoadMenuEx函数即要从
menu_info数组中根据lpMenuName定位,然后开始装载。
返回值:成功返回菜单句柄;失败返回NULL
参见 CreateMenu
-----------------------------------
名称 DestroyMenu
原型 BOOL WINAPI DestroyMenu(HMENU hMenu)
描述 销毁指定的菜单
该函数用来销毁不属于窗口的菜单,一个分配给窗口的菜单会在程序关闭时自动删除
hMenu 菜单句柄
返回值:成功返回非0值;失败返回0
参见 CreateMenu, DeleteMenu, RemoveMenu
-----------------------------------
名称 InsertMenu
原型 BOOL WINAPI InsertMenu(HMENU hMenu, UINT uiPosition, UINT uiFlags, UINT uiIDNewItem,
LPCSTR lpNewItem)
描述 在菜单中插入一个新的菜单项
这个函数已经被InsertMenuItem 替代,但如不想使用InsertMenuItem 的新特性,InsertMenu
仍然可以使用。
hMenu 菜单句柄
uiPosition 菜单插入位置, 或是菜单ID号
uiFlags 插入方式,它必需是下述之一:
MF_BYPOSITION 按照位置(uiPosition)插入菜单项
MF_BYCOMMAND 按照ID插入菜单项
uiIDNewItem 此菜单项ID号
lpNewItem 指向此菜单项内容的字符串指针,如为NULL则为一空白菜单
返回值:成功返回TRUE;失败返回FALSE
参见 AppendMenu, DeleteMenu,InsertMenuItem
-----------------------------------
名称 AppendMenu
原型 BOOL WINAPI AppendMenu(HMENU hMenu, UINT uiFlags, UINT uiIDNewItem, LPCSTR lpNewItem)
描述 在菜单末尾添加一个新的菜单项
这个函数已经被InsertMenuItem 替代,但如不想使用InsertMenuItem 的新特性,AppendMenu
仍然可以使用。
hMenu 菜单句柄
uiFlags 该参数目前无用
uiIDNewItem 添加菜单项的ID号
lpNewItem 指向此菜单项内容的字符串指针,如为NULL则为一空白菜单
返回值:成功返回TRUE;失败返回FALSE
参见 DeleteMenu,InsertMenuItem,InsertMenu
-----------------------------------
名称 InsertMenuItem
原型 BOOL WINAPI InsertMenuItem(HMENU hMenu,UINT uItem,BOOL fByPosition,LPMENUITEMINFO lpmii)
描述 在菜单指定位置插入新的菜单项
参见
-----------------------------------
名称 ModifyMenu
原型 BOOL WINAPI ModifyMenu(HMENU hMenu, UINT uiPosition, UINT uiFlags,UINT uiIDNewItem, LPCSTR lpNewItem)
描述 修改一个已经存在的菜单项
hMenu 菜单句柄
uiPosition 菜单插入位置, 或是菜单ID号
uiFlags 插入方式,它必需是下述之一:
MF_BYPOSITION 按照位置(uiPosition)插入菜单项
MF_BYCOMMAND 按照ID插入菜单项
uiIDNewItem 此菜单项ID号
lpNewItem 指向此菜单项内容的字符串指针,如为NULL则为一空白菜单
返回值:成功返回TRUE;失败返回FALSE
参见 AppendMenu,InsertMenu
-----------------------------------
名称 RemoveMenu
原型 BOOL WINAPI RemoveMenu(HMENU hMenu, UINT item, UINT flags)
描述 删除本身没有子菜单的菜单项
hMenu 菜单句柄
item 菜单排列位置或是菜单ID号
flags 操作标识,可以为下列之一:
MF_BYPOSITION 删除位置等于item菜单项
MF_BYCOMMAND 删除ID等于item的菜单项
返回值:成功返回TRUE;失败返回FALSE
参见 DeleteMenu,GetSubMenu
-----------------------------------
名称 DeleteMenu
原型 BOOL WINAPI DeleteMenu(HMENU hMenu, UINT item, UINT flags)
描述 删除菜单项,如此菜单项带有子菜单,连同一起删除
hMenu 菜单句柄
item 菜单排列位置或是菜单ID号
flags 操作标识,可以为下列之一:
MF_BYPOSITION 删除位置等于item菜单项
MF_BYCOMMAND 删除ID等于item的菜单项
返回值:成功返回TRUE;失败返回FALSE
参见 GetSubMenu,RemoveMenu
-----------------------------------
名称 GetSubMenu
原型 HMENU WINAPI GetSubMenu(HMENU hMenu, int pos)
描述 得到指定菜单项的子菜单句柄
hMenu 菜单句柄
pos 菜单项位置
返回值:成功返回子菜单句柄;如该菜单项无子菜单,返回NULL
参见
-----------------------------------
名称 EnableMenuItem
原型 BOOL WINAPI EnableMenuItem(HMENU hMenu, UINT item, UINT flags)
描述 使菜单项激活、禁止或变灰
hMenu 菜单句柄
item 菜单位置或ID
flags 功能标识,是以下两类的组合:
一:
MF_BYPOSITION 位置等于item菜单项
MF_BYCOMMAND ID等于item的菜单项
二:
MF_DISABLED 菜单项禁止使用
MF_ENABLED 激活菜单项
MF_GRAYED 菜单项禁止使用,并且变成灰色
返回值:成功返回TRUE;失败返回FALSE
参见 CheckMenuItem
-----------------------------------
名称 CheckMenuItem
原型 BOOL WINAPI CheckMenuItem(HMENU hMenu, UINT uiIDCheckItem, UINT uiCheck)
描述 设置菜单项的检查标记属性,即前面是否有“对勾”
hMenu 菜单句柄
uiIDCheckItem 菜单位置或ID
uiCheck 功能标识,是以下两类的组合:
一:
MF_BYPOSITION 位置等于uiIDCheckItem的菜单项
MF_BYCOMMAND ID等于uiIDCheckItem的菜单项
二:
MF_CHECKED 前面有“对勾”
MF_UNCHECKED 前面没有“对勾”
返回值:成功返回TRUE;失败返回FALSE
参见 EnableMenuItem
-----------------------------------
名称 TrackPopupMenu
原型 BOOL WINAPI TrackPopupMenu(HMENU hMenu, UINT uiFlags, int x, int y,
int nSystemMenu, HWND hWnd, const RECT *lpReserved)
描述 在指定位置弹出菜单
hMenu 菜单句柄
uiFlags 操作标识,目前只支持TP_TRACKPOPUP,即弹出子菜单
x 弹出位置左上角横标
y 弹出位置左上角纵标
nSystemMenu 该参数目前无效
hWnd 菜单所属窗口句柄
lpReserved 该参数目前无效
返回值:成功返回TRUE;失败返回FALSE
参见 GetSubMenu
-----------------------------------
名称 MessageBox
原型 MessageBox(HWND hParentWnd, LPCSTR pszText, LPCSTR pszCaption, UINT dwStyle)
描述 弹出一个消息框
这个消息框包含程序定义的消息、标题图标和按钮
hParentWnd 消息窗口的父窗口
pszText 窗口显示的字符
pszCaption 窗口的标题名
dwStyle 窗口的属性
MB_OK 消息窗口有<确定>键
MB_OKCANCEL 消息窗口有<确定>,<取消>键
MB_YESNO 消息窗口有<是>,<否>键
MB_RETRYCANCEL 消息窗口有<重试> <取消> 键
MB_ABORTRETRYIGNORE 消息窗口有 <忽略>键
MB_YESNOCANCEL 消息窗口有<是> <否> <取消> 键
MB_ICONSTOP 消息窗口有 “叉子”图标
MB_ICONINFORMATION 消息窗口有 "i" 图标
MB_ICONEXCLAMATION 消息窗口有 "!" 图标
MB_ICONQUESTION 消息窗口有 "?" 图标
返回值 : 点击的键对应代号
参见
-----------------------------------
名称 DialogBoxEx
原型 int WINAPI DialogBoxEx(HINSTANCE hInst, LPCSTR lpDialog, HWND hWnd,
DLGPROC lpDlgFunc,NAMEINFO *dinfo,int count)
描述 配合资源文件,生成弹出一个对话框
这是MicroWindow的专用函数,目前版本没有DialogBox函数
hInst 实例句柄,这里固定填NULL
lpDialog 对话框名称,和资源文件对话框定义相对应(忽略大小写)
hWnd 对话框父窗口句柄
lpDlgFunc 对话框消息处理函数地址
实际上,该对话框的句柄被显式地传递到lpDlgFunc中,用此句柄来关闭对话框
EndDialog(hwnd)
dinfo 对话框消息,配合资源文件使用,固定为dialog_info,例如
......
extern NAMEINFO dialog_info[];
......
DialogBoxEx( NULL, "DEMO", hwnd, demo_proc, dialog_info, DLGNUM );
实际上,资源文件编译后,对话框部分数据保存在dialog_info数组中,DialogBoxEx
函数即从dialog_info数组中根据lpDialog定位,读出数据。
count 资源文件中,定义的对话框的总数目
返回值:成功返回0;失败返回-1
参见 EndDialog
-----------------------------------
名称 CheckRadioButton
原型 void WINAPI CheckRadioButton(HWND hDlg, int nIDFirst,int nIDLast,int nIDCheckButton)
描述 设置一组单选按键控件
hDlg 对话框句柄
nIDFirst 设置一组单选按键的起始ID 号
nIDLast 设置一组单选按键的结束ID 号
nIDCheckButton 要选中的单选项的ID 号
系统设置 nIDCheckButton ID 号的单选项为选中
其它ID 号在nIDFirst和nIDLast范围内的单选项为没选中
该函数无返回值
参见 CheckDlgButton
-----------------------------------
名称 SetDlgItemInt
原型 void WINAPI SetDlgItemInt(HWND hDlg,int nID, UINT wParam,BOOL bSigned)
描述 将对话框中指定控件的整数转为显示字符
hDlg 对话窗句柄
nID 控件的 ID 号
wParam 整数,转换成显示字符
bSigned 这里固定填TRUE
该函数无返回值
参见 GetDlgItemInt
-----------------------------------
名称 GetDlgItemInt
原型 UINT WINAPI GetDlgItemInt(HWND hDlg, int nID, BOOL *lpTranslated, BOOL bSigned)
描述 将对话框中指定控件的文本转为整数
hDlg 对话窗句柄
nID 控件的 ID 号
lpTranslated 指向字符的整数是否溢出,如溢出为TRUE
bSigned TRUE为有符号数
返回值 : 整数值
参见 SetDlgItemInt
-----------------------------------
名称 SetDlgItemText
原型 void WINAPI SetDlgItemText(HWND hDlg, int nID, LPSTR lpStr)
描述 设置对话框中控件的标题或文字
hDlg 对话框句柄
nID 控件的 ID 号
lpStr 存放字符串地址
该函数无返回值
参见 GetDlgItemText
-----------------------------------
名称 GetDlgItemText
原型 int WINAPI GetDlgItemText(HWND hDlg, int nID, LPSTR lpStr, int nMax)
描述 得到对话框中控件的标题或文字
hDlg 对话框句柄
nID 控件的 ID 号
lpStr 存放字符串地址
nMax 地址内存长度
返回值:成功返回字符串长度;失败返回NULL
参见 SetDlgItemText
-----------------------------------
名称 CheckDlgButton
原型 void WINAPI CheckDlgButton(HWND hDlg, int nIDButton, UINT wCheck)
描述 设置按键的状态
hDlg 对话框句柄
nIDButton 按键的 ID 号
wCheck 设置的状态,有两种,TRUE 和 FALSE
参见
-----------------------------------
名称 EndDialog
原型 BOOL WINAPI EndDialog(HWND hDlg,int Result)
描述 关闭对话框
hDlg 对话框句柄
Result 这里固定填NULL
返回值:成功返回TRUE;失败返回FALSE
参见 DialogBoxEx
-----------------------------------
×××××××××××××××××××
× ×
× 其他的系统函数 ×
× ×
×××××××××××××××××××
---------------------------------
名称:MwUserInit
原型:int MwUserInit (int ac, char **av)
描述:给用户提供名称接口。可以传递命令行参数。
函数调用在microwindow GUI建立之前, WinMain()函数之前。
int ac 参数的数目
char **av 每个参数的指针
例:int MwUserInit (int argc, char **argv)
{
SystemArgc = argc;
SystemArgv = argv;
InitCategory ();
GetConfig(&config);
if (config.SortBy>=2) config.SortBy = SORT_BY_ALP;
return 0;
}
返回值:
>=0 成功
0< 失败
---------------------------------
名称:MwUserClose
原型:void MwUserClose (void)
描述:名称接口,可以传递命令行参数。
函数调用在microwindow结束之前
参见:MwUserInit
---------------------------------
名称:IsUSBOnLine
原型:BOOL IsUSBOnLine (void)
描述:得到usb口是否连线的状态。
返回值:TRUE: 连线
FALSE: 未连线
---------------------------------
名称:IsSystemWriteProtect
原型:BOOL IsSystemWriteProtect (void)
描述:得到flash的写保护状态。
返回值:TRUE: 写保护
FALSE: 没有写保护
---------------------------------
名称:GetSystemPowerStatus
原型:BOOL GetSystemPowerStatus (SYSTEM_POWER_STATUS *lpPw)
描述:得到电池的状态,数据结构如下:
typedef struct {
BYTE ACLineStatus; // 0:未连线, 1:连线, 255:未知
BYTE BatteryFlag; // 1:高 2:低 4:临界 8:充电 255:未知
BYTE BatteryLifePercent; // 0 ~ 100, or 255:未知
BYTE Reserved1; // 0
int hi; // 电压高端数值
int lo; // 电压低端数值
} SYSTEM_POWER_STATUS;
返回值:TRUE: 成功
FALSE: 失败
注意:如果usb插槽在线,ACLineStatus=1,BatteryFlag=8
---------------------------------
名称:showabout
原型:int showabout( char *file )
描述:显示关于信息。
file 调用关于模块的程序在系统程序注册数据库中注册的函数名.
范例:showabout("abc"); 在这里abc为程序名称
返回值:0 有关于信息
1 无关于信息
----------------------------------
名称:showhelp
原型:int WINAPI showhelp( char *name, char *buf )
描述:弹出一个当前界面的帮助文档,让用户了解此界面的功能。
name:文档目录和帮助文档名缓存区。
buf: 程序界面名缓存区。
比如:showhelp("abc","main");
在这里abc是程序名称,main 表示要从帮助文档的 main 标记处开始显示
注意: 帮助文档名要和打包程序名相同。如npd/npd.hlp,guess/guess.hlp.
在同一程序中不同界面显示帮助,应如下调用:
如主界面 showhelp( "npd", "main" );
打开界面 showhelp( "npd", "open" );
帮助文档应按如下格式书写:
[main]
首要帮助文本
[open]
打开界面帮助文本
....
....
---------------------------------
×××××××××××××××××××
× ×
× ×
× 数据库函数 ×
× ×
× ×
×××××××××××××××××××
---------------------------------
说明:这套数据库系统是GGV专门为开发者定做的数据库系统,应用这套系统可以轻松的建立、保存、编辑数据库。如果使用WalkPad Designer的话,系统会默认关联该数据库函数库的动态链接库。我们只要包含头文件
#include "pub/dbodm/newdbapi.h" 就可以使用这些函数了。
---------------------------------
名称:DB_create
原型:int DB_create( char *filename,DB_KEY *key,DB_RECORD *rec )
描述:创建一个数据库文件. 创建后新创建的文件处于打开的状态.
由于创建后生成三个文件,既控制文件,数据文件和一个索引表文件,
所以调用此函数之前需要选择以谁为关键字来建立索引表。
filename : 要创建的数据库文件名
key : 根据不同的关键字组合选择索引表
rec : 记录的结构类型 例:
typedef struct {
char name[20];
char age[4];
}REC_RECORD;
返回值:>=0 正常
-1 失败
参见:DB_open
----------------------------------
名称:DB_open
原型:int DB_open( char *filename, int mode )
描述:打开现有数据库文件。如果不能打开,用DB_create建立。
filename : 要打开的数据库文件名。
mode :打开方式(O-RDONLY :只读方式,O-RDWR:读写方式)
返回值:正常 : >=0
失败 : -1 输入的文件名为空或长度为零或系统出错
-2 数据库文件不存在
-3 在控制文件中根据文件名读控制文件时出错
-4 在控制文件中结构体转换时出错
-5 创建数据文件时出错
-6 创建索引表文件时出错
-7 索引表文件出错
-99 转成文件句柄时出错(多于30个数据库句柄)
------------------------------------
名称:DB_selidx
原型:int DB_selidx( int fd,DB_KEY *key)
描述:选择一个关建字索引表. 索引表选定后对文件的操作都是以这个索引表的关键字为准的
选择新的索引表后,当前记录不一定是数据库文件的第一条记录。
fd :文件标识
key :根据不同的关键字组合选择索引表
返回值:>=0 成功
-1 失败
参见:DB_delidx,DB_addidx
---------------------------------
名称:DB_addidx
原型:int DB_addidx( int fd,DB_KEY *key)
描述:添加一个关建字索引表。数据库文件中的索引表关键字最多可由3个关键字组合创建组成。
组合关键字的类型必须相同,char 与 unsigned char在本dbodm认为相同,但TYPEBIN不能作为关键字。
数据库文件中最多可有10个索引表同时存在。
fd : 文件标识
*key : 选择不同的关键字组合建立索引表
返回值:>=0 正常
-1 失败
参见:DB_delidx,DB_selidx
-----------------------------------
名称:DB_delidx
原型:int DB_delidx( int fd,DB_KEY *key)
描述:删除一个关建字索引表。
fd : 文件标识
*key : 根据不同的关键字组合选择要删除的索引表
返回值:>=0 正常
-1 失败
参见:DB_addidx,DB_selidx
-----------------------------------
名称:DB_remove
原型:int DB_remove( char *filename )
描述:删除数据库文件。
filename : 要删除的数据库文件名
返回值:>=0 正常
-1 失败
参见:DB_create,DB_open
-----------------------------------
名称:DB_org
原型:int DB_org(char *filename)
描述:重整数据库文件的存储空间,重整后offset将改变,
并且会在AP存放数据库文件的目录下产生一个名为 *.reorg ( "*"代表数据库的名字 )
的文件.AP可通过判断此文件是否存在来判断数据库是否被重整过.
filename : 要重整的数据库文件名。
返回值:>=0 正常
-1 失败
参见:DB_create,DB_open,DB_close
-----------------------------------
名称:DB_close
原型:int DBclose( int fd )
描述:关闭数据库文件。
fd : 文件标识
fd可以从DB_create,DB_open处获得。
例:static int DBINDEX_fd;
DBINDEX_fd = DB_create(FileName, &db_key, &db_record);
...
DB_close(DBINDEX_fd);
...
返回值:0 正常
<0 失败
参见:DB_create,DB_open
-----------------------------------
名称:DBget_cur_off
原型:off_t DBget_cur_off(int fd)
描述:取当前记录的偏移值,文件为空时,取的是存放的起始地址。
fd : 文件标识
返回值:>=0 正常
-1 失败
参见:DB_close
----------------------------------------
名称:DB_readn_before_seek
原型:off_t DBreadn_before_seek(int fd,unsigned char * key,int *keylen,
unsigned char *record,int *reclen,int)
描述:读出当前记录后,文件指针定位到指定一条记录.返回值为record指定的记录的偏移值
fd : 文件标识
key : 指向记录中关键字值的缓冲区指针
keylen : 关键字长度
record : 指向记录中数据值的缓冲区指针
reclen : 指向记录中数据长度的缓冲区指针
mode : 定位到指定一条记录
CSMLEST :定位到最小一条记录
CLAGEST :定位到最大一条记录
CNXTLAG :定位到当前记录的下一条记录
CPRVSML :定位到当前记录的前一条记录
例:int rec_len, key_len;
...
DBINDEX_fd = DB_create(FileName, &db_key, &db_record);
DB_read_before_seek(DBINDEX_fd,(DBREC) & db_key, &key_len,
(DBREC) & rec, &rec_len, CNXTLAG);
...
返回值:ormal : RTN_OFFSET
fail : < 0
其中 return thptr = 读完当前记录后移动光标至指定位置后
ok : 0
end of filr or begin of file : -2
error : -1
参见:DB_read_after_seek,DB_read_cur
--------------------------------------
名称:DB_read_cur
原型:off_t DB_read_cur(int fd,unsigned char *record )
描述:在索引表选定的情况下,在索引表中读出当前记录.返回值为当前记录的偏移值
fd : 文件标识
record : 指向记录中数据值的结构体指针
返回值:正常: RTN_OFFSET 当前数据的偏移值
错误: <0
参见:DB_read_after_seek
---------------------------------------
名称:DB_read
原型:off_t DB_read(int fd,unsigned char *record,int mode )
描述:读出指定key值的记录,并将它作为当前记录.返回值为当前记录的偏移值
这里的key是根据索引表从record中取出的,所以,这里的key只是出口,
输入key要根据索引表从record输入
fd : 文件标识
record : 指向记录中数据值的结构体指针
mode : CKEY 数据库文件中有与输入的key值相同的key
CLEKEY 若数据库文件中没有与输入的key值相同的key,则将文件指针定位到下
一key中的第一条记录.若下一key不存在,则返回一负数
CSEKEY 若数据库文件中没有与输入的key值相同的key,则将文件指针定位到上
一条记录,若上一条记录不存在,则返回一负数
返回值:正常: RTN_OFFSET 当前数据的偏移地址
错误: <0
-----------------------------------------
名称:DBread_offset
原型:off_t DBread_offset(int fd,unsigned char *record,off_t offset )
描述:取出由正确offset指定的记录的数据,offset必须正确。
fd : 文件标识
record : 指向记录中数据值的缓冲区指针
offset : 偏移地址
返回值:正常: RTN_OFFSET 当前数据的偏移地址
错误: <0
------------------------------------------
名称:DB_seek
原型:int DB_seek(int fd,int n,int mode)
描述:将当前记录定位到某条记录(offset=DB_END,定位到最后一条;
offset=DB_BEGIN,定位到开始一条;否则根 据key,offset值定位到指定的一条)。
fd : 文件标识
mode : 定位方式
mode=DB_END -1; mode=DB_BEGIN -2; mode=DB_CUR =0
n: >0向后n条 =0当前 <0向前n条
返回值:0 正常
0< 失败
--------------------------------------------
名称:DB_insert
原型:off_t DBinsert(int fd, unsigned char *record )
描述:向数据库文件中写入一条记录,并把这条记录设为当前记录
若写入的key值与原有的key值相同时,则将新输入的这条记录排在原有同key值记录的后面。
fd : 文件标识
record : 指向记录中数据值的结构体指针
例:DBINDEX_fd = DB_create(FileName, &db_key, &db_record);
...
DB_insert(DBINDEX_fd, (DBREC) rec_file, sizeof(REC_RECORD),
(DBREC) & db_key, sizeof(DB_KEY));
...
返回值:正常: RTN_OFFSET
失败: <0
----------------------------------------
名称: DB_modify
原型:off_t DB_modify( int fd,unsigned char *record)
描述:修改当前记录的值.修改后的记录的偏移地址与修改前记录的偏移地址不同,id相同。
( id 由函数 DB_getid 取得)
fd : 文件标识
record : 指向记录中数据值的结构体指针
返回值:正常: RTN_OFFSET
失败: <0
参见:DB_getid
-----------------------------------------
名称:DB_modify_cur
原型:off_t DB_modify_cur( int fd,unsigned char *record)
描述:在索引表选定的情况下,在索引表中修改当前记录的内容,
修改后offset不变,关键字不变,rawid不变( rawid 由函数 DBget_rawid 取得)
fd : 文件标识
record : 指向记录中数据值的结构体指针
返回值:normal : RTN_OFFSET
fail : <0
----------------------------------------
名称:DB_modify_offset
原型:off_t DBmodify_offset( int fd,unsigned char *record,off_t offset)
描述:在索引表选定的情况下,在索引表中根据offset找到对应的那条记录,
用输入的内容替换原有的内容,修改后offset不变,
关键字不变,rawid不变( rawid 由函数 DBget_rawid 取得)
fd : 文件标识
record : 指向记录中数据值的结构体指针
返回值:normal : RTN_OFFSET
fail : <0
-----------------------------------------
名称:DB_change_key_cur
原型:off_t DB_change_key_cur(int fd,unsigned char * record)
描述:在索引表选定的情况下,在索引表中修改当前记录的内容,
修改后offset改变,rawid不变( rawid 由函数 DBget_rawid 取得),文件指针指向修改后的记录
fd : 文件标识
record : 指向记录中数据值的结构体指针
返回值:normal : RTN_OFFSET
fail : <0
-------------------------------------------
名称:DB_change_key_offset
原型:off_t DB_change_key_offset(int fd,unsigned char * record,off_t offset1)
描述:在索引表选定的情况下,在索引表中输入正确的offset,根据offset找到对应的那条记录,
用输入的内容替换原有的内容,修改后offset改变,rawid不变( rawid 由函数 DBget_rawid 取得),
文件指针指向修改后的记录。
fd : 文件标识
record : 指向记录中数据值的结构体指针
offset1 : 偏移地址
返回值:normal : RTN_OFFSET
fail : <0
-------------------------------------------
名称:DB_delete_offset
原型:int DBdelete_offset( int fd,off_t offset)
描述:删除指定的一条记录,删除后将文件指针指向被删除记录的下一条记录,
如果被删除的是最后一条记录,那么:
如果最后一条记录所在的key中只有一条记录,则删除后将文件指针指向上一key的第一条记录
如果最后一条记录所在的key中不止有一条记录,则删除后将文件指针指向上一条记录,
直至key中最后一条记录被删除后将文件指针指向上一key的第一条记录
(key和offset必须全都是正确的)。
fd : 文件标识
offset : 偏移地址
返回值:正常:0
错误: <0
--------------------------------------------
名称:DB_delete
原型:int DBdelete( int fd,unsigned char *record )
描述:删除指定key的第一条记录,删除后将文件指针指向被删除记录的下一条记录,
如果被删除的是最后一条记录则删除后将文件指针指向上一key的第一条记录
这里的key是根据索引表从record中取出的,输入key要根据索引表从record输入。
fd : 文件标识
record : 指向记录中关键字值的结构体指针
返回值:>=0 正常
-1 失败
--------------------------------------
名称:DB_delete_cur
原型:int DB_delete_cur( int fd )
描述:删除当前记录,并将后一条记录作为当前记录,如果被删除的是最后一条记录,那么:
如果最后一条记录所在的key中只有一条记录,则删除后将文件指针指向上一key的第一条记录
如果最后一条记录所在的key中不止有一条记录,则删除后将文件指针指向上一条记录,
直至key中最后一条记录被删除后将文件指针指向上一key的第一条记录。
fd : 文件标识
返回值:正常: >=0
失败: -1
参见:DBclose
--------------------------------------
名称:DB_key_rec_count
原型:int DB_key_rec_count(int fd,unsigned char *record)
描述:计算数据库文件中某一key值下有多少条记录,计算后文件指针指向不定
这里的key是根据索引表从record中取出的,所以,输入key要根据索引表从record输入。
fd : 文件标识
record : 数据结构体指针
返回值:正常: >=0 文件种记录的数目
失败: <0
参见:DBclose
-----------------------------------
名称:DB_rec_count
原型:int DB_rec_count(int fd )
描述:计算数据库文件中共有多少条记录,计算后文件指针指向不定
fd : 文件标识
返回值:正常: >=0 文件种记录的数目
失败: -1
参见:DB_close
-----------------------------------
名称:DB_key_count
原型:int DBkey_count(int fd )
描述:fd : 文件标识
返回值:normal : >=0
fail : -1
参见:DB_close
-----------------------------------
名称:DB_get_dbversion
原型:int DB_get_dbversion( unsigned char *verbuf )
描述:取得数据库的版本号
verbuf : 取得的数据库的版本号
返回值:正常: 0
失败: <0
参见:
-----------------------------------
原型:int DB_get_dbversion( unsigned char *verbuf )
描述:取得数据库文件的版本号.取得的版本号表示此数据库文件由哪个版本的数据库操作
verbuf : 取得的数据库文件的版本号
返回值:正常: 0
失败: <0
参见:
-----------------------------------
名称:DB_write_apversion
原型:int DB_write_apversion(int fd,unsigned char *apverbuf)
描述:向数据库文件中写入应用程序的版本号( 第一次写入必须正确 ,再次写入将返回负值表示写入失败 )
fd : 文件标识
apverbuf : 写入的应用程序版本号
返回值:正常: =0
失败: <0
参见:
-------------------------------------------------------------------------------------------
名称:DB_read_apversion
原型:int DB_read_apversion(int fd,unsigned char *apverbuf)
描述:从数据库文件中读出应用程序的版本号
fd : 文件标识
apverbuf : 读出的应用程序版本号
返回值:正常: 0
失败: <0
参见:
-----------------------------------
名称:DB_lock
原型:int DB_lock(int fd)
描述:为整个数据库文件加锁。
fd : 文件标识
返回值:正常: >=0
失败: <0
参见:DB_close
-----------------------------------
名称:DB_unlock(int fd)
原型:int DBunlock(int fd)
描述:为整个数据库文件解锁。
fd : 文件标识
返回值:正常: >=0
失败: <0
参见:DB_close
-----------------------------------
名称:DB_flush(int fd)
原型:int DBflush(int fd)
描述:刷新整个数据库文件
fd : 文件标识
返回值:正常: >=0
失败: <0
参见:DB_close
-----------------------------------
名称:DB_seek_raw
原型:int DB_seek_raw(int fd,int mode)
描述:根据mode定位到指定的记录
fd : 文件标识
mode : 定位方式
DB_BEGIN 定位到第一条记录
DB_END 定位到最后一条记录
CNXTLAG 定位到下一条记录
CPRVSML 定位到上一条记录
返回值:normal : 0
fail : <0
--------------------------------------
名称:DB_read_cur_raw
原型:int DB_read_cur_raw(int fd,unsigned char *record )
描述:直接从数据文件里读出当前数据文件指针指向的记录
fd : 文件标识
record : 指向记录中数据值的结构体指针
返回值:normal : 0
fail : <0
---------------------------------------
名称:DBget_rawid
原型:off_t DBget_rawid(int fd,off_t offset)
描述:根据某条记录的offset取得这条记录的rawid,并将它作为返回值返回
(此处的offset指的是某一索引表下记录的offset)
fd : 文件标识
offset : 偏移地址
返回值:normal : 这条记录的id
fail : <0
--------------------------------------
名称:DB_read_rawid
原型:int DB_read_rawid(int fd,off_t rawid,unsigned char *record)
描述:根据某条记录的rawid读出这条记录的内容
fd : 文件标识
offset : 某条记录的id
record : 指向记录中数据值的结构体指针
返回值:normal : 0
fail : <0
-----------------------------------
××××××××××××××××××××××
× ×
× 时钟函数 ×
× ×
××××××××××××××××××××××
-----------------------------------
说明:这是GGV为开发者提供的时间相关部分的专用函数,如果使用WalkPad Designer,系统会默认关联时钟函数的动态链接库,我们只要在在头文件声明中加入:
#include "pub/time/timepub.h"
-----------------------------------
名称:date_cmp
原型:int date_cmp(char *date_1, char *date_2 )
描述:比较date_1与date_2的大小。
char *date_1 形如ccyymmdd格式字符串
char *date_2 形如ccyymmdd格式字符串
yymmdd 范围 1950年至2049年
返 回 值:< 0 : date_1 < date_2
=0 : date_1 = date_2
>0 : date_1 > date_2
---------------------------------------------
名称:date_expand
原型:int date_expand( char *sdate ,char * edate ,struct DATESTRU *date_array ,int max_years )
描述:扩展sdate与edate之间的日期。
char *sdate 开始日期,如960301
char *edate 终止日期,如991010
struct DATESTRU *date_array;输出结果
形如:960301961231970101971231980101981231990101991010
int max_years sdate与edate之间的最大间隔年数
结构说明:
struct DATESTRU {
char sdate[6];
char edate[6];
};
返 回 值:0 成功
-1 sdate > edate
-----------------------------------------
名称:ftime
原型:ftime(char *date)
描述:返回当前时间的格式化字符串。
date 返回的值-参数结果
例 如:
Sat, Apr 28, 2001 04:04 PM
--------------------------------------------
名称:get_hms
原型:int get_hms(char ctime[])
描述:返回当前格式时间ctime 格式为(hhmmss)
ctime 当前格式时间
返 回 值:0
----------------------------------------------
名称:get_md
原型:int get_md(char *mmdd)
描述:返回当前格式时间mmdd 格式为(mmdd)
mmdd 当前格式时间
返回值:mmdd格式时间
----------------------------------------
名称: get_ymd
原型:int get_ymd(char *cdate)
描述:返回当前格式时间cdate 格式为(ccyymmdd)
cdate 当前格式时间
例:char mydate[11];
char yy[2];
get_ymd(mydate);
strncpy(yy,&zz[2],2);
MessageBox(NULL,yy,"年",MB_OK);
返回值:ccyymmdd的时间格式
---------------------------------------------
名称:get_ymdhms
原型:int get_ymdhms(char *dtime)
描述:返回当前格式时间dtime 格式为(ccyymmddhhmmss)
dtime 当前格式时间
返回值:ccyymmddhhmmss时间格式
参见:get_ymd
------------------------------------------------------------------------------
名称:isdate
原型:int isdate(char *str, char *datefmt)
描述:检查字符串是否符合datefmt格式的指定的日期型时间格式。
str 日期型字符串
datefmt 日期型字符串格式 /*"CCYYMMDD", "MMDDCCYY", "DDMMCCYY", "MMDD" ×/
返回值:1 符合datefmt格式
0 不符合datefmt格式
--------------------------------------
名称:istime
原型:int istime(char *str, char *timefmt)
描述:检查字符串是否符合datefmt格式的指定时间格式
char *str 时间型字符串
char *timefmt 时间型字符串格式 "HHMMSS", "MMSS";也可以为任意组合
返 回 值:1 符合timefmt格式
0 不符合timefmt格式
----------------------------------------------
名称:newdate
原型:newdate( char *olddate, char *newdate, int days )
描述:在知道旧的日期的前提下,加/减间隔的天数(day)偏移,得到新的日期。
olddate 输入的旧的日期型格式字符串(ccyymmdd)
olddate可为不太规范的日期 如:19981254 可自动改为19990123
newdate 新的日期 (输出)
days 新日期与旧日期之间间隔的天数
返 回 值:newdate的所在的weekday( 0: sunday 1: Monday ... 6: Saturday )
----------------------------------------
名称:newtime
原型:newtime( char *oldtime, char *newtime, int mins )
描述:在知道旧的日期时间的前提下,加/减间隔的分钟(minute)数偏移,得到新的日期时间.
oldtime 输入的旧的日期时间型格式字符串(ccyymmddhhmmss) ( I )
oldtime可为不太规范的mmddhhmmss 如:19981254256567可自动改为19990124020607
newtime 新的日期时间 (输出)
mins 新时间与旧时间之间间隔的分钟数
返 回 值:newtime的所在的weekday( 0: sunday 1: Monday ... 6: Saturday )
---------------------------------------------
名称:time2hms
原型:void time2hms(time_t dt,char *hms)
描述:用本地时间localtime()表示从19700101080000开始的秒数+TZ
如: dt=4 hms="08:00:04"转换日期时间变量dt为时间格式字符串(hh:mm:ss)若dt=0L,则取当前时间。
dt 输入的时间间隔(秒)
hms "hh:mm:ss"格式的字符串指针(输出)
返回值:无
------------------------------------------
名称:time2ymdhms
原型:time2ymdhms(time_t ltime,char *stime)
描述:用本地时间localtime()表示从19700101000000开始的秒数+TZ
转换日期时间变量ltime(相对于1970年1月1日0时0分0秒)为日期时间格式字符串(ccyymmddhhmmss)。
ltime 输入的时间间隔(秒)
stime 返回的日期时间格式字符串(ccyymmddhhmmss)(输出)
----------------------------------------------
名称:time_cmp
原型:time_cmp(char *time_1, char *time_2 )
描述:比较日期时间格式字符串time_1和time_2的大小;time_1和time_2 比较的最大长度为12。
time_1 日期时间格式(ccyymmddhhmmss)字符串
time_2 日期时间格式(ccyymmddhhmmss)字符串
返 回 值:<0 str1 小于 str2
=0 str1 等于 str2
>0 str1 大于 str2
--------------------------------------
名称:ymdhms2time
原型:int ymdhms2time(char *time_str , long *stime )
描述:将ymdhms格式的本地时间字符串转换为相对于1970年1月1日0时0分0秒的以秒为单位的时间值。
time_str ymdhms格式字符串
stime 以秒为单位的时间值 (输出)
----------------------------------------------
名称:date2date
原型:int date2date(char *date1,char *date2) (year>=1900)
描述:改不规范的时间形式为正确时间形式(year>=1900)返回正确的时间形式。
date1 不规范的日期形式ccyymmdd
date2 正确的日期形式ccyymmdd (输出)
返回值:0 正确
其他 错误
---------------------------------------------
名称:getdays
原型:int getdays(char *ptr)
描述:计算从1800年1月1日至输入的日期共有多少天
ptr 形式为ccyymmdd的日期字符串
返回值:从1800年1月1日至输入的日期间的天数
-------------------------------------------
名称:getdatefromccyymmWwD
原型:int getdatefromccyymmWwD(char *ptr,char *retptr)
描述:将形式为ccyymmWwD的日期字符串转换为ccyymmdd的形式并判断本月中是否有输入的周数
ptr 形式为ccyymmWwD的日期字符串
reptr 形式为ccyymmdd的日期字符串 (输出)
返回值:1 : 该月有该周
0 : 该月没有该周
---------------------------------------------
名称:getdatefromWwwD
原型:void getdatefromWwwD(char *ptr,char *retptr)
描述:将形式为ccyymmWwD的日期字符串转换为ccyymmdd的形式
ptr 形式为ccyymmWwD的日期字符串
reptr 形式为ccyymmdd的日期字符串 (输出)
返回值:无
--------------------------------------
名称:getformatday
原型:void getformatday(char *ptr,char *retptr,char *format)
描述:将输入的形为ccyymmdd的日期字符串转化为指定形式的字符串
当format格式错时,retptr为空串。
ptr 形为ccyymmdd的日期字符串
reptr 形为指定形式的日期字符串 (输出)
format 指定的日期字符串形式
CCYYMMDD
CCYY-MM-DD
CCYY-MM
CCYY
CC
YYMMDD
YY-MM-DD
-YYMM
-YY-MM
-MMDD
......
返回值:无
--------------------------------------
名称:getmaxdayofmonth
原型:int getmaxdayofmonth(char *ptr)
描述:输入形为ccyymmdd的日期字符串找出当月最大的一天的日期
ptr 形式为ccyymmdd的日期字符串
返回值:当月最大一天的日期
---------------------------------------------
名称:getweekday
原型:void getweekday(char *ptr,char *buf,char *argv[])
描述:找出输入的形为ccyymmdd的日期所在周的每一天的日期
ptr 形式为ccyymmdd的日期字符串
argv[] 形式为ccyymmdd的日期字符串数组 ( 输出)
返回值:无
---------------------------------------------
名称:get_weekofmonth
原型:int get_weekofmonth(char *ptr,char *retptr)
描述:将输入的形为ccyymmdd的日期字符串转化为ccyymmWwD形式字符串
ptr 形式为ccyymmdd的日期字符串
retptr 形为ccyymmWwwD的日期字符串(输出)
返回值:得到输入的字符串是当年第几月第几周的星期几
--------------------------------------
原型:struct datetm *mkdate(int days)
描述:根据距1800年1月1日的天数 得一结构体指针
days 距1800年1月1日的天数
返回值:得到的结构体指针
----------------------------------------------------------------------
名称:mkdatechar
原型:struct datetm *mkdatechar(char *ptr)
描述:输入一形为ccyymmdd的日期字符串 返回时间结构体指针
ptr 形为ccyymmdd的日期字符串 ( I )
返回值:得到的结构体指针
--------------------------------------------------------------------------
名称:weekdayofmonth
原型:int weekdayofmonth(char *ptr,int week,int weekday,char *retptr)
描述:输入年月周和星期几返回形为ccyymmdd的日期字符串
ptr 形为ccyymm的日期字符串
week 第几周
retptr 返回的形为ccyymmdd的字符串(输出 )
weekday 星期几
返回值:0 : 正确
1 : 错误
----------------------------------------
名称:datetype1
原型:int daytype1(char *startptr,char *theptr,int day)
描述:此程序满足的循环规律为:每几天
输入开始日期与间隔天数,检验输入的指定日期是否是从开始日期起在若干个间隔天数后的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
day 间隔天数
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔天数后的日期则返回1
--------------------------------------
名称:datetype2
原型:int daytype2(char *startptr,char *theptr,int week,char *weekday)
描述:此程序满足的循环规律为:每几周周***
输入开始日期与间隔周数和星期几,
检验输入的指定日期是否是从开始日期起在若干个间隔周数后指定星期几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
week 间隔周数
weekday 指定的星期几
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔周数后指定星期几的日期则返回1
--------------------------------------
名称:datetype3
原型:int daytype3(char *startptr,char *theptr,int month)
描述:此程序满足的循环规律为:每几月当日
输入开始日期与间隔月数,检验输入的指定日期是否是从开始日期起在若干个间隔月数后当日的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
week 间隔周数
weekday 指定的星期几
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔月数后当日的日期则返回1
---------------------------------------
名称:datetype4
原型:int daytype4(char *startptr,char *theptr,int month,int weekday)
描述:此程序满足的循环规律为:每几月当周周几
输入开始日期与间隔天数,检验输入的指定日期是否是从开始日期起在若干个间隔
月后指定当周周几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
month 间隔月数
weekday 当周星期几( I )
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔月后指定当周周几的日期则返回1
----------------------------------------------
名称:datetype5
原型:int daytype5(char *startptr,char *theptr,int year)
描述:此程序满足的循环规律为:每几年当月当日输入开始日期与间隔年数,
检验输入的指定日期是否是从开始日期起在若干个间隔年数后当月当日的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
year 间隔年数
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年后当月当日的日期则返回1
--------------------------------------
名称:datetype6
原型:int daytype1(char *startptr,char *theptr,int year,int weekday)
描述:此程序满足的循环规律为:每几年当月当周周几输入开始日期与间隔年数和当月当周周几,
检验输入的指定日期是否是从开始日期起在若干个间隔年数后当月当周指定周几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
year 间隔年数
weekday 当月当周周几
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年数后当月当周指定周几的日期则返回1。
---------------------------------------------
名称:findtype1
原型:int findtype1(char *startptr,char *startdate,char *enddate,int day,char *retptr)
描述:此程序满足的循环规律为:每几天输入开始日期,循环日期所在范围与间隔天数,
检验输入的指定日期是否是从开始日期起在若干个间隔日期后的日期。
startptr 开始日期字符
startdate 范围起始时间
enddate 范围结束时间
day 循环规则,每几天
retptr 返回值(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔天数后的日期则返回1
----------------------------------------------
名称:findtype2
原型:int findtype2(char *startptr,char *startdate,char *enddate,int week,
char *weekday,char *retptr)
描述:此程序满足的循环规律为:每几周周***输入开始日期与间隔周数和指定星期几,
检验输入的指定日期是否是从开始日期起一定时间范围内在若干个间隔周数后指定星期几的日期。
startptr 开始日期字符
startdate 范围起始时间
enddate 范围结束时间(
week 循环规则,每几周
weekday 循环规则,周几
retptr 返回值(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔周数后指定星期几的日期则返回1
--------------------------------------
名称:findtype3
原型:int findtype3(char *startptr,char *startdate,char *enddate,int month,char *retptr)
描述:此程序满足的循环规律为:每几月当日输入开始日期与间隔月数,
检验输入的指定日期是否是从开始日期起一定时间范围内在若干个间隔月数后当日的日期。
startptr 开始日期字符
startdate 范围起始时间
enddate 范围结束时间
month 循环规则,每几月
retptr 返回值(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔月数后当日的日期则返回1
---------------------------------------------
名称:findtype4
原型:int findtype4(char *startptr,char *startdate,char *enddate,int month,
int weekday,char *retptr)
描述:此程序满足的循环规律为:每几月当周周几输入开始日期与间隔天数,
检验输入的指定日期是否是从开始日期起一定时间范围内在若干个间隔月后指定
当周周几的日期。
startptr 开始日期字符
startdate 范围起始时间
enddate 范围结束时间
month 循环规则,每几月
weekday 循环规则,周几
retptr 返回值(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔月后指定当周周几的日期则返回1
--------------------------------------
名称:findtype5
原型:int findtype5(char *startptr,char *startdate,char *enddate,int year,char *retptr)
描述:此程序满足的循环规律为:每几年当月当日输入开始日期与间隔年数,
检验输入的指定日期是否是从开始日期起一定时间范围内在若干个间隔年数后当月当日的日期。
startptr 开始日期字符
startdate 范围起始时间
enddate 范围结束时间
year 循环规则,每几年
retptr 返回值(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年后当月当日的日期则返回1
--------------------------------------
名称:findtype6
原型:int findtype6(char *startptr,char *startdate,char *enddate,int year,int
weekday,char *retptr)
描述:此程序满足的循环规律为:每几年当月当日输入开始日期与间隔年数和当月当周周几,
检验输入的指定日期是否是从开始日期起一定时间范围内在若干个间隔年数后当月当周
指定周几的日期。
startptr 开始日期字符
startdate 范围起始时间
enddate 范围结束时间
year 循环规则,每几年
weekday 循环规律,周几
retptr 返回值(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年数后当月当周指定周几的日期则返回1。
---------------------------------------------
名称:monthtype1
原型:int monthtype1(char *startptr,char *theptr,int day,char *retptr)
描述:此程序满足的循环规律为:每几天输入开始日期与间隔天数,
检验输入的指定日期是否是从开始日期起在若干个间隔日期后的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
day 间隔天数
retptr 包含符合要求指定日期字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔天数后的日期则
返回包含这些当月日期的字符串的长度。
------------------------------------------
名称:monthtype2
原型:int monthtype2(char *startptr,char *theptr,int week,char *weekday,char *retptr)
描述:此程序满足的循环规律为:每几周周***输入开始日期与间隔周数和星期几,
检验输入的指定日期是否是从开始日期起在若干个间隔周数后指定星期几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
week 间隔周数
weekday 指定的星期几
retptr 包含符合要求指定日期字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔周数后指定星期几的日期则返回
包含这些当月日期的字符串的长度。
----------------------------------------------
名称:monthtype3
原型:int monthtype3(char *startptr,char *theptr,int month,char *retptr)
描述:此程序满足的循环规律为:每几月当日输入开始日期与间隔月数,
检验输入的指定日期是否是从开始日期起在若干个间隔月数后的当日日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
month 间隔月数
retptr 包含符合要求的日期字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,若输入的指定日期是从开始日期起在若干个
间隔月数后的当日日期则返回包含符合要求的当月日期的字符串的长度。
----------------------------------------
名称:monthtype4
原型:int monthtype4(char *startptr,char *theptr,int month,int weekday,char *retptr)
描述:此程序满足的循环规律为:每几月当周周几输入开始日期与间隔月数和当周周几,
检验输入的指定日期是否是从开始日期起在若干个间隔月数后的当周指定周几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
month 间隔月数
weekday 指定的当周的星期几
retptr 包含符合要求的日期字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔月数后的当周指定周几
的日期则返回含有符合要求的当月日期的字符串长度。
-------------------------------------------
名称:monthtype5
原型:int monthtype5(char *startptr,char *theptr,int year,char *retptr)
描述:此程序满足的循环规律为:每几年当月当日输入开始日期与间隔年数,
检验输入的指定日期是否是从开始日期起在若干个间隔年数后的当月当日的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
year 间隔年数
retptr 含有符合要求的日期的字符串(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年数后的当月当日的日期则
返回含有符合要求的当月日期的字符串长度。
---------------------------------------------
名称:monthtype6
原型:monthtype6(char *startptr,char *theptr,int year,int weekday,char *retptr)
描述:此程序满足的循环规律为:每几年当月当周周几输入开始日期与间隔月数和周几,
检验输入的指定日期是否是从开始日期起在若干个间隔月数后的当月当周指定周几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
month 间隔月数
weekday 指定的当月当周的星期几
retptr 含有符合要求的日期的字符串(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年数后的当月当周指定周几的日期则返
回含有符合要求的日期的字符串长度。
------------------------------------------
名称:weektype1
原型:int weektype1(char *startptr,char *theptr,int day,char *retptr)
描述:此程序满足的循环规律为:每几天输入开始日期与间隔天数,
检验输入的指定日期是否是从开始日期起在若干个间隔天数后的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
day 间隔天数
retptr 含有符合要求的日期的字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔天数后的日期则返回
包含这些符合要求的当周字符串的长度。
--------------------------------------------
名称: weektype2
原型:int weektype2(char *startptr,char *theptr,int week,char *weekday,char *retptr)
描述:此程序满足的循环规律为:每几周周***开始日期与间隔周数和星期几,
检验输入的指定日期是否是从开始日期起在若干个间隔周数后指定星期几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
week 间隔周数
weekday 指定的星期几
retptr 含有符合要求的日期的字符串指针( 输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔周数后指定星期几
的日期则返回包含这些当周指定日期字符串的长度。
--------------------------------------------
名称: weektype3
原型:int weektype3(char *startptr,char *theptr,int month,char *retptr)
描述:此程序满足的循环规律为:每几月当日输入开始日期与间隔月数,
检验输入的指定日期是否是从开始日期起在若干个间隔月数后的当日日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
month 间隔月数
retptr 含有符合要求的日期的字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔月数后的当日日期则
返回包含符合要求的当周日期的字符串的长度。
---------------------------------------------
名称:weektype4
原型:int weektype4(char *startptr,char *theptr,int month,int weekday,char *retptr)
描述:此程序满足的循环规律为:每几月当周周几输入开始日期与间隔月数和当周周几,
检验输入的指定日期是否是从开始日期起在若干个间隔月数后的当周指定周几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
month 间隔月数
weekday 指定的当周的星期几
retptr 含有符合要求的日期的字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔月数后的当周指定周几
的日期则返回含有符合要求的当周日期的字符串长度。
-------------------------------------------
名称:weektype5
原型:int weektype5(char *startptr,char *theptr,int year,char *retptr)
描述:此程序满足的循环规律为:每几年当月当日输入开始日期与间隔年数,
检验输入的指定日期是否是从开始日期起在若干个间隔年数后的当月当日的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
year 间隔年数
retptr 含有符合要求的日期的字符串指针(输出)
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年数后的当月
当日的日期则返回含有符合要求的当周日期的字符串长度。
--------------------------------------------
名称:weektype6
原型:int weektype6(char *startptr,char *theptr,int year,int weekday,char *retptr)
描述:此程序满足的循环规律为:每几年当月当周周几输入开始日期与间隔月数和周几,
检验输入的指定日期是否是从开始日期起在若干个间隔月数后的当月当周指定周几的日期。
startptr 开始日期字符串指针CCYYMMDD
theptr 指定日期字符串指针CCYYMMDD
month 间隔月数
weekday 指定的当月当周的星期几
retptr 含有符合要求的日期的字符串指针
返回值:如输入的指定日期不符合循环规律 则返回0,
若输入的指定日期是从开始日期起在若干个间隔年数后的当月当
周指定周几的日期则返回含有符合要求的当周日期的字符串长度。
--------------------------------------
名称:get_dayofweek
原型:int get_dayofweek (char *ptr)
描述:若输入的字符串为空则返回系统时间的当天为星期几,否则返回输入日期的当天是星期几。
ptr 形如ccyymmdd格式字符串 or NULL--当前时间
返回值:返回星期几
----------------------------------------------
名称:getmonth
原型:void getmonth(char *startptr,int month,char *retptr)
描述:计算某一日期加上若干个月后的新日期。
startptr 形如ccyymmdd格式字符串
month 月数
retptr 新的日期(输出)
返回值:无
--------------------------------------
名称:dump_d
原型:void dump_d( char *ptr )
描述:将字符串中的字符用整型显示
ptr 输入的字符串
该函数在monthtypepub.c 中
----------------------------------------------
名称:Ifweekinptr
原型:ifweekinptr( int k, char *ptr )
描述:检验字符串中是否有指定的字符。
k 输入的字符( 1-7 )
ptr 输入的字符串
返回值:若字符串中有指定的字符则返回1,否则返回0。
--------------------------------------
名称:getmon
原型:int getmon( char *theptr )
描述:返回输入日期所在周的周一与1800年1月1日的间相差的天数。
theptr 输入的指定日期字符串
返回值:返回输入日期所在周的周一与1800年1月1日的间相差的天数。
----------------------------------------
名称:getccyymmddfromdays
原型:void getccyymmddfromdays( int days, char *retptr )
描述: 根据与1800年1月1日的间相差的天数,计算出形为ccyymmdd的字符串
days 与1800年1月1日的间相差的天数
retptr 得到的形为ccyymmdd的字符串(输出)
返回值:无
---------------------------------------
名称:set_ymd
原型:int set_ymd( int year,int mon,int day )
描述:设置系统时间的年月日。
year 设定的年份
mon 设定的月份
day 设定的天
返回值:若成功设定则返回 0
---------------------------------------
名称:set_hms
原型:int set_hms( int hour,int min,int sec )
描述:设置系统时间的分时秒
hour 设定的小时
min 设定的分钟
sec 设定的秒
返回值:若成功设定则返回 0
--------------------------------------
××××××××××××××××××××××××
× ×
× 红外收发 ×
× ×
××××××××××××××××××××××××
--------------------------------------
说明:可以发送一个文件或接收一个文件,可收发的文件类型如下:
1) .vcf 文件 符合vCard协议的名片文件
2) .gnp文件 备忘录文件
3) .vcs 文件 行程文件和待办事项文件
4) .prg 文件 可执行程序文件
5) .wzp文件 汇率文件
6) .ebk文件 读书文件
发送文件的方法
将所要发送的信息存为一文件,比如 /tmp/wl.vcf ,然后执行
SwitchTo("/mwin/bin/irda_ap","/tmp/wl.vcf");
即可,注意:/tmp/wl.vcf 最后会被 irda_ap 删除。
接收文件的方法
按下 IrDA 键即可,若接收成功,则会根据所接收到的文件类型唤起相应的
应用程序,所接收到的文件的全路径名作为第一个参数传給该应用程序。