search

Home  >  Q&A  >  body text

c++ - MFC ActiveX 工程中,自定义消息实现有个的问题找不到。

在编写 OCX 的过程中,因为希望线程执行结束后给主线程发送一个消息,但是总是没反应。

1. 消息定义了

cpp    #define MSG_FIRE (WM_USER+100)

2. Message maps

*.h

cpp        // Message maps
        //{{AFX_MSG(COcxFileCtrl)
        afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
        afx_msg BOOL OnQueryEndSession();
        afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
        //}}AFX_MSG
        afx_msg LRESULT OnMsgFire(WPARAM wParam, LPARAM lParam);
        DECLARE_MESSAGE_MAP()

*.cpp

cpp// Message map
BEGIN_MESSAGE_MAP(COcxFileCtrl, COleControl)
        //{{AFX_MSG_MAP(COcxFileCtrl)
        ON_WM_HELPINFO()
        ON_WM_QUERYENDSESSION()
        ON_WM_ACTIVATE()
        //}}AFX_MSG_MAP
        ON_MESSAGE(MSG_FIRE,OnMsgFire)
        ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
END_MESSAGE_MAP()

3. 函数体

cpp// COcxFileCtrl message handlers
LRESULT COcxFileCtrl::OnMsgFire(WPARAM wParam, LPARAM lParam)
{
        logForPrjEx("%d,fire !",__LINE__);
        FireOptDone("287");
        return 0;
}

4. 调用,由于多线程调用不了,尝试直接写在对象的方法中也没效果。百思不得骑姐。

cpp::PostMessage(this->m_hWnd,MSG_FIRE,0,0);
黄舟黄舟2805 days ago639

reply all(0)I'll reply

No reply
  • Cancelreply