精华内容
下载资源
问答
  • // CMsgDlgDlg 对话框 class CMsgDlgDlg : public CDialog { // 构造 public:  CMsgDlgDlg(CWnd* pParent = NULL); // 标准构造函数 // 对话框数据  enum { IDD = IDD_MSGDLG_DIALOG };  protecte

    #include "AchiveMsg.h"


    // CMsgDlgDlg 对话框
    class CMsgDlgDlg : public CDialog
    {

    private:
     CAchiveMsg  dlg;
     
    };

    //以下是发送消息的按钮的实现
    void CMsgDlgDlg::OnBnClickedMessage()
    {
     // TODO: 在此添加控件通知处理程序代码
     if (!m_bCanSendMsg)
     {
      dlg.Create(IDD_DIALOG_ACHIVE,this);       //创建对话框
     }
     m_bCanSendMsg = TRUE;                         //标记对话框已被创建

     dlg.ShowWindow(SW_HIDE);                //显示对话框

     WPARAM wParam = CMSG;                         //宏定义的值,可以改变,可以用来标识按钮已点击
     ::PostMessage(dlg.GetSafeHwnd(), WM_MY_MSG,wParam,0);    //传送消息

    }

    // 接受消息 对话框的头文件和.cpp文件

    #define WM_MY_MSG (WM_USER + 100)             //宏定义消息类型
    #define CMSG 1001                            //标识一个数值,无特别意义

    class CAchiveMsg : public CDialog
    {
     

    protected:

     afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
    };

     

    BEGIN_MESSAGE_MAP(CAchiveMsg, CDialog)
     ON_MESSAGE(WM_MY_MSG, OnMyMessage)                         //注意别忘记添加这一句!!!
    END_MESSAGE_MAP()

    //以下是接受的消息要实现的功能


    LRESULT CAchiveMsg::OnMyMessage(WPARAM wParam, LPARAM lParam)
    {
     if (wParam == CMSG)
     {
      GetDlgItem(IDC_ACHIVE_MSG)->SetWindowText("A message form other dlg..");
     }
     return 0;
    }

    一个简单的例子放在资源里可以下载看看、、、、、

     

    展开全文
  • MFC教程_对话框、控件绘图、消息数据库,详细的介绍了MFC的窗口函数的编程,希望对大家有用
  • 第一步,在resource.h中添加 static UINT WM_...第二步,在消息接受的窗体,对话框的类的头文件.h添加 public: afx_msg LRESULT OnMsgReceive(WPARAM wParam, LPARAM lParam); 第三步,在消息接受的窗体,对话框...

    第一步,在resource.h中添加  static UINT WM_MSG_MYMSG = RegisterWindowMessage(_T("msg"));

    第二步,在消息接受的窗体,对话框的类的头文件.h添加 

    public:
        afx_msg LRESULT OnMsgReceive(WPARAM wParam, LPARAM lParam);

    第三步,在消息接受的窗体,对话框的类的实现文件.cpp添加

    LRESULT 你的对话框类::OnMsgReceive(WPARAM wParam,LPARAM lParam)
    {
       //要做的事,其中 wParam 和  lParam 是消息发送过来的参数,用自定义指针强转一下就可以得到传递的值了
        return 0;
    }

    第四步,在MESSAGE_MAP中添加映射

    BEGIN_MESSAGE_MAP(你的对话框类, CDialogEx)
        ON_REGISTERED_MESSAGE(WM_MSG_MYMSG,OnMsgReceive)  //为消息添加映射函数
    END_MESSAGE_MAP()

    第五步,在你想发送消息的地方发送消息

    void 子类对话框::Onxxx(...)
    {

        int r=5;

        WPARAM a=(WPARAM)this;//子窗体的本身的实例指针
        LPARAM b=(LPARAM)&r;  //一个int

        GetParent()->SendMessage(WM_MSG_MYMSG,a,b);

    }

    至此,子窗体向父窗体消息发送已经完成

     

    展开全文
  • MFC两个对话框之间的消息传输

    千次阅读 2018-04-12 15:30:10
    MFC项目中有时会涉及到两个对话框之间进行消息传输的事情。这里需要用到SendMessage()函数和PostMessage()函数。这俩函数的区别可自行百度。这里我是使用的是SendMessage()函数。》两个对话框之间进行消息传输分为...

    在MFC项目中有时会涉及到两个对话框之间进行消息传输的事情。这里需要用到SendMessage()函数和PostMessage()函数。

    这俩函数的区别可自行百度。这里我是使用的是SendMessage()函数。

    》两个对话框之间进行消息传输分为两种情况:1.子对话框对主对话框发送消息  2.两个子对话框之间发送消息。

    先介绍 :1》子对话框对主对话框发送消息

    子对话框“Dialog”向主对话框“消息发送”发送消息。


    首先在子对话框和主对话框的 公共头文件.h 中加 #define WM_MyMessage WM_USER+100    给消息设置一个ID。

    其次在子对话框中要发送消息的地方写入代码::SendMessage(this->GetParent()->m_hWnd,WM_MyMessage,0,0);如果有内容传输,可以通过第三、四的参数传输。


    之后在主对话框的头文件中加入消息接收函数:afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);//自己添加的消息函数


    之后在主对话框的.cpp文件中写入代码,写入的位置如下图: ON_MESSAGE(WM_MyMessage, &C消息发送Dlg::OnMyMessage)。  其中参数:“WM_MyMessage ”是我们之前在公共头文件中定义的宏;“C消息发送Dlg” 是我的主对话框的类;“ OnMyMessage”是我们上图中定义的消息函数。这样我们就将函数和消息ID绑定到一块了。


    下一步是在主对话框的.cpp文件中给出OnMyMessage()函数的实现。


    这样子对话框通过SendMessage()函数就能向主对话框发送消息,主对话框会在afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);函数中接收到消息。


    ///--------------------------------------------------------------

    2》两个子对话框之间发送消息

    两个子对话框之间发送消息的处理和上边的大致一样,区别是在SendMessage()函数方面。因此只写出这方面的代码:

    “子对话框1”向“子对话框2”发送消息:在需要传送消息的地方写下面的SendMessage()函数。


    图中的"C消息发送Dlg" 是主对话框的类;m_pDlg2是在主对话框类中定义的一个“子对话框2”的对象。

    注:两个子对话框进行消息传输时,这两个对话框需同时存在,否则会报错。(可将两个对话框都设置成非模态)。


    可参考:http://blog.sina.cn/dpool/blog/s/blog_8f479b390102xa4n.html

    展开全文
  • 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。 点击模态对话框中的OK按钮,模态对话框会被销毁。 创建一个模态对话框的代码如下所示: //创建一个模态对话框...
  • MFC开发的对话框

    2015-10-20 21:11:20
    MFC开发的一个对话框,能够接收数据和发送,进行消息间的对话与传递
  • MFC 两个对话框直接的消息传递

    千次阅读 2017-05-10 14:56:51
    A发送对话框代码: 定义宏:#define WM_MyMessage WM_USER+1000; 消息映射:ON_COMMAND(ID_FILE_RECONNECT, &CDataBaseTool_UIDlg::OnFileReconnect) init_connect *m_init_connect_msg; //声明一个B接受...

    A发送对话框代码:


    定义宏:#define WM_MyMessage WM_USER+1000;


    消息映射:ON_COMMAND(ID_FILE_RECONNECT, &CDataBaseTool_UIDlg::OnFileReconnect)


    init_connect *m_init_connect_msg;   //声明一个B接受对话框指针
    void SetInit_connect(init_connect &init){ m_init_connect_msg = &init; }   //初始化指针

    afx_msg void OnFileReconnect();            //消息响应


    void CDataBaseTool_UIDlg::OnFileReconnect() //函数实现
    {
    m_init_connect_msg->SendMessage(WM_MyMessage, 1, 1);
    }


    如果B是A的父窗口可以之前:

    //HWND hWnd = AfxGetApp()->GetMainWnd()->GetSafeHwnd(); //第一种
    ::SendMessage(::GetParent(m_hWnd), WM_ParsaveDlg_event, a, b); //第二种


    B接受对话框代码:


    afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);   响应函数


    ON_MESSAGE(WM_MyMessage, OnMyMessage) 消息映射


    具体实现:

    CDataBaseTool_UIDlg dlg;
    dlg.SetInit_connect(*this);//一定要初始化;
    INT_PTR nResponse = dlg.DoModal();

    展开全文
  • MFC对话框有两种形式,一个是模态对话框(model dialog box...在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。点击模态对话框中的OK按钮,模态对话框会被销毁...
  • MFC 非模态对话框

    千次阅读 2010-07-10 01:23:00
    MFC 非模态对话框 c/c++/c#语言相关2009-11-04 10:55:49阅读455评论0字号:大中小 MFC非模态对话框的创建:   用MFC创建非模态的对话框,和模态对话框创建方式不同,模态对话框用 dlg.DoModel()...
  • 创建模态对话框:打开资源视图->插入对话框,如图所示: 然后右键属性添加类,如图所示: 然后在主对话框cpp文件中包含它的头文件,如图所示 然后在打开模块对话框按钮中写代码 //创建模态对话框 CModal d;//这...
  • MFC中有两种类型的对话框: 模态 对话框和非模态 对话框。 模态 对话框是指当其显示时,...在程序运行时,若出现了模态对话框,那么主窗口将无法发送消息,知道模态对话框退出才能发送。点击模态对话框的OK按钮,模
  • 消息机制是windows的典型运行机制,在MFC中有很多的消息如WM_BTN**等。但是在有些情况下我们需要自定义... 建立MFC工程,如基于对话框的应用程序,Test。2. 在资源中添加要处理的消息的值,即在CTestDlg.h中添加 如下
  • MFC中模态对话框详解

    千次阅读 2016-11-21 12:03:25
    在涉及GUI程序开发的过程中,常常有模态对话框以及非模态对话框的概念模态对话框:在子界面活动期间,父窗口是无法进行消息响应。独占用户输入 非模态对话框:各窗口之间不影响主要区别:非模态对话框与APP共用消息...
  • MFC非模态对话框使用详解

    千次阅读 2012-09-25 17:23:57
    MFC非模态对话框的创建: 用MFC创建非模态的对话框,和模态对话框创建方式不同,模态对话框用 dlg.DoModel()调用,而非模态对话框要用create函数创建调用。 /*假设IDD_TEST_DLG为已经定义的对话框资源的ID...
  • MFC中的对话框

    2013-06-03 00:09:46
    对话框 对话框的种类: 模态对话框和非模态对话框, 都有一个相应的基类:CDialog 模态对话框的创建:dlg.DoModal(); 非模态对话框的创建: Create(); 另外还需要ShowWindow(SW_SHOW)显式对话框。 模态对话框中...
  • MFC模态对话框和非模态对话框

    万次阅读 多人点赞 2011-08-31 15:54:21
    MFC对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box)。 一、模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法...
  • MFC非模态对话框实例

    2013-01-29 14:46:32
    【转载】MFC非模态对话框实例  2012-06-17 16:21:41| 分类: C++/MFC | 标签: |字号大中小 订阅 实例目的 在Windows环境中,对话框是一种常用的输入输出手段。对话框有两种类型,非...
  • [size=large]MFC两个对话框SendMessage通信[/size] 用MFC做Demo时需要两个对话框进行通信,两个对话框的关系如下: 1.CDialog
  • MFC非模态对话框

    2015-05-15 23:14:13
    一、非模态对话框的创建CYourDlg *pDlg = new CYourDlg(); pDlg->Create(IDD_DLG_YOUR, this); pDlg->ShowWindow(SW_SHOW);二、非模态对话框的销毁1.在非模态对话框中重载OnOK和OnCancel,调用DestroyWindow。...
  • class CMessagerDialog : public CWnd { ...//使用时,直接调用函数发送消息即可 msgdlg->SendMessage(WM_APP + 5, 0, 0); 如果主程序中无DoModal,可以手动调用msgdlg->RunModalLoop();
  • MFC 设置对话框背景图片2010年08月06日 20:12MFC 设置对话框背景图片 基于VC6.0 (一) 在对话框类名上右键àAddWindows Message Handlerà为消息WM_PAINT添加消息处理函数。 (二) 为OnPaint函数添加以下代码...
  • MFC无标题对话框移动

    2020-03-31 14:28:57
    代码: void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: 在此添加消息... // 发送移动消息 // PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKEWPARAM(point.x, point.y)); CDialog::OnLB...
  • 2020.10 一、MessageBox和定时器TIMER MessageBox是Win32 API全局函数,必须指定标题和样式。共有4个参数。...在MFC中,可使用全局API函数::MessageBox(NULL,………),子程序会被暂时中断在这个Messag..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,274
精华内容 6,109
关键字:

mfc发送消息对话框