MFC中CSTATIC控制項雙擊全屏 雙擊恢復

2021-08-13 10:48:26 字數 1164 閱讀 1679

雙擊全屏方法有兩種

1.雙擊放大的時候調static控制項的父控制代碼serparent讓控制項的父控制代碼變成桌面,然後再提取桌面的解析度用movewindow或者setwindowpos改變控制項大小.恢復成原來的大小時把父控制代碼設定成對話方塊.

2.雙擊放大時調整對話方塊的大小,先把對話方塊變成全屏,再把控制項變成全屏大小,其他控制項可以先隱藏起來.雙擊恢復時先把對話方塊變小,再把控制項變小.再顯示其它控制項.

這裡只簡單講一下第二種方法,因為第一種方法我沒成功

我是使用控制項的事件來完成的雙擊操作.別人的我看有的是使用的過載這兩個函式,

void onlbuttondblclk(uint nflags, cpoint point)

virtual bool pretranslatemessage(msg* pmsg);

但是由於本人太菜,第乙個做的會導致雙擊不是cstatic控制項的地方也會全屏,其他按鈕都點不了的結果,

第二鍋是完全不會做,我做出來的只能全屏不能恢復成原來大小.

下面是我做的步驟:

先到資源檢視裡給這個控制項新增這個雙擊事件函式

然後給static控制項關聯乙個變數control型別的 m_ctrlplaywnd 名字自己定.

void c***xdlg::ons***blclickstaticprv()

else

controlbar(m_bisfullscrean); //這行是全屏時用來隱藏其他控制項的末尾有實現**,因為全屏時其他控制項也會留在螢幕上,如何才能不這麼麻煩全屏呢?求大神教我~~~

}

//獲得原dlg大小位置, 定義crect m_dlg_idd;

getwindowrect(m_dlg_idd);

//電腦螢幕解析度

m_cx = getsystemmetrics(sm_cxscreen);

m_cy = getsystemmetrics(sm_cyscreen);

//controlbar函式裡面

void

ctaskdemodlg::controlbar(bool bfillscreen)

希望對大家有幫助,嘿嘿其實我就是做個筆記自己看

MFC中Cedit控制項

為了讓cedit控制項顯示聊天資訊,像求求一樣展現出來,要提前設定 1 vertical scroll bar 設定為 true,顯示垂直滾動條 2 visible 設定為 true 3 want true 設定為 true 4 multiline 設定為 true 將cedit控制項新增變數為m ...

MFC中的控制項

mfc的各種控制項使用 靜態控制項,包括,靜態文字和分組框,預設id都是idc static.按鈕控制項 原形按鈕,記住要加group屬性.register 宣告為暫存器變數 explicit 禁止自動轉換 mutable修飾的變數在常函式中也可以被修改了 組合框和列表框控制項 控制項類是ccomb...

CStatic控制項的基本使用

cstatic 繼承於 cwnd,是一種特殊的窗體。他可以顯示文字字串 這也是最常用的用法 圖示 指標 cursor 點陣圖和增強 元件.通常靜態控制項不提供輸入和輸出。但是如果把他的屬性設定為 ss notify,他可以通知其父視窗的擊滑鼠事件。一。cstatic 用於顯示文字 如果文字不變,可以...