Win32API笔记一

来源:互联网 发布:大数据时代英文翻译 编辑:程序博客网 时间:2024/05/14 21:14

/********************************************
* Form API
********************************************/
// 1.
// The EnumWindows function does not enumerate child windows.
//
// 此函数用于枚举窗口,把枚举到的窗口句柄传进回调函数,需要注意的是此函数并不枚举子窗口
//
BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam)
 /*参数:
 lpEnumFunc:指向一个应用程序定义的回调函数指针,请参看EnumWindowsProc。   
 lPararm:指定一个传递给回调函数的应用程序定义值。 */
 //回调函数原型   
 BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam);   
 /*参数:   
  hwnd:顶层窗口的句柄   
  lparam:应用程序定义的一个值(即EnumWindows中lParam) */
  
  //
// 2.
// 该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。
//
LONG GetWindowLong(HWND hWnd,int nlndex)
 /*
  nlndex:指定要检索的基于0的偏移量。有效值的范围从0到窗口额外内存空间的字节数,减去4。
    例如,若指定了12位或多于12位的窗体类的额外存储空间,则应设为第三个32位整数的索引位8(12- 4=8)。
  要获得任意其他值,指定下列值之一:
    GWL_EXSTYLE= (-20) 扩展窗口样式   
    GWL_STYLE=(-16) 窗口样式   
    GWL_WNDPROC= (-4) 该窗口的窗口函数的地址   
    GWL_HINSTANCE= (-6) 拥有窗口的实例的句柄   
    GWL_HWNDPARENT= (-8) 该窗口之父的句柄。不要用SetWindowWord来改变这个值   
    GWL_ID= (-12) 对话框中一个子窗口的标识符   
    GWL_USERDATA = (-21) 含义由应用程序规定   
    DWL_DLGPROC = 4 这个窗口的对话框函数地址   
    DWL_MSGRESULT = 0 在对话框函数中处理的一条消息返回的值   
    DWL_USER = 8 含义由应用程序规定  */

//
// 3.
// 向指定的窗口发送指定的消息
//
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)
 /*
  hWnd:窗口句柄
  Msg:指定被发送的消息。   
  wParam:指定附加的消息指定信息。   
  IParam:指定附加的消息指定信息。
  
      
//
// 4.
// 该函数返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐标给出
//
BOOL GetWindowRect(HWND hWnd,LPRECT lpRect)
 /*
  hWnd:窗口句柄
  lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标。 
  
     */

//
// 5.
// 该函数获得包含指定点的窗口的句柄
//
HWND WindowFromPoint(POINT Point) 
 /*
  Point
  eg.
  POINT point;
  point.x = rcWindow.left;
  point.y = rcWindow.top;
  
  HWND hWnd = WindowFromPoint(point);
  
  上述代码可以获取包含point点的控件的句柄
  */
  
//
// 6.
// 返回当前focus的窗口 的句柄
//
HWND GetForegroundWindow(VOID)
 /*
  可以用来判断当前窗口是否是我们需要的窗口等等
  */

//
// 7.
// 该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。
//
HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName)
 /*
  参数:
   IpClassName:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。
      如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。
      该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。
   IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。
   返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。
  eg.
  HWND hWnd = FindWindow(NULL,_T("扫雷"));
  //这样就用窗口标题获取到窗口的句柄
  
  */

//
// 8.
// 该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。
//
HWND FindWindowEx(HWND hwndParent,HWND hwndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow)
 /*
  参数;
   hwndParent:要查找子窗口的父窗口句柄。
      如果hwnjParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口。
      Windows NT5.0 and later:
      如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。
   hwndChildAfter:子窗口句柄。查找从在Z序中的下一个子窗口开始。
      子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。
      如果HwndChildAfter为NULL,查找从hwndParent的第一个子窗口开始。
      如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。
   lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。
      如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。
      该成员为16位,必须位于lpClassName的低16位,高位必须为0。
   lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。
      如果该参数为NULL,则为所有窗口全匹配。
   返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。
  */

 


  

原创粉丝点击