MFC对话框应用,没有菜单栏的无框界面设计,修改了类名想要发送ONCOPYDATA消息。结果调试的时候收不到消息,但是在release里打开应用可以收到消息。
在InitInstance里修改了类名,也在资源视图里修改了model为false
WNDCLASS wc;
// 获取窗口类信息。MFC默认的所有对话框的窗口类名为 #32770
::GetClassInfo(AfxGetInstanceHandle(), _T("#32770"), &wc);
// 改变窗口类名
wc.lpszClassName = _T("PC");
// 注册新窗口类,使程序能使用它
AfxRegisterClass(&wc);
//发送消息的部分
HWND REC = ::FindWindow(L"PC", NULL);
//HWND REC = ::FindWindow(NULL, L"人脸识别");
if (REC == NULL)
{
//::AfxMessageBox("没有找到该窗口");
return;
}
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strlen(data.c_str());
cpd.lpData = (void*)data.c_str();
LRESULT err = ::SendMessage(REC, WM_COPYDATA, NULL, (LPARAM)&cpd);
结果调试的时候 程序无法收到消息,进入不了OnCopyData函数;但是在release里打开应用可以收到消息进入后续程序。
我猜想是不是修改类名导致MFC所有窗口类名都修改成一样了,导致调试的时候发送的消息发送不到对应的窗口?
有知道原因的吗,我想在调试的时候触发消息函数。