MFC 關於工具欄最大最小化的優化

2021-10-08 08:43:51 字數 478 閱讀 1394

問題

mfc設計介面新增工具欄之後,最大化最小化頻繁操作,會導致最後工具欄會被遮擋,這是個隱藏的bug,這是由於使用的網上使用最多的resize函式導致的,其實不難理解,控制項邊緣是浮點型,通過除乘操作必然會丟失精度,操作越多,誤差就越大了,如下:

void ***dlg::

resize()

old = newp;

解決辦法

既然這樣我們就自己每個控制項單獨計算,比如說,我現在只有乙個工具欄,那麼我只讓這個工具欄的長度適配最大視窗,寬度保持不變,那麼就可以如下實現:

void ***dlg::

layout()

else

return

;invalidate()

;}

總結

控制項適配視窗最好不要使用乘除操作;

每個控制項的改變最好根據實際視窗的長寬來進行加減適配。

MFC的最大化,最小化,關閉

最大化 最小化和關閉按鈕是視窗中最主要的元素。首先要說明,說他們是按鈕其實是不準確的,按鈕是一種視窗,而這三個元件根本就不是視窗,而是乙個視窗常見的組成部分。出於習慣的原因,這裡還是稱呼他們為按鈕。這三個按鈕是否顯示似乎只能在視窗建立是決定。首先,要顯示這三個按鈕,視窗必須有標題條和系統選單,沒有標...

MFC 具有提示功能的工具欄

在文件 檢視結構的應用程式中,預設情況下,當滑鼠在工具欄按鈕上停留片刻,會出現乙個工具提示條。那麼在基於對話方塊的應用程式中能夠實現該功能嗎?執行本案例,將滑鼠移至工具欄上的某一按鈕上,即可看到該工具按鈕的提示資訊,效果如下圖所示。系統環境 windows 10 開發環境 visual studio...

MFC隱藏 顯示最大化 最小化按鈕

idd testmfc dialog dialogex 0,0,320,200 style ds shellfont ws popup ws visible ws caption ws thickframe ws sysmenu ws minimizebox ws maximizebox 隱藏最大化...