MFC " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

mfc瀹炴椂鏄剧ず鏁版嵁鎬庝箞璁剧疆

扬州沐宇科技
2023-11-03 01:57:53
MFC

鍦?MFC 涓疄鏃舵樉绀烘暟鎹彲浠ラ€氳繃浠ヤ笅鍑犵鏂规硶鏉ヨ缃細

  1. 浣跨敤瀹氭椂鍣細鍦?MFC 涓彲浠ヤ娇鐢ㄥ畾鏃跺櫒鏉ュ畾鏃舵洿鏂版暟鎹苟瀹炴椂鏄剧ず銆傚彲浠ヤ娇鐢?SetTimer 鍑芥暟鏉ュ垱寤轰竴涓畾鏃跺櫒锛屽苟鍦?OnTimer 鍑芥暟涓洿鏂版暟鎹苟鏇存柊鐣岄潰鏄剧ず銆?/li>

渚嬪瓙锛?鍦ㄥご鏂囦欢涓坊鍔犲畾鏃跺櫒 ID锛?/p>

#define TIMER_ID 1

鍦ㄥ垵濮嬪寲鍑芥暟涓垱寤哄畾鏃跺櫒锛?/p>

SetTimer(TIMER_ID, 1000, NULL);

鍦?OnTimer 鍑芥暟涓洿鏂版暟鎹苟鏇存柊鐣岄潰鏄剧ず锛?/p>

void CMyDlg::OnTimer(UINT_PTR nIDEvent)
{
    if (nIDEvent == TIMER_ID)
    {
        // 鏇存柊鏁版嵁
        // 鏇存柊鐣岄潰鏄剧ず
    }
    CDialogEx::OnTimer(nIDEvent);
}
  1. 浣跨敤澶氱嚎绋嬶細浣跨敤澶氱嚎绋嬬殑鏂瑰紡鍙互鍦ㄥ悗鍙扮嚎绋嬩腑鏇存柊鏁版嵁锛屽苟閫氳繃娑堟伅鏈哄埗灏嗘暟鎹紶閫掔粰涓荤嚎绋嬭繘琛屽疄鏃舵樉绀恒€?/li>

渚嬪瓙锛?鍦ㄥ悗鍙扮嚎绋嬩腑鏇存柊鏁版嵁骞跺彂閫佹秷鎭細

void CMyThread::Run()
{
    while (m_bRunning)
    {
        // 鏇存柊鏁版嵁
        // 鍙戦€佹秷鎭?/span>
        PostMessage(WM_MY_MESSAGE, WPARAM(data), LPARAM(0));
        Sleep(1000);
    }
}

鍦ㄤ富绾跨▼鐨勬秷鎭鐞嗗嚱鏁颁腑鎺ユ敹娑堟伅骞舵洿鏂扮晫闈㈡樉绀猴細

BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)
    // 鍏朵粬娑堟伅鏄犲皠
    ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
END_MESSAGE_MAP()

LRESULT CMyDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
    // 鏇存柊鐣岄潰鏄剧ず
    return 0;
}
  1. 鏁版嵁鐩戝惉妯″紡锛氬湪鏁版嵁鍙樺寲鏃惰Е鍙戠浉搴旂殑浜嬩欢锛屽苟鍦ㄤ簨浠跺鐞嗗嚱鏁颁腑鏇存柊鐣岄潰鏄剧ず銆?/li>

渚嬪瓙锛?鍦ㄦ暟鎹被涓畾涔変簨浠讹細

class CMyData
{
public:
    // 瀹氫箟浜嬩欢
    typedef void (CMyData::*UpdateEventHandler)(int);

    void SetUpdateEventHandler(UpdateEventHandler handler)
    {
        m_updateEventHandler = handler;
    }

    void UpdateData(int data)
    {
        // 鏇存柊鏁版嵁
        // 瑙﹀彂浜嬩欢
        if (m_updateEventHandler)
            (this->*m_updateEventHandler)(data);
    }

private:
    UpdateEventHandler m_updateEventHandler;
};

鍦ㄧ晫闈㈢被涓鐞嗕簨浠跺苟鏇存柊鐣岄潰鏄剧ず锛?/p>

BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)
    // 鍏朵粬娑堟伅鏄犲皠
    ON_UPDATE_EVENT(OnUpdateEvent)
END_MESSAGE_MAP()

void CMyDlg::OnUpdateEvent(int data)
{
    // 鏇存柊鐣岄潰鏄剧ず
}

浠ヤ笂鏄嚑绉嶅父瑙佺殑瀹炴椂鏄剧ず鏁版嵁鐨勬柟娉曪紝鍙互鏍规嵁鍏蜂綋鎯呭喌閫夋嫨閫傚悎鐨勬柟娉曟潵璁剧疆銆?/p>

扫码添加客服微信