一个 MFC 对话框程序,在主对话框上又有多级新的“子”对话框,当我将主对话框上的各级“子对话框”类型设 POPUP 时,各级对话框独立正常,但似乎与主对话框一点关系也没有一样,其甚至可以移到主对话框所属区域外面,为了保持其与主对话框相对位置的稳定在移动主对话框时要手动地移动各级“子”对话框,且移动时还要使用屏幕坐标;当将各级“子”对话框类型设为 CHILD 时,各级对话框表现出了子窗口的属性,保持与主窗口位置关系,不能移动到主窗口所属区域以外等。但新问题也出现了 -- 子对话框所属区域变得不明确了!各级子对话框间可以相互绘制到对方区域上,甚至主对话框也能绘到它的子对话框上,将相互覆盖的两个子对话框移开后被覆盖子对话框不重绘,而且鼠标在子对话上点击时,子对话框也不会被“激活”。我希望的效果是一个主对话框作为父窗口,其上根据需要动态创建出各级子对话框,子对话框表现出完整“子窗口”的属性 -- 即子窗口有自己独立的窗口区域,操作系统在子对话上存在无效区域时能向其发送重绘消息,鼠标点击时各子窗口能“激活”,移动父级窗口时子窗口自己跟随移动,保证相对位置的稳定。请各位老大提点一下,感激不尽!
处理主对话框消息WM_WINDOWPOSCHANGING, 在该消息移动子对话框
具体怎么写, 查看MSDN
--------------------------------------
不是很理想,每一次在子级对话框上点击不能激活,需要第二次点击才可以,如果是点击子对话框上的控件其根本不能激活;WM_WINDOWPOSCHANGING
-------------------------------
还没试,我会试一下的,我现在是在 WM_MOVE 中移动的,闪烁很明显,不知道 WM_WINDOWPOSCHANGING 效果会怎样。