在代码中使用命令以编程方式禁用应用程序中的这两个功能最简单的方法是什么?提前致谢。MFC:在SDI应用程序中禁用新文件和保存文件功能
2
A
回答
4
你可以处理更新UI消息:
ON_UPDATE_COMMAND_UI(ID_FILE_NEW, OnUpdateFileNew)
ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave)
...
void CMainFrame::OnUpdateFileNew(CCmdUI *pCmdUI)
{
pCmdUI->Enable(FALSE);
}
void CMainFrame::OnUpdateFileSave(CCmdUI *pCmdUI)
{
pCmdUI->Enable(FALSE);
}
-1
请拨打CMenu::EnableMenuItem
并附上相应的菜单项,MF_DISABLED
作为第二个参数。这是documentation。
1
覆盖CWinApp::OnFileNew
用自己的功能,如下图所示。
BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, &CMyApp::OnAppAbout)
// Standard file based document commands
**//ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)**
ON_COMMAND(ID_FILE_NEW, &CMyApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
void CMyApp::OnFileNew()
{
//Create a static member variable to hold the state. For the first time create a docment. From next time avoid calling CWinApp::OnFileNew();
if(m_bDocCreated == FALSE)
{
CString strMsg;
strMsg.Format(L"Create New DOC");
AfxMessageBox(strMsg);
CWinApp::OnFileNew();
m_bDocCreated = TRUE;
}
else
{
CFrameWnd* pFrame = (CFrameWnd*)AfxGetMainWnd();
CMyDoc* pDoc = (CMyDoc*)pFrame->GetActiveDocument();
CString strMsg;
strMsg.Format(L"Doc ID = %ld",pDoc->m_lIndex);
AfxMessageBox(strMsg);
}
}
相关问题
- 1. 在我的MFC SDI应用程序中,我试图重写CDocument :: DoSave来保存我的文档,但我的MFC SDI应用程序中出现了错误0xFEEEFEEE
- 2. 必须重新运行应用程序才能在保存文件保存后显示保存的文件
- 3. 将文件保存在应用程序文件夹中
- 4. 在MFC SDI应用程序中调用OnDraw
- 5. MFC SDI与基于文件扩展名
- 6. 启动时没有默认“新文档”的MFC SDI应用程序
- 7. 从应用程序保存文件Android
- 8. 保存文件宿主应用程序
- 9. 在GWT Web应用程序中加载和保存JSON文件
- 10. 在mfc应用程序中显示文本文件时滚动
- 11. 如何在Windows MFC应用程序中禁用创建.pf(预取)文件?
- 12. 如何在MFC SDI应用程序中禁用消息框“无法创建空文档”消息框
- 13. 带txt文件扩展名的SDI应用程序不能输入文字
- 14. 保存文件功能
- 15. 在sd上的文件中保存应用程序事件(logcat)
- 16. 将png文件保存在应用程序图像文件夹中而不使用保存对话框文件
- 17. StdAfx +头文件 - 包含在MFC应用程序中的顺序
- 18. MFC SDI文本编辑器
- 19. 将文件保存到MyDocuments +应用程序文件夹
- 20. UWP应用程序试图将文件保存到文件夹
- 21. 如何保存文件应用程序数据文件夹
- 22. MFC SDI应用程序:在UI显示后自动工作
- 23. 在Cocoa应用程序上禁用基于文档的功能
- 24. 如何在Windows应用程序中的文件夹中保存文件
- 25. 程序编辑窗口的.sdi文件
- 26. 重新加载Suave应用程序文件保存
- 27. 如何将JDeveloper 11g应用程序保存到新文件夹?
- 28. 如何在mfc应用程序中读取.scd数据文件
- 29. 在Visual Studio基于MFC的应用程序中禁用事件处理程序
- 30. 保存应用程序特定的保存文件C#visual studio
ON_COMMAND_RANGE对我来说效果不太好。 – stanigator 2009-09-06 01:31:23
好的,修复了错字(从现有项目复制完成后,应该正确阅读代码!) – Alan 2009-09-06 08:52:48