MFC 知识点5


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得到的结果。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值