
MFC基础问题
单文档结构,在其中自己建立一个模态对话框,想在模态对话框中得到当前的框架窗口的及当前视类窗口句柄.如何处理?还有.在当前对话框GetParent()得到的是不是应该是视类...
单文档结构,
在其中自己建立一个模态对话框,
想在模态对话框中得到当前的框架窗口的及当前视类窗口句柄.如何处理?
还有.在当前对话框GetParent()得到的是不是应该是视类窗口的句柄?
在当前对话框上用extern APP类theApp;
然后用theApp.m_pActiveWnd得到的是不是主框架的句柄?
GetActiveWindow();是不是得到当前视类窗口?
自己有点乱,用以上方法乱试,但是,发现,都未得出来当前的视类窗口.
请明白的人给点指点.谢谢了!!! 展开
在其中自己建立一个模态对话框,
想在模态对话框中得到当前的框架窗口的及当前视类窗口句柄.如何处理?
还有.在当前对话框GetParent()得到的是不是应该是视类窗口的句柄?
在当前对话框上用extern APP类theApp;
然后用theApp.m_pActiveWnd得到的是不是主框架的句柄?
GetActiveWindow();是不是得到当前视类窗口?
自己有点乱,用以上方法乱试,但是,发现,都未得出来当前的视类窗口.
请明白的人给点指点.谢谢了!!! 展开
2个回答
展开全部
10问题还真多...
1.获得当前框架和view类指针
CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainframe;
CYourView* pView = (CYourView*)pFrame->GetActiveView();
2.对头 是获得视类窗口指针 而不是句柄 要获取句柄 p->m_hWnd;
3.对头
4.GetActiveWindow() 是静态函数,GetActiveWindow返回线程的活动窗口。所以不一定返回当前视类窗口
1.获得当前框架和view类指针
CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainframe;
CYourView* pView = (CYourView*)pFrame->GetActiveView();
2.对头 是获得视类窗口指针 而不是句柄 要获取句柄 p->m_hWnd;
3.对头
4.GetActiveWindow() 是静态函数,GetActiveWindow返回线程的活动窗口。所以不一定返回当前视类窗口
展开全部
*****
*****假设你这个模态对话框的类名是CModalDlg。CModalDlg构造函数原型如下:
CModalDlg(CWnd* pParent = NULL);
注意第一个参数,CWnd* pParent ,表示关联的父窗口指针,一般情况是不是很少用,在这就大有用处啦!假如你定义的CModalDlg对象出现在View的某个成员函数(消息响应函数或自定义函数)内部,CModalDlg第一个实参设置为this就可以了,同理在MainFrame类中使用CModalDlg的话也一样。
*****
*****不清楚你的原话中这句"单文档结构,
在其中自己建立一个模态对话框, ",“在其中”具体指哪?无论指哪都没关系,CModalDlg的父窗口建议设置为View对象。然后CModalDlg、View、MainFrame三者就是子、父、祖父三代关系了。在CModalDlg中,可以直接通过GetParent()访问View,通过GetParent()->GetParent()访问MainFrame。
*****
*****备注:View对象的获取可以用这句--GetActiveView().
*****假设你这个模态对话框的类名是CModalDlg。CModalDlg构造函数原型如下:
CModalDlg(CWnd* pParent = NULL);
注意第一个参数,CWnd* pParent ,表示关联的父窗口指针,一般情况是不是很少用,在这就大有用处啦!假如你定义的CModalDlg对象出现在View的某个成员函数(消息响应函数或自定义函数)内部,CModalDlg第一个实参设置为this就可以了,同理在MainFrame类中使用CModalDlg的话也一样。
*****
*****不清楚你的原话中这句"单文档结构,
在其中自己建立一个模态对话框, ",“在其中”具体指哪?无论指哪都没关系,CModalDlg的父窗口建议设置为View对象。然后CModalDlg、View、MainFrame三者就是子、父、祖父三代关系了。在CModalDlg中,可以直接通过GetParent()访问View,通过GetParent()->GetParent()访问MainFrame。
*****
*****备注:View对象的获取可以用这句--GetActiveView().
参考资料: 达人归来... ...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询