MFC更新控制項介面 防閃爍 傳送訊息

2021-08-20 19:22:52 字數 778 閱讀 4580

//c++// 自定義訊息號

#define wm_my_message wm_user+1

class cmydlg : public cdialog

begin_message_map(cmydlg, cdialog)

...on_message(wm_my_message, onmymessage)

end_message_map()

...// 使用wparam作為progressctrl的位置引數

lresult cmydlg::onmymessage(wparam wparam, lparam lparam)

void cmydlg::startthread()

uint threadproc(lpvoid p)

由於使用了onctlcolor更新介面編輯框顏色,本來打算當一標誌位清零時在onctlcolor進行更新,開始用了invalidate 來重新整理,但這種重新整理會造成介面顯示的閃爍,如果不用invalidate 當標誌位清零時不會進行顏色更新,於是在該標誌位清零時向編輯框寫入最近的一次值,這樣就會呼叫onctlcolor進行顏色的更新。

順便記錄,如果對編輯框關聯了乙個cstring變數,   

你改變了介面上的值, 想把介面上的輸入更新到cstring變數中, 就需要呼叫一次updatedata(true);   //注意,這裡是true

如果是cstring變數的值改變了, 想更新到介面上, 就呼叫一次updatedata(false)  ;// 注意: 這裡是false

程式設計隨筆 C 自定義控制項防閃爍

using system using system.drawing using system.windows.forms using system.drawing.imaging 用來使用pixelformat,初始化bitmappublic partial class boardcombobox ...

MFC介面控制項自動縮放

重寫onsize void cvehiclesim onsize uint ntype,int cx,int cy 對每乙個控制項進行調整,通常分類實現,如 按比例放大,只是位置發生變化,位置不變 bool callback enumproc1 hwnd hwnd,lparam lparam els...

MFC 介面閃爍若干種解決辦法

介面閃爍原因,可以參考這裡 總結了工作中使用過的如下幾種方法 具體原理就不說了,如果有相應的ui開發經驗 應該很容易懂,不懂的話根據我提供的關鍵字自己搜尋一下具體原理。1 雙緩衝 這個是最基本的 不詳說了 可自己搜尋相關資訊 2 onerasebkgnd 這一種也沒什麼好說的 3 對視窗設定ws c...