在代码中使用命令以编程方式禁用应用程序中的这两个功能最简单的方法是什么?提前致谢。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. 将文件保存在应用程序文件夹中
- 2. 在MFC SDI应用程序中调用OnDraw
- 3. 启动时没有默认“新文档”的MFC SDI应用程序
- 4. 保存文件宿主应用程序
- 5. 保存文件功能
- 6. StdAfx +头文件 - 包含在MFC应用程序中的顺序
- 7. MFC SDI文本编辑器
- 8. UWP应用程序试图将文件保存到文件夹
- 9. 将文件保存到MyDocuments +应用程序文件夹
- 10. 如何保存文件应用程序数据文件夹
- 11. MFC SDI应用程序:在UI显示后自动工作
- 12. 在Cocoa应用程序上禁用基于文档的功能
- 13. 如何在Windows应用程序中的文件夹中保存文件
- 14. 如何将JDeveloper 11g应用程序保存到新文件夹?
- 15. 重新加载Suave应用程序文件保存
- 16. 保存应用程序特定的保存文件C#visual studio
- 17. 保存到程序文件文件夹的文件不存在
- 18. 如何在iphone应用程序中保存多个文件包?
- 19. 保存在C#中的文件,应用程序数据
- 20. 在Flex,Web应用程序,asp.net中保存xml文件
- 21. 如何在Android应用程序中保存Excel文件
- 22. 在应用程序包中保存大量文件
- 23. 打开.mobileconfig文件保存在Safari中的应用程序ios
- 24. 在Rails应用程序中编辑文件并保存返回
- 25. ArchiMate - 应用程序功能和应用程序组件关系
- 26. MFC MDI否打开文档=文件新禁用
- 27. 从应用程序保存应用程序目录中的文件
- 28. Ionic2应用程序,文件不存在
- 29. 针对MFC SDI应用程序的网格建议
- 30. MFC SDI应用程序,如何更改菜单项的标题?
ON_COMMAND_RANGE对我来说效果不太好。 – stanigator 2009-09-06 01:31:23
好的,修复了错字(从现有项目复制完成后,应该正确阅读代码!) – Alan 2009-09-06 08:52:48