MFC中如何实现对话框的转换
展开全部
里调用::AfxGetMainWnd()
然后把上一步得到的指针强制类型转换为CFrameWnd*型
最后调用CFrameWnd::GetActiveDocument();
代码如下
CFrameWnd* FrameWnd=(CFrameWnd*)::AfxGetMainWnd();
CDocument* pDoc=FrameWnd->GetActiveDocument();
到这里pDoc就是你要的至于把它变成你的文档类型那就是举手之劳了。这个方法对SDI架构有效对MDI没用。因为MDI里用AfxGetMainWnd得到的是CMDIFrameWnd.
另一个问题,从ON_MESSAGE(WM_USER_DIALOG_DESTROYED),OnDialogDestroyed);
这个可以看到很多信息,
首先WM_USER_DIALOG_DESTROYED这个消息的前缀WM_USER_很明确的指出这是个用户自定义消息。所以它的定义就在那个出现这个常量的CPP文件最开头链接的那些.h文件里面。去找吧。
其次ON_MESSAGE这个宏,最基本的用法就是把用户自定义消息和消息响映函数关联起来。
最后,如果你经验丰富的话可以一眼看出来,在CDialog类里只有WM_DESTROY消息和它的响应函数OnDestroy。跟摧毁有关的还有一个就是DestroyWindow。根本就没有名叫OnDialogDestroyed的函数。
所以OnDialogDestroyed这一定是一个自定义消息的响应函数
所以它的值是多少一点也不重要,重要的是它在哪里定义。这样你用它的时候才能把它声明了。
你链接的那个页面实在是没明白你想怎样,你都玩到SetupAPI了怎么还在这个问题上打结啊。最后再说一点第三个对话框干吗非得无模态,DoModal一下不就得了。
然后把上一步得到的指针强制类型转换为CFrameWnd*型
最后调用CFrameWnd::GetActiveDocument();
代码如下
CFrameWnd* FrameWnd=(CFrameWnd*)::AfxGetMainWnd();
CDocument* pDoc=FrameWnd->GetActiveDocument();
到这里pDoc就是你要的至于把它变成你的文档类型那就是举手之劳了。这个方法对SDI架构有效对MDI没用。因为MDI里用AfxGetMainWnd得到的是CMDIFrameWnd.
另一个问题,从ON_MESSAGE(WM_USER_DIALOG_DESTROYED),OnDialogDestroyed);
这个可以看到很多信息,
首先WM_USER_DIALOG_DESTROYED这个消息的前缀WM_USER_很明确的指出这是个用户自定义消息。所以它的定义就在那个出现这个常量的CPP文件最开头链接的那些.h文件里面。去找吧。
其次ON_MESSAGE这个宏,最基本的用法就是把用户自定义消息和消息响映函数关联起来。
最后,如果你经验丰富的话可以一眼看出来,在CDialog类里只有WM_DESTROY消息和它的响应函数OnDestroy。跟摧毁有关的还有一个就是DestroyWindow。根本就没有名叫OnDialogDestroyed的函数。
所以OnDialogDestroyed这一定是一个自定义消息的响应函数
所以它的值是多少一点也不重要,重要的是它在哪里定义。这样你用它的时候才能把它声明了。
你链接的那个页面实在是没明白你想怎样,你都玩到SetupAPI了怎么还在这个问题上打结啊。最后再说一点第三个对话框干吗非得无模态,DoModal一下不就得了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询