好多人問這個問題,我也是剛學會,三步解決mfc視窗變動後控制項的大小
一 在標頭檔案中定義 point old;//存放對話方塊的寬和高。
oninitdialog() 中計錄寬和高。
crect rect;
getclientrect(&rect); //取客戶區大小
old.x=rect.right-rect.left;
old.y=rect.bottom-rect.top;
二 新增 wm_size訊息:
if(ntype==size_restored||ntype==size_maximized)//窗體大小發生變動。處理函式resize
三 新增reseze函式
void cmy2610dlg::resize()
old=newp;
}注:若只要最大化,不用拖動可以不用設定下面的
需要拖動的需要設定
中文版:右擊對話方塊屬性--樣式--邊框(調整大小)
英文版:styles--border--選擇risizing,
注:brpoint.y = long(oldbrpoint.y *fsp[1]); //高度不可讀的控制項(如:combbox),不要改變此值.
這點沒太說清楚,遍歷控制項,如果遍歷到combbox的時候,加判斷,不要執行這句**,也就是不要試圖改變brpoint.y的值,否則的話,combbox內就會沒內容,困擾了好長時間才找到原因,是因為combbox的高度不可讀。
分享到:
控制項隨著視窗大小變化
好多人問這個問題,我也是剛學會,三步解決mfc視窗變動後控制項的大小 一 在標頭檔案中定義 point old 存放對話方塊的寬和高。oninitdialog 中計錄寬和高。crect rect getclientrect rect 取客戶區大小 old.x rect.right rect.left...
如何讓窗體大小隨著控制項的大小變化而變化
2014 01 20 14 25 form的autosize true,formborderstyle fixedsingle tablelayoutpanel及其裡面的容器的dock fill,autosize true label中的文字比較貼著窗體邊緣時可以通過padding屬性來調整 因定寬...
隨著窗體大小變化改變控制項的大小和字型
public struct formsizechange float mfn float form.size.height formsizechange.currentsize.height 放大率 width convert.toint32 float form.size.width formsi...