2015-10-14 115 views
1

我在MFC中有一个标准的SDI应用程序,我想触发标准的文件 - >打开从用户按钮打开文档。MFC触发器ID_FILE_OPEN命令

我该怎么做?

+0

你可以发布你试过的代码? – rrirower

+0

我试图发送一个'ID_FILE_OPEN'消息给我的MainFrame,没有工作。尝试调用“CWinAppEx :: OnFileOpen”,但它受到保护。 – manatttta

+0

我相信你需要发送的消息是'WM_COMMAND','ID_FILE_OPEN'作为参数。细节可能有点偏离,但这可能会让你朝正确的方向发展。 – Steve

回答

2

如果你只是想调用预先定义的文件 - >打开动作,发布此消息:

AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_FILE_OPEN, 0); 
2

您需要设计按钮处理程序代码来创建CFileDialog类的实例。确保在构建对象时设置适当的标志。然后调用它的DoModal方法。如果你需要更多的控制,你可以从CFileDialog派生你自己的类。你应该能够搜索并找到大量的例子。

+0

是不是可以触发文件 - >打开操作?应该这么简单... – manatttta

+1

您可以将此添加到'MainFrame'消息映射:'ON_COMMAND(ID_FILE_OPEN,onfileopen)'然后定义'onfileopen()''CFileDialog dlg(TRUE,...); if(dlg.DoModal()== IDOK)MessageBox(dlg.GetFileName());' –