中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

wxWidgets第五課 EVT_SIZE窗口修改事件

發布時間:2020-08-19 14:22:58 來源:網絡 閱讀:1831 作者:fengyuzaitu 欄目:系統運維

說明

    當父窗口的大小發生改變的時候,父窗口的OnSize函數優先調用,然后遍歷子窗口的OnSize函數。在自定義控件,并且實現隨著父窗口的大小,進行伸縮變換,可以創建一個比例尺因子,根據父窗口當前的大小,在父窗口的OnSize函數中調用子控件的兩個方法進行子控件大小和位置的調整:

SetPosition設置子控件的位置

SetClientSize設置子控件的大小


問題

為了能夠實現界面的拉伸,當窗口發生改變的時候,發出重繪事件(OnSize會調用OnPaint)進行界面的刷新,可以看到在快速伸縮窗口的情況下,非常明顯看到閃爍的情況。


解析

在系統設置最佳的外觀性能要求,拉伸界面的邊框,會出現虛擬邊框,等到鼠標彈起的時候,才會重新渲染界面,避免了閃爍。在其他的外觀選項下,拉伸界面邊框的時候,實時的渲染,會產生閃爍現象


真正自定義渲染

目前想到的一個解決方案:當鼠標按下拖動窗口的時候,并不進行窗口的重繪,而是等到鼠標彈起的時候,才進行重繪,這里就涉及到一個難點,該在什么地方關聯鼠標彈起事件EVT_LEFT_UP,并且需要實時控制邊框的渲染



注意

    當父控件銷毀的時候,也會調用子控件的析構函數,對子控件進行銷毀


兩次進入OnSize函數的問題

    啟動程序,在準備進入到主界面,渲染自定義的控件時候,檢測到有兩次進入到OnSize函數,導致界面在進入的時候,渲染了兩次,目前不清楚是什么地方發送了兩次WM_ONSIZE消息,導致該問題


懷疑方向

    1 是否是設置了父窗口指針:證實必須提供一個父窗口的指針

    2 是否是設置了擴展屬性WX_EXPAND:沒有理由根據


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪泽县| 措美县| 大理市| 瓦房店市| 铜鼓县| 云霄县| 筠连县| 新密市| 九台市| 天峻县| 晋江市| 大冶市| 五常市| 唐河县| 神木县| 哈巴河县| 舒城县| 鲜城| 通许县| 新宁县| 沅江市| 合山市| 榆林市| 富宁县| 梓潼县| 达拉特旗| 南宁市| 区。| 吉安县| 亳州市| 天水市| 城市| 鹤壁市| 汾阳市| 镇原县| 南丹县| 兰溪市| 九寨沟县| 十堰市| 临洮县| 宁波市|