這樣的程式主要實作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]