我需要很多个功能大体相似,但是控件布局以及某些处理不同,所以选择先从CDialog类派生出一个基类,然后在此基础上继续派生。
但是,麻烦来了,当我采用非模态对话框的形式创建并显示这些对话框的时候,控件全乱了,明明显示的是一个对话框,但是,当你点鼠标的时候,仍然有可能出现第一个显示出的对话框上的控件,而当前这个对话框上的控件只是一个摆设,根本就点不动!我猜想是那个标志模板的IDD变量在作怪,不过不知道具体如何应付它。
谢谢大虾谢谢大虾,元旦快乐,元旦快乐!

解决方案 »

  1.   

    没有,ShowWindow(SW_HIDE)其他的以后,ShowWindow(SW_SHOW)想要的。开始的时候所有对话框已经new了。
      

  2.   

    没有做过多个非模态对话框同时存在的程序,所以不知道哪儿出问题了,如果没什么秘密的话,发给我看看,[email protected],不一定能解决问题,但是可以参考一下
      

  3.   

    只用ShowWindow(SW_HIDE)是很有可能要出现这类问题的,我以前也这么用,在用鼠标在某个区域活动时,还会不小心显示某个不希望显示的控件(原来这个控件对onmousemove做了处理),后来我改为动态创建对话框,现在用着挺好。
      

  4.   

    看了一下,问题在于你的所有对话框的属性设置不对,要将其属性设置为“popup”,而不是“child”,这样就OK了另提几点建议:
    1、你的播放音乐的放在主对话框(基类)的OnInitDialog()函数中,这样可能有些问题,因为你的派生类有几个都是调用的该对话框的这个函数,这样你的声音文件可能被多次打开;
    2、当前选择的是那个对话框,最好在按钮上有个标记,否则用户不知道当前选择的是哪个按钮;
    3、关闭主对话框前,先将个现有对话框隐藏、关闭,否则最后系统会将其关闭过程显示出来(即闪动)
    4、建议用单文档多视图结构,这样就比较好处理你的问题了,呵呵,不过这样也不错,:)