雖然前面的教程幾乎把所有的知識點都羅列了,但是有很多問題經常在羣裏出現,所以這裏再次整理一下。
需要注意的是,在下面的問題中,除了加上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的圖標?
請參見【2013 duilib入門簡明教程 -- 其他 (18)】
5、菜單怎麼在失去焦點後消失? 窗口怎麼添加陰影?
請參見【2013 duilib入門簡明教程 -- 自繪控件 (15)】中的菜單Demo。
6、爲什麼編譯不通過?
請參見【2013 duilib入門簡明教程 -- VS環境配置(2)】