C++ Custom Control控件 向父窗体发送对应的消息

向父窗体发送消息 ,这里只讲发送 WM_NOTIFY  消息, 其它消息是相同的

在 控件中的某个函数中 设置发送消息的程序

  首先定义一个WM_NOTIFY消息的专用结构.

NMHDR nm;
nm.code = 123456;  // 这里是消息的区别代码
nm.hwndFrom = m_hWnd;//这是控件的HWND句柄
nm.idFrom = GetDlgCtrlID();//这是得到的对话框的ID
CWnd*  pWnd;
    pWnd = GetParent();  //得到父窗体 窗口
    if (pWnd != NULL)
    {
        pWnd->SendMessage(WM_NOTIFY, nm.idFrom, (LPARAM)&nm);  //向父窗体发送消息
    }

这样就可以将消息发送到父窗体了.

在父窗体的代码中,只需要处理WM_NOTIFY消息就可以了,也就是实现on_notify的虚函数

BOOL CMyControlDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{

    if ((UINT)wParam == IDC_CUSTOM2)
    {
        AfxMessageBox(_T("成功"));
    }
    return CDialogEx::OnNotify(wParam, lParam, pResult);
}
 

IDC_CUSTOM2  这是任何一个资源都会有的一个ID号

可以通过下面的方式查到

QQ五笔截图未命名

QQ五笔截图未命名

原文地址:https://www.cnblogs.com/lujin49/p/4580811.html