天天看點

mfc通過消息傳遞參數進行程式間通信

這樣的程式主要實作windows平台下兩個應用程式間的通信。

最簡單的單元分為兩個部分,一個是引用的程式,一個是被引用的程式。

一、如果引用他人,需要傳遞參數找到運作的程式,并且傳遞消息過去

void CShellExeDlg::OnBnClickedButton1()
{
    // 如果沒有打開程式,則打開程式。然後傳遞消息
    CWnd *pWnd=CWnd::FindWindow(NULL,_T("幾何資料(機關毫米)"));  //找到運作的程式
    if(pWnd==NULL)
    {
        AfxMessageBox((CString)"接收程式沒有運作!");
        return ;
    }
    CString str;
    GetDlgItemText(IDC_EDIT2,str);   
    pWnd->SendMessage(WM_SETTEXT ,0,(LPARAM)(LPCTSTR)str);   //傳遞帶參數消息過去
}      

二、被他人引用,需要讀取參數,包括自定義消息隐射和變現相應的處理過程

ON_MESSAGE(WM_SETTEXT, &CDialogModify::OnSettext)      
afx_msg LRESULT CDialogModify::OnSettext(WPARAM wParam, LPARAM lParam)
{
    char str[ 256 ];
    wsprintf( str, "%s", (char*) lParam );
    Mat src = imread(str);
    if (src.rows > 0 )
    {
        CStoneGuideGUIView* fatherview = (CStoneGuideGUIView*)m_pView;
        fatherview->OpenImgFromMsg(str);
    }
    return 0;
}      

這裡主要采用的是WM_SETTEXT,它主要傳遞TEXT的,而WM_COPYDATA消息則更多是傳遞資料的。

 目前方向:圖像拼接融合、圖像識别

聯系方式:[email protected]

繼續閱讀