禁用CvNamedWindow中的關閉按鈕

2021-06-12 08:46:21 字數 768 閱讀 9008

直接摘來如下:

今天在寫乙個mfc程式時,需要臨時禁用cvnamedwindow所建立視窗系統選單上的關閉按鈕,

開始覺得沒什麼,直接寫**如下:

hwnd hcvwnd=(hwnd)cvgetwindowhandle(windowtitle);

cwnd* pcvwnd=cwnd::fromhandle(hcvwnd);

if(pcvwnd!=null)

進行測試,沒有達到預期目的。開始以為可能是方法不對,用其他幾種方法試驗,

仍達不到預期效果。除錯好久,偶然發現使用cvnamedwindow建立視窗時,其實建立了兩個視窗,

乙個容器視窗和乙個子視窗,建立時的視窗名稱為子視窗的名稱。

因此將原先的**修改如下後則可達到預期目的。

hwnd hcvwnd=(hwnd)cvgetwindowhandle(windowtitle);

cwnd* pcvwnd=cwnd::fromhandle(hcvwnd);

if(pcvwnd!=null)

試之,然也,但是覺得如果每個視窗都寫這麼一段豈不是也挺費勁,乾脆將其作為乙個函式使用,反正引數只有乙個即:windowtitle,改為乙個全域性函式(雖然不太好)

如下:void closedisable(char *title) }

這樣如果不想讓cvnamedwindow建立的視窗的關閉按鈕可用,就呼叫一下該函式即可,引數很簡單,就是視窗名字,試了一下,還是不錯的!這樣就不用擔心誤點了叉號關閉視窗後程序無法退出了,因為根本點不了了!哈哈

頁面按鈕禁用與解除禁用

計時器和延時器的概念 計時器 計時器id號 setinterval 函式,毫秒數 每隔指定毫秒數,呼叫一次 函式 clearinterval 計時器id號 停止指定id號的計時器 實際上是銷毀釋放資源了 延時器 延時器id號 settimeout 函式,毫秒間隔 從呼叫開始,等待指定毫秒數後呼叫一次...

vc 禁用無線網絡卡 禁用網絡卡 禁用有線網絡卡

首先和普通的方法一樣,根據guid禁用網絡卡類裝置,只是在禁用時列舉第i塊網絡卡,讀取其裝置資訊,讀到有 wireless 這個串的就認為它是無線網絡卡,就對它使用禁用操作,否則就接著列舉第i 1塊網絡卡,直到都列舉完.下面給出重要結構.drivedemodlg.cpp implementation...

如何禁用 解除禁用 複製 剪下 選擇 全選

希望能夠遮蔽文字框的複製 貼上等動能,或者在某些介面需要解除遮蔽功能。我們需要重寫canperformaction withsender 方法實現 1 禁用所有長按文字框操作 pragma mark 禁用所有長按文字框操作 bool canperformaction sel action withs...