请问一下,VC中,窗口与窗口之间如何传递参数,能给个例子么?谢谢各位了!!!!

解决方案 »

  1.   

    比如说在窗口1中定义全局变量
    int i;
    然后在窗口2中定义外部变量
    extern int i;
    这样一来窗口2中就可以使用i了
      

  2.   

    to happyparrot(快乐鹦鹉);
    老大,怎么发送消息?
    给个例子好么
      

  3.   

    比如说从CMyDlg类向CMyView类发消息:先定义消息WM_MYMESSAGE,然后在CMyDlg类里定义变量指针CView* m_pView,需要发消息时使用m_pView->SendMessage(WM_MYMESSAGE),在需要接收消息的类的实现文件里用OnEvent绑定消息与消息响应函数,在编写消息响应函数即可。
      

  4.   

    呵呵。楼上已经帮我写好了。
    就是先定义一个消息号。比如 #define WM_MYMSG WM_USER+300
    然后在需要接收消息的头文件中增加 LRESULT OnMyMsg(LPARAM lparam,WPARAM wParam);
    在cpp中增加 ON_MESSAGE(WM_MYMSG,OnMyMsg);
    以及函数: LRESULT C**::OnMyMsg(LPARAM lParam,wParam);
    这样,接收消息机制就做好了。
    发送消息的地方:
    C** *p** = ...;
    p**->SendMessage(WM_MYMSG,lparam,wparam);//lparam和wparam是消息参数,传递你需要传递的内容
      

  5.   

    变量最好用函数比如get,set什么,最好不要dlg.m_iVar,而是
    int getVar()
    {
       return m_iVar;
    }int i = dlg.getVar();
      

  6.   

    to happyparrot(快乐鹦鹉);
    请问:如果我有一个父对话框,从父对话框中create了一个非模态的子对话框,然后在子对话框销毁的时候,发送消息到父对话框,该怎么做?
      

  7.   

    在父对话框添加我上面写的那个接收消息处理。然后在子对话框销毁前,调用GetParent()->SendMessage(...)就可以了。
      

  8.   

    例如弹出了一个对话框,想在这个父对话框中用这个对话框中的变量,可把这个变量设为public这样在父对话框中就可以用DlgXXX.m_XXX来调用了,就是这个对话框关闭了,也可以调用。
      

  9.   

    to happyparrot(快乐鹦鹉);
    我的父对话框是一个CPropertySheet继承类,并动态加载了菜单。通过菜单项创建非模态的子对话框。先就试过用GetParent()->SendMessage(...),但是不行,所以问你
      

  10.   

    那根本就是不是子对话框的概念啊。只是创建非模态的对话框,怎么能称为子对话框呢?子对话框的风格必须是WS_CHILD。而不能是WS_POPUP。你是基于对话框的工程,然后将主对话框改成了CPropertySheet,还是你这个父对话框本身只是工程的一个部分呢?
      

  11.   

    哦。是的是的,您指点的是。
    我的工程是这样的,先创建一个对话框。然后点ok后,DoModal()一个CPropertySheet继承类,然后在里面加入菜单,通过菜单项创建非模态的对话框。然后就不知道这个非模态的对话框和CPropertySheet继承类的通讯问题了,敬请指点!谢谢!
      

  12.   

    happyparrot(快乐鹦鹉) :
    能有你qq么?
      

  13.   

    这个问题还没见过,用CPropertySheet做窗口的。可否把工程给我发一份?[email protected]
      

  14.   

    happyparrot(快乐鹦鹉) :
    能有你qq么?
      

  15.   

    to happyparrot(快乐鹦鹉) :
    按照test1那个例子,应该如何将父对话框的指针传递到非模态对话框中去?
      

  16.   

    你在非模态对话框中定义一个成员变量,就是主对话框的指针类型。比如C*** *m_pMain;
    然后,在主对话框中调用非模态对话框时,CDlg *pDlg = new CDlg;pDlg->m_pMain = this;pDlg = new CDialog(...);.....。然后,在OnButton1中,用m_pMain->SendMessage(...)。就可以了。其实,到这个时候,不发送消息都可以。在主对话框中作个public的函数也可以。
      

  17.   

    你在非模态对话框中定义一个成员变量,就是主对话框的指针类型。比如C*** *m_pMain;
    加入后编译都过不了。