VS2013的MFC,獲取程式的控制代碼
阿新 • • 發佈:2019-02-03
在VC6中,我可以右擊工具欄的空白處,勾選Controls以顯示控制元件(編輯框、按鈕、等),VS2013要怎麼做呢?
答:在VS2013中,你應該View->Toolbox以顯示這些控制元件,或者Ctrl+Alt+X快捷鍵調出來它。
spy++怎麼用?
答:先Tools->Spy++,然後“Search->Find Window”或“Alt+F3”或“點選望遠鏡的按鈕”即可,詳見下面的連結。
答:在VS2013中,你應該View->Toolbox以顯示這些控制元件,或者Ctrl+Alt+X快捷鍵調出來它。
spy++怎麼用?
答:先Tools->Spy++,然後“Search->Find Window”或“Alt+F3”或“點選望遠鏡的按鈕”即可,詳見下面的連結。
http://jingyan.baidu.com/article/3a2f7c2e76584a26aed61174.html
下面是獲取某客戶端的某子視窗的控制代碼的過程,不完善,就寫著玩,留作自用,啥時候完成了,我再更新上來。這些程式碼我也是在網上搜的。
完。CString strCaption; CWnd* pWnd = AfxGetMainWnd()->GetWindow(GW_HWNDFIRST); if (nullptr == pWnd) return; while (pWnd) { if (pWnd->IsWindowVisible() && pWnd->GetWindowTextLengthW() && !pWnd->GetOwner()) { pWnd->GetWindowTextW(strCaption); if (strCaption.Find(CString("某系統的父視窗的標題")) != -1) break; } pWnd = pWnd->GetWindow(GW_HWNDNEXT); } if (NULL == pWnd) return; //BOOL/*bool*/ CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam) //BOOL是int而bool是bool auto lambda_fun = [](HWND hwndChild, LPARAM lParam) { TCHAR szWndTitle[1024]; int nLen = ::GetWindowTextW(hwndChild, szWndTitle, 1024); if (CString(szWndTitle).Find(CString("父視窗的某子視窗的標題")) != -1) { AfxMessageBox(szWndTitle); return FALSE;//0 } return TRUE;//1 }; EnumChildWindows(pWnd->m_hWnd, lambda_fun, NULL); AfxMessageBox(CString("all end"));