mfc控件位置調整和座標確定

在mfc工程中控件或者窗口位置的調整是經常遇到的,特別是基於對話框的工程。位置的調整包括座標、長度和寬度的變化,一般在窗口類的OnSize函數中實現。控件位置的調整涉及的函數有:GetWindowRect()、ScreenToClient()、GetClientRect()、MoveWindow()或SetWindowPos(),功能意義如下:


GetWindowRect():獲得窗口在屏幕上的矩形座標,調整控件位置時必須首先獲得該屏幕座標;


ScreenToClient():轉換屏幕座標到客戶區座標,如果爲子窗口,轉換後坐標爲相對於父窗口的座標,若爲獨立窗口,轉換後客戶區左上座標爲(0,0);調整子窗口時這一步也是必須的;


GetClientRect():獲得窗口客戶區座標,左上座標永遠爲(0,0);


MoveWindow():調整控件到指定位置;


SetWindowPos():調整控件的位置,該函數使用更靈活,多用於只修改控件位置而大小不變或只修改大小而位置不變的情況:


控件位置調整涉及的參變量有:主窗口的cx、cy座標、參考點座標。相對於調整位置時調用的函數,變量稍許複雜些。cx、cy座標爲主窗口的寬和高,有OnSize的參數給出,爲窗口控件調整提供了變化的範圍,所有的控件爲了能夠正常顯示都不能超出這個範圍。其實在開發過程中較難和重要的是參考控件的選擇,其位置相對於主窗口來說必須好確定。常用的策略:


1.  選擇主窗口上位置不隨窗口大小變化的控件爲參考;


2.  選擇主窗口上控件的寬或者高固定的控件;


3.  選擇與主窗口滿足固定座標關係的控件 ;


4.  選擇主窗口上控件位置或者高寬容易確定的控件。


以上四種策略可在實際開發中作爲參考!不管遇到什麼的情況,一定要清楚:選則一個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章