视图 非模态对话框 删除解决方法

视图 非模态对话框 删除
SDI工程:一个菜单里面有多个子菜单,单击每个子菜单都可打开一个对应的非模态对话框(视图的子窗口)。想实现的功能如下:当单击某一个子菜单1时,程序应能判断视图是否有已经打开的非模态对话框,如果有就关闭它,并delete其指针,同时,显示对应的非模态对话框。
  我知道比较笨的方法,即:逐一判断所有的已经定义的非模态对话框指针是否为NULL,如果不为NULL,就DestroyWindow(),然后delete 指针,再将指针赋值NULL。最后,根据需要创建并显示需要的非模态的对话框。
  由于涉及到的对话框太多,上述方法太麻烦,不知道各位大侠有没有简便的方法。
  谢谢。
  不知能否通过GetDlgItem( dlgID )获取指针,然后删除,好像不行,如果能行就好处理了。
 

------解决方案--------------------
楼上,不要使用CWnd*指针 ,一般来说,如果他们重载DestroyWindow,不会把DestroyWindow设置为虚函数, , 那么你建议使用CWnd*指针来调用DestroyWindow就会错过自己的DestroyWindow, 所以我推荐 PVOID