雖然前面的教程幾乎把所有的知識點都羅列了,但是有很多問題經常在群里出現,所以這里再次整理一下。
需要注意的是,在下面的問題中,除了加上XML屬性外,
主窗口必須繼承自WindowImplBase,才能夠有效果,因為這個類幫我們處理了非常多的常用操作,如果想自己處理,請參見WindowImplBase的代碼。
1、怎么設置標題欄區域?
只需在XML的Window節點加上caption="0,0,0,32"即可,其中32是指從窗口頂部開始,往下32個像素的區域,都設置成標題欄,這樣就可以點擊標題欄拖動窗口,或者雙擊最大化了。
<Window size="800,600" caption="0,0,0,32" >
不過可以發現有些Demo的標題欄文字區域不能拖動,比如360Demo,那是因為它的文字區域用的是Text,這里必須換成Label,或者將控件禁用(添加屬性 enable="false"),否則點擊文字區域無法移動標題欄。
完整代碼請參見【
2013 duilib入門簡明教程 -- 完整的自繪標題欄(8)】
2、怎么讓窗口大小可調整?
只需在XML的Window節點加上sizebox="4,4,4,4"即可,其中4就是指鼠標離邊框還有4個像素的時候,鼠標就會變成箭頭形狀,這時就可以拖拽邊框來改變大小,親們可以改成40試試。如果再加上mininfo="600,400"屬性就可以限制窗口的最小尺寸了,這樣窗口能夠被調整的最小尺寸就是600*400。
完整代碼請參見【
2013 duilib入門簡明教程 -- 完整的自繪標題欄(8)】
3、怎么屏蔽回車鍵、 Esc鍵?
如果按照最前面說的,主窗口繼承自WindowImplBase,那么就已經屏蔽了回車鍵。如果想自行處理,請在子類響應虛函數MessageHandler。
完整代碼請參見【
2013 duilib入門簡明教程 -- 完整的自繪標題欄(8)】
4、怎么設置exe的圖標?
5、菜單怎么在失去焦點后消失? 窗口怎么添加陰影?
請參見【
2013 duilib入門簡明教程 -- 自繪控件 (15)】中的菜單Demo。