急:怎样在调用的对话框中,获取视图指针?在单文档MFC程序模式下,我派生了一个对话框类,在对话框调用时,需要和视图的成员变量进行交互操作。在我的视图类中,有一成员变量,是指针数组模块类型的。它里面存放了所有需要操作的文件指针。对所有文件进行操作需要很长时间,所以我使用对话框显示进度条来反应操作进度,同时这个对话框又必须是模态调用。所以,我想把文件操作放到提示对话框中完成,但不知怎样获取视图的那个成员变量?望各位高手不吝赐教!
解决方案 »
- 获取页面HTML后,如何将UTF-8转换成unicode
- VC中问题<<什么意思
- HOOK SendMessage,只能接收自己进程钩子消息的问题
- 请教各位:程序运行时繁体中文显示为乱码怎么回事?
- vc ado 操作 access 数据库,当出现错误时,用e.ErrorMessage()来获取错误信息,但信息显示为:未指定的错误。怎样才能获取正确的错误信息?
- 100分求购VC动态库的列子
- CreateFile覆盖文件出错??
- 请问如何在VC++中通过DAO打开ACCESS 2000/2002的数据
- msdn2003怎么用???
- 在线求助!!!急需
- CPropertySheet问题领分~
- WM_NOTIFY 和WM_COMMAND的区别
((C**View)((CMainFrame *)AfxGetMainWnd())->GetActiveView())->yourvar;
即可
((C**View *)((CMainFrame *)AfxGetMainWnd())->GetActiveView())->yourvar;
上面写错了一点,呵呵,其中C**View为你的View的类名
现获取视类的指针,然后向视类发送自定义消息 CM_START(CM_START 要预先定义),来通知视类开始文件操作。CFrameWnd *frm=(CFrameWnd*)AfxGetApp()->m_pMainWnd;
CView *view=(CView*)frm->GetActiveView();
::SendMessage(view->m_hWnd,CM_START,0,0);
//PostMessage(view->m_hWnd,CM_START,0,0);
2. 在视类中:
先建立消息映射,表明视类收到 自定义消息 CM_START 调用 进行文件操作的成员函数 OperateFile//也可以在虚函数 WindowProc 中处理
ON_MESSAGE(CM_START, OperateFile)3. 在成员函数 OperateFile 中:
先获取模态对话框的指针,以便同步视类与模态对话框的成员变量,
开始文件操作,同时将进度在模态对话框中显示出来。CFrameWnd *frm=(CFrameWnd*)::AfxGetApp()->m_pMainWnd;
Dialog2 *dg=(Dialog2*)frm->GetActiveWindow();
//开始文件操作
//将进度在模态对话框中显示出来