我打算用wm_copydata在进程间(不是进程的不同实例)传递消息
但是,调试的时候
我在发送进程中发送消息后(消息的确发出了),接收进程却没有反映
发送进程是dll,
接收进程是一个对话窗口另外在dll里用什么函数获得当前窗口的句柄?
但是,调试的时候
我在发送进程中发送消息后(消息的确发出了),接收进程却没有反映
发送进程是dll,
接收进程是一个对话窗口另外在dll里用什么函数获得当前窗口的句柄?
解决方案 »
- 怎么获取文件夹下的二级文件夹
- 求教:如何动态更新界面状态
- 如何用右键选中树中结点? vc中,没有分了,大家帮忙吧
- 如何在MFC标准动态库中使用定时器Settimer?
- 请教在MFC下用多线程在服务器端建立多个客户端网络连接的问题。请大侠指点。在线!紧急!解决了问题立即送分!感谢!
- 哪位大侠有Base64编解码的封装类啊?
- 一件不愉快的事情
- VC中的CStringArray类的对象不能在Serialize(CArchive& ar)中串行化?
- 巨难的问题:Windows通过何种未公开的消息增删任务栏(SysTabControl32)的按钮?
- 关于dll 的问题
- 在线求救!!!!!!!!!!
- 极难问题,等待高手,急急急!!!!!!!!!!!!!!!
wm_copydata需要发送窗口的句柄
但是如果调用dll的进程恰好没有窗口,是不是就调用不成功?
HWND hWndReceived = FindWindow( "Receiver", NULL );COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strDataToSend.GetLength()+10;
cpd.pData = (void*)str.GetBuffer(cpd.cbData);SendMessage( hWndReceived, WM_COPYDATA, 0, (LPARAM) & cpd );
str.ReleaseBuffer();加入映射宏:BEGIN_MESSAGE_MAP(CMyWnd, CWnd)
//{{AFX_MSG_MAP(CMyWnd)
...
ON_WM_COPYDATA()
...
//}}AFX_MSG_MAP
END_MESSAGE_MAP()...映射函数:BOOL CMyWnd::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
CString strRecievedText = (LPCSTR) (pCopyDataStruct->lpData);
return CMyWnd::OnCopyData(pWnd, pCopyDataStruct);
}