如何实现同级对话框的交互

zglyfwz 2009-06-28 02:15:31
我的提问是:在一个主对话框(DlgA)中create出了两个非模态对话框(DlgB,DlgC),如何在DlgB中点击一个按钮或者是树形控件的其中一项后,在DlgC中动态的创建出一个按钮或者是窗口。急切盼望中。。。。

我自己的做法是:(以创建按钮为例)
1、在DlgB中包含一个DlgC类型的指针,假设是m_dlgc;
且DlgC中有建立按钮的函数:
void set(BOOL bshow)
{
if(TRUE==bShow)
{
m_button.create(...);
}
}
其中一些简单变量代码省略不写了。
2、在dlgb的函数中通过m_dlgc->set(True);

就是是出不来,会报错;

急急急急急急急急急急急急急急急急急急急急急急急。。。。。。大虾们,帮帮忙。
...全文
46 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
baggio1984 2009-06-28
  • 打赏
  • 举报
回复
非模态对话框须调用create吧 m_t->create(...);
zglyfwz 2009-06-28
  • 打赏
  • 举报
回复
在CMyServerTree。h的头文件里包含
#include "MyLobbyRight.h"
CMyLobbyRight *m_t;

CMyServerTree.cpp里
构造函数里有m_t=new MyLobbyRight;
void CMyServerTree:: OnTreeDoubleClick(LPNMHDR lpnmhdr
{
if(NULL==m_t)
{
m_t->setbutton(TRUE);
}
}
在MyLobbyRight头文件里:
void setbutton(BOOL bshow=FALSE);
CButton m_button;
在MyLobbyRight。cpp里
void CMyLobbyRight::setbutton(BOOL bshow)
{
if (TRUE==bshow)
{
CRect rect;
rect.top=0;
rect.bottom=50;
rect.left=101;
rect.right=201;
m_button.Create("游戏",WS_CHILD|WS_VISIBLE,rect,this,15);

}
}

调试后,m_t -------0x0038a340{CMyLobbyRight hWnd=0x00000000}
zglyfwz 2009-06-28
  • 打赏
  • 举报
回复
我又重新设计了一下,没有报错了,但是按钮没出现。因为我是在做QQ大厅的树形控件,然后自己写了消息响应函数,想通过双击树形控件的 ”房间“ 的时候,在同级的对话框的右边产生一个窗口,或则是一个按钮。

Conry 2009-06-28
  • 打赏
  • 举报
回复
m_button.create(...);
这个地方是不能省略的,估计就是这里出了问题
arong1234 2009-06-28
  • 打赏
  • 举报
回复
基本思想不错,你报什么错不说别人怎么知道你怎么了?
zglyfwz 2009-06-28
  • 打赏
  • 举报
回复
我是新手,刚来没有什么分,所以不好意思了!大家帮帮忙

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧