精华内容
下载资源
问答
  • MFC不同窗口之间传递数据

    千次阅读 2011-04-22 22:43:00
    MFC不同窗口之间实现传递数据

    问题的由来:

             最近在学习串口通信编程,参考的例子大多数都是在一个对话框中同时完成对串口的配置及数据收发的功能。这种方式不太适合于写自己的应用程序(会使得程序界面比较混乱,无法突出程序的重点),因此想让串口的参数配置在一个独立的对话框中进行设置,而后在主程序窗口实现串口通信的消息循环。这样就涉及到了两对话框数据的传递的问题。上网查阅了相关资料根据自己的使用需求和理解整理一番。

    实现方法:

    class CDlg1: public CDialog

    {

    public:

    int x;

    ……

    }

     

    class CDlg2: public CDialog

    {

    public:

    int y;

    void setdata(CDlg1 dlg1)

    {

    // 实现数据的传递

    }

    ……

    }

    方法一:通过成员函数实现不同对话框之间数据的传递

     

    class CmyView: public CView

    {

    CDlg1 dlg1;          // 类中声明欲进行数据传递的对话框对象

    CDlg2 dlg2;

     

    void XXXXX()

    {

    dlg1.DoModal();   // 建立对话框1,重写OnInitial()函数

                      // OnInitial()函数中完成对话框1数据初始化工作

    }

    void YYYYY()

    {

    dlg2.y = dlg1.x;  // 传递数据

    dlg2.DoModal();

    }

    }

     

    方法二:通过类的成员变量实现数据的传递(适用于参数较少的情况)

    class CmyView: public CView

    {

    int z;

    void XXZZ()

    {

    CDlg1 dlg1

    dlg1.DoModal();

    z = dlg1.x;       // 将对话框1数据保存于类中的成员变量中

    }

    void ZZYY()

    {

    CDlg2 dlg2;

    dlg2.y = z;       // 将成员变量值赋予对话框2对应变量

    dlg2.DoModal();

    }

    }

     

    方法三:将对话框1对象作为参数传递给对话框2的成员函数,在成员函数中实现参数的传递

    class CmyView: public CView

    {

    void DataExChange()

    {

    CDlg1 dlg1;

    cDlg2 dlg2;

    if(dlg1.domodel == idok)

    {

    dlg2.setdata(dlg1); // dlg1作为参数给dlg2用什么取什么

    }

    }

    }

    还可以传递对象的一个指针或引用。

     

    展开全文
  • 使用VS2015写的MFC窗口与父窗口之间消息传递,可以直接执行
  • MFC窗口之间消息传递

    千次阅读 2016-08-13 09:31:15
    窗口消息传递 http://bbs.bccn.net/thread-348167-1-1.html 声明:本文非本人所写,本文已经写在本人CSDN博客里。本原来源于一篇英文文章的翻译。  消息(Message)是窗口间通信的最重要的方式之一。传统...
    窗口消息的传递
    http://bbs.bccn.net/thread-348167-1-1.html
    声明:本文非本人所写,本文已经写在本人CSDN博客里。本原来源于一篇英文文章的翻译。

            消息(Message)是窗口间通信的最重要的方式之一。传统的程序从main()函数处开始一行一行的执行直到退出,但是窗口的概念则不同。窗口对事件(event)进行响应,这种事件称为消息。事件由程序本身、其他程序或系统程序产生,这些事件又产生消息。鼠标移动、按键等都会产生事件。消息分为两种即窗口消息和线程消息。这里只分析窗口消息。

             所谓的窗口消息,大致上,必须传递给一个窗口。所有的消息都存储在消息队列(Message Queue)中。消息队列用于在应用程序之间传递消息。

            从消息队列中捕获消息的方式是消息循环(Message Loop)。一旦一个消息被某个窗口接受,消息循环即分配此消息并调用一个消息句柄,有一个由程序员设计的函数用于处理此消息。

            消息循环在接收到WM_QUIT消息后终止,并指示程序结束。当用户选择File菜单下的Exit子菜单、点击关闭按钮、按下alt+F4时均会产生WM_QUIT消息。窗口有缺省的消息句柄用来进行缺省行为。例如,按钮(Button)派生于窗口类,当按钮接收到WM_PAINT时会重新绘制按钮,当左击按钮时会接收到WM_LBUTTONDOWN并自绘按下的按钮形态。

            窗口定义了很多类型的消息,他们通常以“WM”开头。例如WM_SIZE,当窗口大小发生变化时发送此消息。在MFC中,用On代替“WM_”,例如WM_SIZE在MFC中表示为OnSize。

            一个消息有两个参数,这两个参数携带该事件的一些信息。每个参数均是32位宽的,lParam和wParam。有的时候消息也会返回一个值给发送该消息的窗口。

            MFC自动的生成了消息循环所需的代码,WinMain调用的CWinApp成员函数提供消息循环并将这些消息送给各个窗口。需要我们做的只是创建消息句柄,这可以借助于ClassWizard完成。下面即是一个响应WN_CLOSE消息的例子。
    程序代码:
    view plaincopy to clipboardprint? void CAboutWindow::OnClose() 

         int Ret = MessageBox(_T( " Are you sure you want to close the window? "), 
                             _T( " Close Window? "), MB_YESNO); 
         if(Ret == IDYES){ 
             //  The User is sure, close the window by calling the base class 
            
    //  member 
            CWnd::OnClose() 
        } 
         else
             //  The user pressed no, screen out the message by not calling 
            
    //  the base class member 
     
            
    // Do nothing 
        } 

    void CAboutWindow::OnClose()
    {
         int Ret = MessageBox(_T( " Are you sure you want to close the window? "),
                             _T( " Close Window? "), MB_YESNO);
         if(Ret == IDYES){
             //  The User is sure, close the window by calling the base class
            
    //  member
            CWnd::OnClose()
        }
         else{
             //  The user pressed no, screen out the message by not calling
            
    //  the base class member

            
    // Do nothing
        }
    }
            为了窗口间的通信,程序员需要自己发送消息。由于消息均是窗口发送的,所以需要一个C++窗口指针。可以通过CWnd::FindWindow、GetDlgItem()、GetParent()等获得窗口指针。CWnd类有一个SendMessage()成员函数用于发送消息给他的窗口。例如,如果有一个日历控件需要去关闭,可以通过产生一个WM_CLOSE消息去告知该控件。可以通过CWnd::FindWindow()传递一个Caption来获得指向该控件的C++窗口指针。
    程序代码:
    view plaincopy to clipboardprint?CWnd *pCalc; 
    // Get a pointer to the "Calculator" Window 
    pCalc = CWnd::FindWindow(NULL, _T( " Calculator)); 
    if(pCalc == NULL){ 
         // Couldn't find Calculator 

    else
        pCalc->SendMessage(WM_CLOSE); 
         // Presto! The Calculator should close. 

    当一个窗口接收到某个消息后,MFC将调用类的成员函数。但是MFC如何知道该调用哪个函数呢?

            为了解决上述问题,MFC运用了一个叫做消息映射(Message Map)机制。消息映射就是将消息和所要调用的函数绑定在一起。一旦接受到一个消息,MFC将进入消息映射去寻找与该消息相对应的消息句柄。

             MFC采用的是一系列的宏(Macros)去添加消息映射到类中。当运用ClassWizard去添加一个消息句柄时首先添加该 函数到类中然后添加响应的宏到消息映射中。例如若用ClassWizard添加WM_CLOSE的消息句柄时,会有一下三个动作:

    1.在类的实现(.cpp)中的消息映射中:

    程序代码:
    view plaincopy to clipboardprint?BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) 
         // {{AFX_MSG_MAP(CAboutDlg)  
        ON_WM_CLOSE() 
         // }}AFX_MSG_MAP  
    END_MESSAGE_MAP() 
    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
         // {{AFX_MSG_MAP(CAboutDlg)
        ON_WM_CLOSE()
         // }}AFX_MSG_MAP
    END_MESSAGE_MAP()
    2.在类(.h)声明中声明函数:该函数前有afx_msg关键字

    程序代码:
    view plaincopy to clipboardprint? protected
         // {{AFX_MSG(CAboutDlg)  
        afx_msg  void OnClose(); 
         // }}AFX_MSG  
        DECLARE_MESSAGE_MAP() 
    protected:
         // {{AFX_MSG(CAboutDlg)
        afx_msg  void OnClose();
         // }}AFX_MSG
        DECLARE_MESSAGE_MAP()
    3.在类的实现(.cpp)中:

    程序代码:
    view plaincopy to clipboardprint? void CAboutDlg::OnClose()  

         //  TODO: Add your message handler code here and/or call default  
         
        CDialog::OnClose(); 

    void CAboutDlg::OnClose()
    {
         //  TODO: Add your message handler code here and/or call default
       
        CDialog::OnClose();
    }

    宏DECLARE_MESSAGE_MAP()告知MFC给消息映射添加必要的代码。

    宏BEGIN_MESSAGE_MAP()表示消息映射的开始,括弧类的两个参数指示了发送消息的类和其基类。

    宏END_MESSAGE_MAP()表示消息映射的结束。

            有一些消息ClassWizard并不支持但是可以手工添加。但有得时候没有消息映射宏,这个时候可以采用通用宏ON_MESSAGE,利用该宏可以传递任何消息。

    view plaincopy to clipboardprint?afx_msg LRESULT OnMessage(WPARAM wParam, LPARAM lParam); 
    afx_msg LRESULT OnMessage(WPARAM wParam, LPARAM lParam);

             OnMessage()是句柄函数,ON_MESSAGE有两个参数,句柄的地址和消息。例如下面的例子将WM_GETTEXTLENGTH映射到OnGetTextLength():

    程序代码:
    view plaincopy to clipboardprint?ON_MESSAGE (WM_GETTEXTLENGTH, OnGetTextLength) 
    ON_MESSAGE (WM_GETTEXTLENGTH, OnGetTextLength)
    OnGetTextLength的原形为:

    view plaincopy to clipboardprint?afx_msg LRESULT OnGetTextLength(WPARAM wParam, LPARAM lParam); 
    afx_msg LRESULT OnGetTextLength(WPARAM wParam, LPARAM lParam);

             有得时候,需要在两个窗口或两个应用程序间进行通信,一个简单的解决方法是采用自定义消息。为了避免与系统定义的消息冲突,需要运用一个大于0xBFF的数WM_APP。

    程序代码:
    view plaincopy to clipboardprint? #define WM_DELETEALL WM_APP + 0x100  
    // ...  
    pYourDialog->SendMessage(WM_DELETEALL,  00); 
    #define WM_DELETEALL WM_APP + 0x100
    // ...
    pYourDialog->SendMessage(WM_DELETEALL,  00); 

            运用宏WM_MESSAGE完成消息映射,将WM_DELETEALL与句柄函数OnDeleteAll()绑定。

    程序代码:
    view plaincopy to clipboardprint? #define WM_DELETEALL WM_APP + 0x100  
    // ...  
    // Message Map entry:  
    ON_MESSAGE (WM_DELETEALL, OnDeleteAll) 
    // OnDeleteAll is prototyped as   
    afx_msg LRESULT OnDeleteAll(WPARAM wParam, LPARAM lParam); 
    // And is implemented as   
    LRESULT OnDeleteAll(WPARAM wParam, LPARAM lParam){ 
         // Do What ever you want  
         return somevalue; 

    #define WM_DELETEALL WM_APP + 0x100
    // ...
    // Message Map entry:
    ON_MESSAGE (WM_DELETEALL, OnDeleteAll)
    // OnDeleteAll is prototyped as
    afx_msg LRESULT OnDeleteAll(WPARAM wParam, LPARAM lParam);
    // And is implemented as
    LRESULT OnDeleteAll(WPARAM wParam, LPARAM lParam){
         // Do What ever you want
         return somevalue;
    }
         RegisterWindowMessage()用于定义一个新的窗口消息,必须保证其独一无二。宏ON_REGISTERED_MESSAGE表示该消息。例如:

    view plaincopy to clipboardprint? class CMyWnd :  public CMyParentWndClass 

    public
        CMyWnd(); 
     
         // {{AFX_MSG(CMyWnd)  
        afx_msg LRESULT OnFind(WPARAM wParam, LPARAM lParam); 
         // }}AFX_MSG  

        DECLARE_MESSAGE_MAP() 
    }; 
     
    static UINT WM_FIND = RegisterWindowMessage( " YOURAPP_FIND_MSG "); 
     
    BEGIN_MESSAGE_MAP(CMyWnd, CMyParentWndClass) 
         // {{AFX_MSG_MAP(CMyWnd)  
            ON_REGISTERED_MESSAGE(WM_FIND, OnFind) 
         // }}AFX_MSG_MAP  
    END_MESSAGE_MAP() 
    class CMyWnd :  public CMyParentWndClass
    {
    public:
        CMyWnd();

         // {{AFX_MSG(CMyWnd)
        afx_msg LRESULT OnFind(WPARAM wParam, LPARAM lParam);
         // }}AFX_MSG

        DECLARE_MESSAGE_MAP()
    };

    static UINT WM_FIND = RegisterWindowMessage( " YOURAPP_FIND_MSG ");

    BEGIN_MESSAGE_MAP(CMyWnd, CMyParentWndClass)
         // {{AFX_MSG_MAP(CMyWnd)
            ON_REGISTERED_MESSAGE(WM_FIND, OnFind)
         // }}AFX_MSG_MAP
    END_MESSAGE_MAP()

            用该方式定义的消息的范围为0xC000 - 0xFFFF,并采用sendmessage()发送该消息。

    程序代码:
    view plaincopy to clipboardprint? static UINT WM_FIND = RegisterWindowMessage( " YOURAPP_FIND_MSG "); 
    // ...  
    pFindWindow->SendMessage(WM_FIND, lParam, wParam); 
    static UINT WM_FIND = RegisterWindowMessage( " YOURAPP_FIND_MSG ");
    // ...
    pFindWindow->SendMessage(WM_FIND, lParam, wParam);
    展开全文
  • MFC不同的类窗体之间传递消息

    千次阅读 2017-10-24 15:45:02
    不同类窗体之间窗体之间传递消息

    接收消息窗体,CMainFrame 
    1 首先在头中定义消息:例如

    #indefine WM_MYMESSAGE (WM_USER+100)
    
    WM_MYMESSAGE是定义的宏:
    
    1. 定义消息处理函数。 
      消息处理函数为消息目标类的成员函数。首先应该在.h 文件中声明。这里以主窗口类为例,主窗口类名 CMainFrame,则首先在CMainFrame.h声明消息处理函数。

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

    3.在CMainFrame.cpp中实现消息处理函数

    LPESULT CMainDialog::OnCurTaskChanged(WPARAM wParam, LPARAM lParam) 
    { 
         // TODO: 处理用户自定义消息 
         m_bIsOpen = false;
    
         return 0; 
    }
    

    4.在CMainFrame.cpp中映射消息ID和消息处理函数

    BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) 
    //{{AFX_MSG_MAP(CMainFrame) 
    ON_WM_CREATE() 
    ON_WM_TIMER() 
    ON_MESSAGE(WM_MY_MESSAGE, OnCurTaskChanged) 
    //}}AFX_MSG_MAP 
    END_MESSAGE_MAP()
    

    5、在CMainFrame中创建非模态对话框,通过按钮Click::OnDialogtest

    void CMainFrame::OnDialogtest()
    {
        m_bIsOpen = false;
        Cam_TestDlg *dlg = new Cam_TestDlg();
        if (!m_bIsOpen)
        {
            dlg->Create(IDD_DIALOG_TEST, GetDesktopWindow());
            dlg->ShowWindow(SW_SHOW);
            m_bIsOpen = !m_bIsOpen; 
            m_bIsOpen = true;
        }
        //TODO: Add your command handler code here
    }
    

    在对话框Cam_TestDlg中发送消息

    CMainFrame *pFrame;
    pFrame = (CMainFrame*)AfxGetMainWnd();  
    PostMessageW(pFrame->m_hWnd,  WM_MY_MESSAGE,  NULL , NULL);
    展开全文
  • 实现功能,1窗口如果check选中,点击按钮,将edit的内容通过消息发送到窗口2,显示在edit中,如果没有勾选check,清空edit。 1、新建对话框工程,在主对话框初始化函数中产生一个非模态对话框。 (新建对话框资源...

    实现功能,1窗口如果check选中,点击按钮,将edit的内容通过消息发送到窗口2,显示在edit中,如果没有勾选check,清空edit。

    1、新建对话框工程,在主对话框初始化函数中产生一个非模态对话框。

    (新建对话框资源,添加控件,生成对话框类,将类.h包含到主窗.h文件中。添加以下,产生非模态对话框

    	add *madd=new add;//add为新建窗口的类
    	madd->Create(IDD_DIALOG1, this);  //新窗口的ID
    	 madd->ShowWindow(SW_SHOW); //显示

     

    2、自定义消息。在接收消息的对话框类中,用向导自定义消息。

    自动生成消息映射和消息响应函数。

    需要在接收消息类.h文件开头加以下。

    #define mymesage WM_USER+1000

    “2019.9.24修正,这个应该放在发送和接收的消息都包含的头文件内,比如都包含public.h,否则没有包含的会提示未定义”

    3、双击主对话框的按钮,产生消息。

    void CMy22Dlg::OnBnClickedButton1()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	bool mb=((CButton *)GetDlgItem(IDC_CHECK1))->GetCheck();//获得check的值
    	CString str;
    	GetDlgItemTextA(IDC_EDIT1,str);//获得edit的值
    	HWND nd;//是HWND
    	nd=::FindWindow(NULL,"非模态");//用windows函数找到另一个窗口的句柄,不要忘记::
    	::SendMessage(nd,mymesage,mb,LPARAM(&str));//用::,参数的传递后面要补充
    }

    4.接收的地方消息

     

    afx_msg LRESULT add::OnMymesage(WPARAM wParam, LPARAM lParam)
    {
    	CString str;
    	str=*((CString*)lParam);//先转成CString类型的指针,再取值,给str变量
    	if(wParam)
    		SetDlgItemTextA(IDC_EDIT1,str);
    	else
    		SetDlgItemTextA(IDC_EDIT1,"");
    	return 0;
    }

    5、分割窗口之间传递消息。

    第三不步改为

    CMyWaveForm* pMyFormView = (CMyWaveForm*)((CPHVUPDlg*)::AfxGetMainWnd())->m_wndSplitter.GetPane(0, 1);//
    		::PostMessage(*pMyFormView, WM_ReciveWaveType, 4, NULL);

     

    展开全文
  • MFC窗口之间传递数据(结构体)

    千次阅读 2018-09-11 15:05:13
    MFC窗口之间的通讯一般会利用发送消息的方式传递,那么具体如何实现呢,代码如下: 下面实现的是一个子窗口把消息发送到主窗口的示例: 1.消息发送窗口部分代码: 首先添加自定义消息; #define WM_MSG_BANCAI WM...
  • MFC——子窗口之间传递参数和调用函数 这几天在用MFC做ui的时候遇到一个看起来很简单的问题,但是折腾了好久,最后在同门和老师的帮助下解决了这个问题,对MFC有了更深的理解,特此记录一下。 一、功能简介 实现...
  • mfc对话框窗口之间变量的传递

    千次阅读 2012-11-07 22:22:08
    mfc对话框窗口之间变量的传递 最近做的程序越来越复杂,基于对话框模式创建的程序,有时用到多个对话框之间共享信息,百度了一下,有几种方法:  1.全局变量  2.消息传递  3.成员变量  4.构造函数 。。。...
  • 实现原理 子窗口1调用父类对象里子窗口二对象然后SendMessage发送消息窗口2自己 窗口1: 注意 在窗口窗口二 引入自定义消息 WM_MyMessage 在父窗口.h 中 创建C_clearf 指针指向 子窗口二 子窗口二: 在消息...
  • 为简单起见,只针对父窗口传递消息到子窗口。 二、界面 主界面为对话框,上有一Button,点击进入子对话框(使用非模态方式)。对话框界面有Static控件输出信息。过程省略。 三、原理 自定义消息ID。在子窗口中响...
  • 基于对话框的MFC窗口之间值的传递

    千次阅读 2017-05-06 20:56:34
    编码时碰到一个MFC多个对话框窗口之间值的传递的问题,花了些时间总结一下。问题具体是这样的: 单击CWorkerBorrow对话框类中的“添加借调“功能按钮,弹出CMBorrow对话框来编辑信息,然后鼠标点击CEdit类型的编辑...
  • MFC不同对话框之间的数据传递

    千次阅读 2014-03-14 21:06:44
    1.向扫雷游戏中自定义界面中设置界面的行数,列数和雷数,并且将这三个设定的值传递到View类中(正向:数值传递由副界面到主界面); 2.其他需要设定数值在主界面发挥作用的实例;  下面还是以一个实例的形式介绍...
  • MFC 两个窗口 传递

    万次阅读 2017-02-27 21:44:40
    身边的小伙伴又有人入坑MFC ,(我都已经 好久不碰这玩意儿了)今天问我怎么在两个窗口之间传值。接着上次,做一次总结(也是怕自己今后忘了,万一哪天需要,又拿起MFC了 ) ///// ---- 2018年3月4日20:01:08 更新=...
  • OpenGL+mfc+单文档+动画+窗口分割+消息传递 代码实现,干货满满
  • MFC小笔记:TabCtrl父子窗口传递消息

    千次阅读 2019-12-22 10:19:48
    MFC界面有一个设置对话框,实际使用TabCtrl+子对话框的形式。在子对话框中设置参数时,需要将结果反馈至父窗口下方。这样统一信息输出。本文解决问题:如何在子窗口中,获取父窗口句柄,并在父窗口Static控件输出...
  • 写一个MFC程序,大概功能是主窗口显示图片,子窗口显示处理的结果(一个字符串)。主窗口Myview,分割的子窗口是自己新建的view类NewView,问题是不知道这两个窗口之间如何通信?就是把MyView中的一个变量传递给...
  • MFC中对话框之间消息传递

    千次阅读 2013-09-25 23:56:29
    1.新建MFC对话框工程Message。 2.添加对话框资源IDD_DIALOG。 3.通过类向导为对话框IDD_DIALOG添加新类CMyDialog。 4.在对话框IDD_MESSAGE_DIALOG上增加编辑框IDC_EDIT1,并添加CEdit类型变量m_Edit。 5.在对话框IDD...
  • 对子窗口操作同时,实时给 另一个绿色窗口发送消息 两个绿色的窗口进行消息发送。需要把 子窗口消息 发送到 另一个窗口上。 方案一: 可以设定一个全局HWND 变量,每个类中都可以访问。 但是,我的目的不是...
  • MFC用PostMessage传递消息

    千次阅读 2016-08-02 15:40:00
    1.自定义消息ID。 #define WM_MY_MESSAGE (WM_USER+100) WM_USER为windows系统为非系统消息保留的ID,这里至少要用100,因为其它控件的消息会...这里以主窗口类为例,主窗口类名 CMainDialog,则首先在CMainDial...
  • VC MFC 窗口间参数传递 带说明文档

    热门讨论 2012-01-04 17:39:33
    我自己写的 给别人回答问题时写的 想想传上来还得得些分
  • MFC中父窗口和子窗口消息传递

    千次阅读 2013-12-28 18:07:51
    MFC程序中,经常会遇到这样的问题,父窗口需要子窗口的值进行更新,或者新建立的子窗口需要一些父窗口的控件变量。遇到这个问题,一般有两种方式,一种是建立消息,声明一个新的系统消息消息响应函数,通过消息...
  • 因为项目的需要,某子窗口B的设置变动,经常需要联动其他子窗口C,或者父窗口A控件的名称更新,数据... 以下都以A为父窗口,A1为A中的Tab控件, B和C为子窗口被非模态创建于A1上,所以之间的关系为 A  |  A1 A2
  • 在VC++中,打开对话框一般是用DoModal()函数调用模态对话框,但是模态对话框只能在对弹出的当前子窗口进行操作,而不能对父窗口进行操作,也无法传递数据到父窗口中,根据笔者的研究发现,采用非模态对话框的模式...
  • MFC对话框向主窗体传递消息机制,用图+文字描述,很直观,只要照着图上的步骤做就能实现。绝对有用
  • MFC多线程消息传递

    千次阅读 2012-11-09 17:07:48
    MFC工作者线程向主线程传递消息:  我们在编写VC网络应用程序时,经常会用到2个线程,一个是主线程,主线程负责与界面相关的工作;一个是网络接收线程,负责接收网路上的数据,它在后台工作,接收线程经常需要与...
  • MFC窗口向父窗口发送消息

    千次阅读 2016-11-26 11:42:28
    【转】MFC窗口向父窗口发送消息(测试成功20110117) 在MFC中,使用用户自定义消息,子窗口向父窗口发送消息过程、代码: 1)在resourse.h中增加定义:(我在resourse.h中定义后会有重定义的问题,在Stad什么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,506
精华内容 8,202
关键字:

mfc不同窗口之间传递消息