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

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

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

모든 응답(0)
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!