由句柄或CWnd得到CDocument指针

来源:百度知道 编辑:UC知道 时间:2024/06/15 00:21:59
谁给个方法,速度。。5小时内答题的给50分。。
注意,有多个窗口,所以不是获得当前窗口的指针。
一楼的,我的程序是在一个程序下打开多个窗口,某些窗口是用hwnd或CWnd标记的,现在要根据这些标记找到相应子窗口对应的CDocumen指针,而你的程序里面没有hwnd或者CWnd,自然找不到标记的窗口,谢谢。
另:子窗口是用OnOpenDocument打开的,因为是图片处理程序
OnOpenDocument里面调用openCV的Load(lpszPathName)
CDocument里面添加了一个CVimage,因为涉及到客户区的鼠标操作,所以使用hwnd或CWnd标记的窗口

CMyApp *pMyApp = (CMyApp*)AfxGetApp(); //得到应用程序指针
POSITION p = pMyApp->GetFirstDocTemplatePosition();//得到第1个文档模板
while (p != NULL) //遍历文档模板
{
CDocTemplate *pDocTemplate = pMyApp->GetNextDocTemplate(p);
POSITION p1 = pDocTemplate->GetFirstDocPosition();//得到文档模板对应的第1个文档
while (p1 != NULL) //遍历文档模板对应的文档
{
CDocument *pDocument = pDocTemplate->GetNextDoc(p1);
if(pDocument->isKindOf(RUNTIME_CLASS(你的文档类))
{
AfxMessageBox("找到了");
}
}
}