Sleep
执行挂起一段时间,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
RegCloseKey
函数功能描述:释放指定注册键的句柄
RegCreateKeyExW
该函数用来创建注册表键,如果该键已经存在,则打开它(注册表键不区分大小写)
RegQueryValueExW
函数RegQueryValueEx找回一个打开的注册表键值相关联的给定的变量数据或者变量
{
由于电脑经常会关闭,或者应用程序也会经常关闭,但有一些参数是经常需要保存。比如当你打开程序,并设置了窗口的大小,想每次打开时都设置窗口为上次打开的大小。这样就需要保存窗口的大小,那么窗口大小的参数保存到那里呢?其实在Windows里最方便的做法,就是保存到注册表里。又比如游戏登录时,总是想保存最后一个登录的用户,那么也需要保存这个用户到注册表里。其实注册表是Windows保存系统配置的数据库,比如不同的语言设置,不同的时区设置,不同的用户登录,不同的权限等等。下面就来学习怎么样使用函数RegOpenKeyEx来打开注册表里的键和用函数RegCreateKeyEx来创建新的键。
}
PeekMessage()
GetMessage()
这两个函数都为一个消息检查线程消息队列,并将该消息(如果存在)放于指定的结构
{
PeekMessage与GetMessage的对比
相同点:
PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中
的消息派发出去。
不同点:
无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行
后面的语句(无消息则执行其它指令,有消息时一般要将消息派发出去,再执行其它指令)。
GetMessage函数只有在消息对立中有消息时返回,队列中无消息就会一直等,直至下
一个消息出现时才返回。在等的这段时间,应用程序不能执行任何指令。
}
BOOL PeekMessage(LPMSG IpMsg,HWND hWnd,UINT wMSGfilterMin,UINT wMsgFilterMax,UINT wRemoveMsg);
lpMsg:接收消息信息的MSG结构指针。
hWnd:其消息被检查的窗口的句柄。
wMsgFilterMin:指定被检查的消息范围里的第一个消息。
wMsgFilterMax:指定被检查的消息范围里的最后一个消息。
wRemoveMsg:确定消息如何被处理。
HWND SetCapture(HWND hwnd)
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。
BOOL ReleaseCapture(VOlD)
函数功能:该函数从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。捕获鼠标的窗口接收所有的鼠标输入(无论光标的位置在哪里),除非点击鼠标键时,光标热点在另一个线程的窗口中。
HMODULE GetModuleHandle( LPCTSTR lpModuleName);
获取一个应用程序或动态链接库的模块句柄
lpModuleName 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD
如果函数调用成功,返回值是某一模块的句柄。 如果函数调用失败,返回NULL。要得知更多的出错信息,调用GetLastError。
DWORD GetLastError(VOID);
针对之前调用的api函数,用这个函数取得扩展错误信息
ATOM RegisterClass(CONST WNDCLASS *lpWndClass)
函数功能:该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,
HWND GetDesktopWindow(VOID)
函数功能:该函数返回桌面窗口的句柄。桌面窗口覆盖整个屏幕。桌面窗口是一个要在其上绘制所有的图标和其他窗口的区域。
BOOL GetWindowRect(HWND hWnd,LPRECT lpRect)
函数功能:该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出。(包括客户区和非客户区)
int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr,int cchMultiByte, LPWSTRlpWideCharStr, int cchWideChar);
函数功能:该函数映射一个字符串到一个宽字符(unicode)的字符串。由该函数映射的字符串没必要是多字节字符组。
MultiByteToWideChar(多字节转换宽字节)和WideCharToMultiByte(宽字节转换多字节)
{
何为短字符和宽字符.
所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码.
而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE.
}
LONG GetWindowLong( HWND hWnd,int nIndex )
函数功能描述:用这个函数能够获得指定窗口的信息
BOOL AdjustWindowRectEX(LPRECT lpRect,DWORD dwStyte;BOOL bMenu;DWORD dwExStyle)
该函数依据所需客户矩形大小,计算需要的窗口矩形的大小。计算出的窗口矩形随后可以传送给CreateWindowEx函数,用于创建一个客户区所需大小的窗口。
BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int x, int y,int cx, int cy, UINT nFlags)
该函数改变一个子窗口,弹出式窗口或顶层窗口的尺寸,位置和Z序。
BOOL DestroyWindow(HWND hWnd )
函数功能:销毁指定的窗口。这个函数通过发送WM_DESTROY 消息和 WM_NCDESTROY 消息使窗口无效并移除其键盘焦点。这个函数还销毁窗口的菜单,清空线程的消息队列,销毁与窗口过程相关的定时器,解除窗口对剪贴板的拥有权,打断剪贴板器的查看链。
BOOL UnregisterClass(LPCTSTR lpClassName, HINSTANCE hInstance )
该函数注销一个窗口类,一类释放所需的内存
FindWindow、FindWindowEx - 查找窗口
{
FindWindow(
lpClassName, {窗口的类名}
lpWindowName: PChar {窗口的标题}
): HWND; {返回窗口的句柄; 失败返回 0}
//FindWindowEx 比 FindWindow 多出两个句柄参数:
FindWindowEx(
Parent: HWND; {要查找子窗口的父窗口句柄}
Child: HWND; {子窗口句柄}
ClassName: PChar; {}
WindowName: PChar {}
): HWND;
{
如果 Parent 是 0, 则函数以桌面窗口为父窗口, 查找桌面窗口的所有子窗口;
如果 是 HWND_MESSAGE, 函数仅查找所有消息窗口;
子窗口必须是 Parent 窗口的直接子窗口;
如果 Child 是 0, 查找从 Parent 的第一个子窗口开始;
如果 Parent 和 Child 同时是 0, 则函数查找所有的顶层窗口及消息窗口.
}
UINT_PTR SHAppBarMessage(
DWORD dwMessage,//消息名
PAPPBARDATA pData //APPBARDATA结构指针
);
消息名对应着操作类型,比如ABM_GETSTATE代表着获取任务栏状态,ABM_SETSTATE代表设置任务栏状态等。而APPBARDATA结构指针则储存着任务栏的相关数据
SubtractRect(RECT& lprcDst , RECT& lprcSrc1, RECT& lprcSrc2)
函数功能:这个函数会装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果。