窗口句柄、位置
文章目錄
- FindWindow函數用法
- 1. 函數聲明
- 2.MFC中使用
- GetClassName函數用法
- 1. 函數原型
- 2、MFC中使用
- MoveWindow函數用法
- 1. 函數定義
- 2. MFC中使用
FindWindow函數用法
1. 函數聲明
參數一:找的窗口的類 參數二:找的窗口的標題 返回值:標識了具有指定的類名或窗口名的窗口。如果沒有找到這樣的窗口,則返回NULL。 返回的CWnd*值可能是臨時的,不能被保存以供將來使用。 static CWnd* PASCAL FindWindow( LPCTSTR lpszClassName, LPCTSTRlpszWindowNa- me );有的窗口的標題是比較容易得到的,如 " 計算器 " ,所以搜索時應使用標題進行搜索。但有的軟件的標題不是固定的,如 " 記事本 " ,如果打開的文件不同,窗口標題也不同,這時使用窗口類搜索就比較方便。如果找到了滿足條件的窗口,這個函數返回該窗口的句柄,否則返回 0 。
在搜索的時候不一定兩者都知道,但至少要知道其中的一個就行
FindWindow(0&, " 計算器 “) ;//忽略窗口的類
FindWindow(”", " 計算器 ") ;//表示窗口的類是個空串,也可以理解為忽略類而搜索指定的標題
對于我們打開一個軟件,標題是很容易看到的。可如果窗口的標題不固定或者根本就沒有標題,怎么得到窗口的類呢?
Spy++查看窗口類名和窗口標題名
使用Spy++顯示:
2.MFC中使用
HWND hWnd; hWnd = ::FindWindow(NULL, "計算器");//得到目標窗口句柄 if ( hWnd == NULL ) {DWORD mRrrr;mRrrr =GetLastError();CString strError;strError.Format(_T("%d"), mRrrr);CString str;str = _T("軟件未能啟動,錯誤") + strError+_T(",未能找到滿意的窗口");MessageBox(str,_T("錯誤提示")); }GetClassName函數用法
1. 函數原型
函數功能: 該函數獲得指定窗口所屬的類的類名。 參數: ①hWnd:窗口的句柄及間接給出的窗口所屬的類。 ②IpClassName:指向接收窗口類名字符串的緩沖區的指針。 ③nMaxCount:指定由參數lpClassName指示的緩沖區的字節數。如果類名字符串大于緩沖區的長度,則多出的部分被截斷。 返回值: 如果函數成功,返回值為拷貝到指定緩沖區的字符個數:如果函數失敗,返回值為0。若想獲得更多錯誤信息,請調用GetLastError函數。 int GetClassName(HWND hWnd,LPTSTR IpClassName, int nMaxCount);2、MFC中使用
char bufClassName[255]; ::GetClassName(hp, bufClassName, 255);//獲取窗口的類名 CString strName(bufClassName);MoveWindow函數用法
1. 函數定義
win32 API函數: BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);CWnd類成員函數: void MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE); //x left, y top, nWidth 寬度, nHeight 高度 void MoveWindow(LPCRECT lpRect, BOOL bRepaint = TRUE);2. MFC中使用
::MoveWindow(hp, 0, 0, 800, 800, TRUE);//窗口此時應重畫,則設為TRUE(非零)。FALSE(零)則表明應用程序會自己決定是否重畫窗口this->MoveWindow(0, 0, 600, 550);總結
- 上一篇: 计算机网络原理之运输层
- 下一篇: matlab教程 for循环,Matla