1. 程式人生 > >duilib中獲取的控制元件的位置或者大小不對的可能的原因

duilib中獲取的控制元件的位置或者大小不對的可能的原因

duilib初學者可能總會有這樣的疑問:為什麼我獲取的控制元件位置或者大小和我想象中的不一樣?

位置不一樣可能的原因:

1.xml中直接配置的位置和實際顯示之後的位置確實是不一樣的.xml中設定的位置(相對或絕對)都是基於他的父控制元件左上角.而實際顯示之後獲取的位置,是基於整個客戶區的左上角;

2.控制元件的位置的計算都是在WM_PAINT訊息處理中進行的,在這個訊息處理之前,獲取到的位置都是舊的;

大小不一樣可能的原因:

1.參考上面第2條,大小的計算也是在WM_PAINT訊息處理中進行的;

2.有其他你忽略的干擾項.比如子控制元件採用相對佈局時父控制元件有inset,或者父控制元件的大小有限;

3.可能只是因為其他控制元件的遮蓋或者超出了父控制元件而不顯示,看起來大小不對;