MFC*_*ter 1 c++ mfc parent button sendmessage
我想从子窗口(CDialog)向父窗口(CFormview)发送消息。如果我按下子窗口上的取消按钮,对话框应该退出,程序应该继续执行父窗口上的停止按钮的代码。
void ChildDialog::OnBnClickedCancel()
{
CDTParentView *pButtonWnd = (CDTParentView *)AfxGetMainWnd();
pButtonWnd->OnBnClickedbuttonStop();
CDialogEx::OnCancel();
}
Run Code Online (Sandbox Code Playgroud)
但是这个objore.cpp中有一个错误:
BOOL CObject::IsKindOf(const CRuntimeClass* pClass) const
{
ENSURE(this != NULL);
// it better be in valid memory, at least for CObject size
ASSERT(AfxIsValidAddress(this, sizeof(CObject)));
// simple SI case
CRuntimeClass* pClassThis = GetRuntimeClass(); <------- error
ENSURE(pClassThis);
return pClassThis->IsDerivedFrom(pClass);
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我,有什么问题吗?也许发布一个更好的想法来发送按钮单击的消息?
您的代码实际上并没有发送消息,而是尝试直接调用处理程序。很容易以与 Windows 相同的方式模拟单击按钮,然后您现有的代码将自然地处理它。
CWnd * pMain = AfxGetMainWnd();
CWnd * pButton = pMain->GetDlgItem(ID_STOP_BUTTON);
pMain->PostMessage(WM_COMMAND, MAKEWPARAM(ID_STOP_BUTTON, BN_CLICKED), (LPARAM)pButton->m_hWnd);
Run Code Online (Sandbox Code Playgroud)