空白面板A,只有一个列表控件,想在其他空白地方切换显示其他对话框(B,C)的内容~
看起来其他对话框的控件就像是A一体的,可以实现B,C控件的互相切换,令A显示不同的控件内容
这个该用方式什么实现?
如何令B,C的控件能操作A的列表控件呢?

解决方案 »

  1.   

    没人回答?我找到部分解决方法了~B,C作为A的PropertyPage
    这样就可以互相切换了,可是如何另B,C的操作对A的列表控件有作用呢?
      

  2.   

    这个问题比较容易解决啊,把B,c作为A的子窗口就可以了,把b,c的风格设为WS_CHILD,并且border设为None
    在A的OnInitDialog()中加入
    CBDialog bdlg; //B对话框对应的类
    CCDialog cdlg;  //C对话框对应的类
    bdlg.Create(IDD_BDIALOG,this); //其中IDD_BDIALOG为B的资源名
    cdlg.Create(IDD_CDIALOG,this);//其中IDD_BDIALOG为C的资源名
    CRect rect;
    GetClientRect(&rect);
    bdlg.SetWindowPos(&wndTop,0,0,rect.cx,rect.cy,SW_SHOW); //设置B窗口位置并显示它cdlg.SetWindowPos(&wndTop,0,0,rect.cx,rect.cy,SW_HIDE); //设置C窗口位置并隐藏它
      

  3.   

    我只知道一种方式跟一楼的差不多
    就是;
    先定义一个CPropertySheet为基类的类
    再把你想要添加的对话框的基类设为CPropertyPage作为基类
    然后用AddPage();将对话框添加进CPropertySheet中
    具体的楼主可以看看《VC技术内幕》第12章的改进的EX12A示例程序
      

  4.   

    用消息函数
    SendMessage(列表控件的hWnd,自定义消息,要传递第一个资料地址,要传递第二个资料地址);
    一般第一个资料地址是标识谁发给它的,第二个才是消息真正内容,使用这个函数你喜欢怎么通信就怎么通信,从char,类,结构体变量,还有我最近使用的数据库文件指针,都是这样发送给它的。
      

  5.   

    如何激活主窗口的某个函数把资料写入列表控件?
    ~~~~~~~~~~~
    不用消息那么复杂
     可以通过AfxGetApp()->m_pMainWnd->GetDlgItem(IDC_EDIT1)->SetWindowText(_T("test"));
    这种方式,其中AfxGetApp()->m_pMainWnd,就是指向父窗口的指针了,你想干什么就干什么了,呵呵
      

  6.   

    举个例子,比如父窗口中有个edit控件,ID为IDC_EDIT1,现在想点击子窗口B中的按钮ID_BUTTON1后,把父窗口中的edit控件内容变为"test"
    那么可以在子窗口响应按钮的点击事件,在消息处理函数中加入
    AfxGetApp()->m_pMainWnd->GetDlgItem(IDC_EDIT1)->SetWindowText(_T("test"));
    即可,其中AfxGetApp()->m_pMainWnd得到的就是指向父窗口的指针了!
      

  7.   

    to badguy2002(风一样的男孩):
    如果要激活主类中的某个指定函数呢?