MFC多文档程序如何获取当前活动文档指针

MFC多文档程序如何获取当前活动文档指针,第1张

给你一个通用的步骤吧,看不懂我再详细说(你需要的步骤是1-2-32):

1CMDIFrameWnd pFrame = (CMDIFrameWnd)AfxGetApp()->m_pMainWnd;

2CMDIChildWnd pChild = (CMDIChildWnd ) pFrame->GetActiveFrame();

3

31获得视类:CMyView pView = (CMyView ) pChild->GetActiveView();

32获得文档类:CDocument pDocument=pChild -> GetActiveDocument();

你要在主窗口点击一个按钮,d出另外一个窗口是不是要实例化这个窗口

这个dlg就是d出窗口的实例 你只要在d出窗口中定义列表框的指针 比如是m_pList;

那就直接dlgm_pList->AddString 就可以访问了

dlg pDlg=new dlg;

pDlg->Create(IDD_DIALOG1,this);

pDlg->ShowWindow(SW_SHOW);

pDlg->m_ListAddString("hello");

pDlg->m_ListAddString("wangtk");

我觉得应该是这样的:你的对话框一直存在,但是状态可能是隐藏的,那么在创建这个对话框的时候,你会保存这个对话框的指针。至于保存在哪里,是由你决定的。然后要在其他类中获取到这个指针的话,那么你就可以将这个类和保存对话框指针的类或者地方建立一个关系,然后就可以获取到了。

在你的对话类中响应wm_size消息,系统将自动生成一个onsize()函数,在该函数里面添加下面代码就可以得到:

void

cdatafileimportdlg::onsize(uint

ntype,

int

cx,

int

cy)

{

cdialog::onsize(ntype,

cx,

cy);

crect

rect;

getclientrect(&rect);

}

rect

中就有你想要宽度,大小等信息。

MFC中得到某个窗口类的指针,有不同的办法,需要根据你当前所在位置和需要获取的窗口属性来确定。

比如AfxGetMainWnd() MDIGetActive() GetActiveFrame() GetFirstViewPosition()等等。

具体可以百度“SDI/MDI框架各部分指针获取方式”获取更多信息。

你可以进MFC的 ClassVIew里 每个mfc工程都会有个theApp的全局变量 双击它 找到它的位置 然后把你要定义的全局变量跟他写在一起 然后在这个文件的h文件中用extern声明该变量就可以了

以上就是关于MFC多文档程序如何获取当前活动文档指针全部的内容,包括:MFC多文档程序如何获取当前活动文档指针、MFC如何获得子窗口中控件的指针、mfc如何在其他类中获取和传递指定对话框的指针或句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10133948.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存