c++ - MFC ActiveX 工程中,自定义消息实现有个的问题找不到。
黄舟
黄舟 2017-04-17 11:46:48
0
0
613

在编写 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);
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

Antworte allen(0)
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!