MDI结构。支持两种文档视图结构,一种为newdoc,一种为olddoc;当选择新建文档时会弹出一个对话框让选择是新建newdoc还是新建olddoc。问题:想在建立一个newdoc后,再新建文档弹出的对话框中newdoc选项变灰,即只能同时建立一个newdoc文档!请高手解答!谢谢!
解决方案 »
- 在SDK的消息循环里怎么收不到按钮的lbuttondown和lbuttonup消息
- VC 如何动态增加图标
- COM接口,帮看看,那里错了,我要疯了
- smtp的auth login问题...分不是问题
- windows网络编程 第6章 的TCP的例子,用VC正常编译,但build出现如下错误!
- 关于Ctime 和ctimespan的问题。[100分]
- ActiveX 处理 IE 的拖拽事件
- 如何读取手机内数据或者把数据存到手机内(包括sim卡),用vc++可以做到吗?
- 关于工具栏变灰的疑问?
- 串口读数
- 提问&&散分(前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这样就不用判断和文档相关的内容了,也就是说,我们通过用户点击"创建新""创建旧"来做决定.