急!!求懂MFC的大佬帮我解答。MFC单文档工具栏打开文件的路径是怎么获取的,求解。尽量详细点

急!!求懂MFC的大佬帮我解答。MFC单文档工具栏打开文件的路径是怎么获取的,求解。尽量详细点,第1张

首先从对话框的按钮处理函数中获得mainframe指针

cmainframe pmain=(cmaimframe )afxgetapp()->m_pmainwnd;

然后获得相应视图指针cyourview pview=(cyourview )pmain->getactiveview();

最后获得视图对应的当前文档指针 cdocument pcurrentdoc =(cframewnd )m_pmainwnd->getactivedocument();

使用ShellExecute()函数。如:

ShellExecute(NULL,NULL,

"C:\\WINDOWS\\system32\\cmdexe"/这个参数是执行的程序的路径和名称/,NULL/这里是命令行参数/,

NULL,

SW_HIDE/该参数确定显不显示DOS窗口/

);

具体用法见msdn

Win32程序是从WinMain开始执行的,但是MFC把WinMain给封装了,不会出现在你的代码里面,他已经编译到mfc80dll了(VS2005)了。

在MFC中的执行顺序是这样的,首先Windows调用WinMain函数,WinMain里面调用AfxWinMain函数,注意你的代码现在来了,AfxWinMain函数调用对应你程序的APP类(这个类是基于CWinApp的,CWinApp又是基于CWinThread的)的InitInstance函数,如果InitInstance返回TRUE,就调用CWinThread的Run函数,这个函数你可以重载,但是一般不重载。在Run函数里面是Windows的消息循环,就是Win API编程里面的那个while循环以及TranslateMessage和DipatchMessage,当然MFC弄得比较复杂,有一个PumpMessage的机制。

当程序收到WM_QUIT消息之后,Run函数返回,紧接着CWinThread::ExitInstance会被调用,如果你重载了ExitInstrance则会调用你的。最后程序结束。

如果InitInstance返回FALSE,那么Run函数就不会执行,直接调用ExitInstance,然后程序结束。

你最早可以调试的地方要么是你App的构造函数,不过一般从InitInstrance开始。

这要看你的目标程序的类型是什么或是采用什么开发方式,就比如如果目标是应用程序,开发方式是Win32 SDK 方式,入口点就是 WinMain 函数,如果目标是驱动程序,入口点就是DriverEntry函数,如果你的目标是动态库(dll),开发方式是Win32 SDK 方式,入口点就是DllMain函数。

这些所谓的入口函数,随便放在哪个"cpp"里都可以,只要保证函数在工程里的唯一性就可以了,如果你采用MFC方式开发应用程序或动态库,那么基本上不用去关心什么入口,因为很多东西可以在类初始化时去做,只要你找到类的初始化过程就可以了,至于动态库,完全可以忽略这个入口,直接写你静态函数就可以了。

应该这样实现:

MFC 基本对话框的话,在主程序入口InitInstance中,

CListDemoDlg dlg;

m_pMainWnd = &dlg;

int nResponse = dlgDoModal();//创建模态对话框,这里就开始显示了。

if (nResponse == IDOK)

{

// TODO: Place code here to handle when the dialog is

// 在这里,对你的第二个对话框进行DoModal()

}

当然,这是最简单的办法,其实多对话框窗口(类似安装程序那样的),最好通过隐式属性页实现(VS自带的安装程序就是这样做的)

以上就是关于急!!求懂MFC的大佬帮我解答。MFC单文档工具栏打开文件的路径是怎么获取的,求解。尽量详细点全部的内容,包括:急!!求懂MFC的大佬帮我解答。MFC单文档工具栏打开文件的路径是怎么获取的,求解。尽量详细点、MFC:怎么在显示窗口之前显示一个类似DOS的命令窗口、VC中MFC从哪里开始运行,MFC怎么调试,很急呀等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10100100.html

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

发表评论

登录后才能评论

评论列表(0条)

保存