MFC自定义消息

1.消息申明

#define WM_CUTTERSTART                  (WM_USER+1)  //多了个分号
#define WM_CUTTERSTOP                   (WM_USER+2)
#define WM_CUTTERSTATUS                 (WM_USER+3)

2.添加消息映射(BEGIN_MESSAGE_MAP  END_MESSAGE_MAP之间)

    ON_MESSAGE(WM_CUTTERSTART, OnCutterStart)
    ON_MESSAGE(WM_CUTTERSTATUS,OnCutterStatus)
    ON_MESSAGE(WM_CUTTERSTOP,OnCutterStop)

3消息处理函数

LRESULT  CFileApartDlg::OnCutterStart(WPARAM wParam, LPARAM lParam)
{
    int nTotalFiles = wParam;
    m_Progress.SetRange(0, nTotalFiles);
    UIControl();
    return 0;
}

LRESULT  CFileApartDlg::OnCutterStatus(WPARAM wParam, LPARAM lParam)
{
    int nCompleted = (int)lParam;
    m_Progress.SetPos(nCompleted);

    CString s;
    s.Format(_T("完成%d个文件"), nCompleted);
    GetDlgItem(IDC_STATUSTEXT)->SetWindowText(s);
    return 0;
}

LRESULT  CFileApartDlg::OnCutterStop(WPARAM wParam, LPARAM lParam)
{
    int nErrorCode = wParam;
    switch (nErrorCode)
    {
    case CFileCutter::exitSuccess:
        MessageBox(_T("操作成功完成"),_T("完成"));
        break;
    case CFileCutter::exitSourceErr:
        MessageBox(_T("源文件出错"), _T("失败"));
        break;
    case CFileCutter::exitDestErr:
        MessageBox(_T("目标文件出错"), _T("失败"));
        break;
    case CFileCutter::exitUserForce:
        MessageBox(_T("用户终止"), _T("失败"));
        break;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/cteng-common/p/user-definedmessage.html