FindWindow()如何獲取隱藏窗口的句柄
由於項目需要將matlab繪制出的圖形窗口嵌入到VC界面裏去。為了有好的顯示效果matlab裏讓窗口先隱藏然後抓到VC界面裏再顯示出來。由於matlab程序比較復雜是由合作方提供的。不能用COM等形式實現聯合編程。這裏遇到的問題是:FindWindow()函數無法找到隱藏的Figure窗口句柄(顯示情況下能找到)由於對Windows理解不夠我無從下手。望高手指明方向。。。。------解決方案--------------------------------------------------------妳用EnumWindow試試------解決方案--------------------------------------------------------不管窗口有沒有影藏,findwindow都能夠找到它,如果它是頂級窗口並且沒有經過特殊處理的話。我猜,妳那matlab的figure可能不是頂級窗口,就是不是主程序的窗口,因此,妳可以通過枚舉的方式來找到子窗口。代碼如下,參考下:C/C++ codeCWnd* cwnd=CWnd::FindWindow(NULL,matlab標題名);//找到matlab的主窗口CWnd* child=cwnd-GetWindow(GW_CHILD);//獲得matlab的第壹個子窗口CString buf;while(child){//這裏可以判斷是不是妳那個figurechild-SendMessage(WM_GETTEXT,50,(LPARAM)(buf.GetBuffer(50)));buf.ReleaseBuffer();if (buf==發送){child-PostMessage(WM_LBUTTONDOWN);child-PostMessage(WM_LBUTTONUP);break;}else{//child-SendMessage(WM_SETTEXT,0,(LPARAM)hello,this is me);}child=(child-GetNextWindow(GW_HWNDNEXT));//獲取下壹個子窗口}------解決方案--------------------------------------------------------枚舉窗口