1、
----
之前很長時間內用的都是mfc,後來vc的多執行緒與記憶體洩露讓我焦頭爛額,牽扯東西太多,於是乎,轉戰qt了。
程式設計過程中,不可避免要操作外部視窗,mfc中操作視窗用的都是cwnd::fromhandle();
qt中操作外部視窗與cwnd對應的是qwindow類。
hwnd
hwndlogin=findwindow(null,l"登入");
qwidget*widgetlogin=qwidget::find((wid)hwndlogin);
qwindow*windowlogin=qwindow::fromwinid((wid)hwndlogin);
windowlogin->showfullscreen();用上面的語句即可將相應控制代碼對應的視窗最大化顯示。當然有不足的地方,比如呼叫title顯示不了視窗的標題的,呼叫show方法,有時候不能把視窗提到頂層,取決於視窗狀態,如果視窗是最小化的,show會將視窗提到最前面,否則沒有變化的。。。。我還一度以為方法不好使。。。還是有坑啊。
另外,如果單純想實現某些視窗的最大化、最小化、放在最前面,可以用api函式,原生態的,既快捷又安全。
::setforegroundwindow(hwndsilver);
可以將視窗提到最上面。
用qwidget會報錯,提示對應控制代碼的qwidget為空,但是用qwindow是可以的。
使用的是qt 5.2版本,編譯器是mingw。
關於這個知識點 就這樣啦。。。
頂 0 踩
Qt獲取當前視窗控制代碼 獲取視窗中控制項的控制代碼
大家可以看這篇文章,講的比較詳細。winid 函式。qt5裡面 如果想獲取qt視窗的控制代碼用於顯示 且看我操作 hwnd m hwnddisplay hwnd this winid 獲取當前this視窗的控制代碼 mycamera display m hwnddisplay 呼叫你camera的d...
C 視窗 控制項控制代碼操作
其實在wpf下操作也很簡單,不過稍微要麻煩點 引入命名空間 system.windows.interop 獲取窗體的 intptr hwnd new windowinterophelper this handle 獲取控制項的 intptr hwnd hwndsource presentations...
Qt 通過滑鼠移動視窗
用 qt 開發桌面端程式的時候,通常會去掉自帶的標題欄,然後自定義乙個標題欄,那麼就需要實現通過滑鼠來移動窗體。實現邏輯其實很簡單,只需要捕捉到滑鼠的座標點,在 mousemove 事件中實現窗體移動。void actionwidget mousepressevent qmouseevent eve...