Windows API学习笔记(1)

一、窗口处理

 1.创建窗口

HWND CreateWIndow(LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle,int X,int Y,int nWidth,int nHeight,HWND hwndParent,HMENU hMenu,HANDLE hInstance,LPVOID lpParam)

该函数创建一个重叠式、弹出式窗口或子窗口。指定窗口的类型、窗口的标题、窗口的式样和窗口的初始位置及大小(可选项),以及窗口的父窗口、拥有者窗口和窗口菜单。

常用的子窗口样式:WS_CHILD,WS_VISIBLE,WS_BORDER常用的子窗口的类型:BUTTON,EDIT,LISTBOX,MDICLIENT,RICHEDIT,SCROLLBAR,STATIC。

HWND CreateWindowEx函数创建具有dwExStyle样式的窗口.常用的扩展样式有:WS_EX_ACCEPTFILES, WS_EX_CLENTEDGE, WS_EX_CONTEXTHELP, WS_EX_TOPMOST.

2.关闭窗口函数

BOOL CloseWindow(HWND hwnd);//最小化窗口

BOOL DestroyWindow(HWND hwnd);//销毁窗口

3.窗口间关系的函数

HWND SetParent(HWND hWndCHild,HWND hWndNewParent);//将子窗口的父窗口重新指定为新的父窗口

HWND GetParent(HWND hwnd);//函数获得hwnd的父窗口

 4.遍历窗口

BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lparam)

遍历系统所有的顶层窗口,并把每个窗口句柄都传递给用户定义的遍历回调函数。直到遍历完所有窗口或lpEnumFunc返回False才返回

BOOL EnumChildWindows(HWND hwnd,WNDENUMPROC lpEnumFunc,LPARAM lparam)

遍历hwnd的所有字窗口,并把每个子窗口的句柄都传递给用户自定义的过程。

以上两个函数所用的回调函数定义是: BOOL CALLBACK EnumWindowProc(HWND hwnd,LPARAM lparam);

因此可以在回调函数中对窗口进行处理。

5.获取指定的子窗口

HWND ChildWindowFromPoint(HWND hWndParent,POINT pt);//函数首先判断hWndParent在pt处是否有子窗口,如果有返回这个子窗口的句柄。

HWND ChildWindowFromPointEX(HWND hwndParent,POINT pt,UINT uFlags);//该函数通过uFlags可以设置忽略不可见、无效和透明的子窗口。

6.窗口的大小:

BOOL GetWindowRect(HWND hwnd,LPRECT lpRect);//获得窗口的外边框矩形

BOOL GetClientRect(HWND hwnd,LPRECT lpRect);//获得窗口的客户区的矩形

BOOL SetWindowPos(HWND hwnd,HWND hWndInsrtAfter,int X,int Y,int cx,int cy,UNIT uFlags);函数改变子窗口、弹出式窗口或顶层窗口的位置、大小和Z序。

7.显示窗口

BOOL ShowWindow(HWND hwnd,int nCmdShow);//显示或改变给定的窗口

BOOL ShowWindowAsync(HWND hwnd,int nCmdShow);//设置别的线程创建的窗口的状态

 BOOL OpenIcon(HWND hwnd);//将处于最小化状态的窗口恢复到以前的显示状态。

8.窗口属性设置

BOOL SetWindowText(HWND hwnd,LPCTSTR lpString);//设置窗口的标题

int GetWindowText(HWND hwnd,LPTSTR lpString,int nMaxCount);//获取给定窗口的标题

int GetWindowTextLength(HWND hwnd);//返回给定窗口的标题的长度

9.查找窗口

HWND FindWIndow(LPCTSTR lpClassName,LPCTSTR lpWindowName);//返回一个窗口的句柄,该窗口的类由lpClassName参数给出,其窗口名字或标题由lpWindowName函数给出,不查找子窗口。

HWND FindWindowEx(HWND hwndParent,HWND hwndCHildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow);函数查找子窗口的句柄。

HWND WindowFromPoint(POINT point);该函数返回所给点的窗口,point必须是屏幕中一点的屏幕坐标。

 

 
posted @ 2007-03-22 15:30  巨巨  阅读(162)  评论(0编辑  收藏  举报