MDI结构。支持两种文档视图结构,一种为newdoc,一种为olddoc;当选择新建文档时会弹出一个对话框让选择是新建newdoc还是新建olddoc。问题:想在建立一个newdoc后,再新建文档弹出的对话框中newdoc选项变灰,即只能同时建立一个newdoc文档!请高手解答!谢谢!
解决方案 »
- 如何双击运行的*.scr文件,,让它返回时返回到登陆界面
- 初用VC Socket编程 问下程序怎么单机调试?30分
- 象WORD中的打印页面设置对话框怎样调用, (急大侠救命!!!)
- 求vc6下载地址?不要创天中文版
- 请问在COM中怎样用IDispatch调用dotnet中的类的重载了的方法啊?
- 3D图形编程的问题,建议有分!!
- 怎么打atl写的activeX打成一个cab的包?
- 怎么才能成为一名合格的软件项目经理?
- 怎么调出本地连接属性对话框?
- VC++ 7.1 (Visual Studio 2003) 的源代码有没有办法在VC6下运行?
- 提问&&散分(前20位每位3分.后到者无分...呵呵,如果不足则给最佳回答者多分,其余平分)
- (菜鳥問題)在VC中如何連接MySql數據庫?可以用ADO嗎?急急急急..........
你的目的是不是每钟文档只能产生一个视图啊?
应该也可以这么说。
2)如果nOpenDocuments为1,则使新建灰掉这里提供一下计算文档个数的代码,我这里是一个文档模版的情况,int CXXXXApp::NumberOfOpenDocuments() const
{
int nOpenDocuments = 0;
POSITION posTemplate = GetFirstDocTemplatePosition();
while (posTemplate != NULL)
{
CDocTemplate* pTemplate = GetNextDocTemplate(posTemplate);
ASSERT(pTemplate->IsKindOf(RUNTIME_CLASS(CDocTemplate)));
POSITION posDoc = pTemplate->GetFirstDocPosition();
while (posDoc != NULL)
{
CDocument* pDoc = pTemplate->GetNextDoc(posDoc);
++nOpenDocuments;
}
}
return nOpenDocuments;
}希望对你有所帮助!
{
pCmdUI->Enable(NumberOfOpenDocuments()==0);
}
pTemplate->GetDocString(sExt, CDocTemplate::filterExt) ;
然后将sExt和你想建立的模板名字比较
建一全程可以访问的变量比如放在CAPP类的PUBLIC变量声明中:
ENUM CREATE_TYPE{CR_NEW,CR_OLD,CR_ALL};public:
CREATE_TYPE ct ;在InitInstance中 ct = CR_ALL;然后当你在NEW菜单中弹出一个窗口让用户选择时,
CYouApp * m_app = (CYouApp *)AfxGetapp();switch(m_app->ct)
{
case CR_all :全都可以创建 break;
case CR_new :只能创建新的 break;
case CR_old :只能创建旧的 break;
default :break;
}当用户点选了相关按钮后再设成相关的值.
建一全程可以访问的变量比如放在CAPP类的PUBLIC变量声明中:
ENUM CREATE_TYPE{CR_NEW,CR_OLD,CR_ALL};public:
CREATE_TYPE ct ;在InitInstance中 ct = CR_ALL;然后当你在NEW菜单中弹出一个窗口让用户选择时,
CYouApp * m_app = (CYouApp *)AfxGetapp();switch(m_app->ct)
{
case CR_all :全都可以创建 break;
case CR_new :只能创建新的 break;
case CR_old :只能创建旧的 break;
default :break;
}当用户点选了相关按钮后再设成相关的值,比如:
用户点了"创建新"后,就把 m_app->ct设为 CR_OLD
用户点了"创建旧"后,就把 m_app->ct设为 CR_NEW这样就不用判断和文档相关的内容了,也就是说,我们通过用户点击"创建新""创建旧"来做决定.