有三个菜鸟问题,望高人解答,平台是vc2008,创建的MDI的工程,用的featurePack的ribbon界面。1. 在mainFrame里设定
mdiTabParams.m_bTabIcons = FALSE; // 设置为 TRUE 将在 MDI 选项卡上启用文档图标
则MDI的标签上就会显示一个小图标,如何动态改变这个图标?(即程序运行中可自行设置图标)2. 对于“新建”命令onFileNew(),放在什么位置比较好?放在Cmainframe.cpp里好像不会响应。我把它放到CChildFrame里,程序如下:
void CChildFrame::OnFileNew()
{
CMultiDocTemplate* m_MyDT;
m_MyDT =new CMultiDocTemplate(
IDR_MAINFRAME,//这里你自己看情况修改
RUNTIME_CLASS(CNewGridDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CNewGridView));
AfxGetApp()->AddDocTemplate(m_MyDT); CNewGridDoc* pDoc=(CNewGridDoc*)m_MyDT-> CreateNewDocument();
//CDocTemplate* m_MyDT = pDoc->GetDocTemplate();
CFrameWnd *pFrame=m_MyDT->CreateNewFrame(pDoc,NULL);//创建新窗口
if(pFrame==NULL)
return;
m_MyDT-> InitialUpdateFrame(pFrame,pDoc);//显示新窗口
}
虽然会创建新的子窗口,但名字好像不太对劲,如果不改写onFileNew,创建的名字就会是my1、my2、my3……这样的顺序,但我改写了之后创建的子窗口名字却是my1、my、my……,如果把子窗口全关掉后重新创建,名字就会是my2、my、my……,(没有序号了)请问如何让名字的序号正常?3. 我把子窗口拆分成上下两个视图,两个视图加载的都是同一个formview,而我在formview的初始化函数里为这个formview加载了一个toolbar。问题就出在toolbar的状态显示上。我点击拆分窗口A里的toolbar的一个button,这个button变为check状态,奇怪的是另外一个拆分窗口B里toolbar也接收到了OnUpdate消息,居然也B里的这个button设置为check状态,可我点击窗口B,B的这个button却又立刻变回了uncheck状态,A里的button也uncheck了,太奇怪了,为什么两个拆分窗口里的toolbar会相互关联?求高人解答。
mdiTabParams.m_bTabIcons = FALSE; // 设置为 TRUE 将在 MDI 选项卡上启用文档图标
则MDI的标签上就会显示一个小图标,如何动态改变这个图标?(即程序运行中可自行设置图标)2. 对于“新建”命令onFileNew(),放在什么位置比较好?放在Cmainframe.cpp里好像不会响应。我把它放到CChildFrame里,程序如下:
void CChildFrame::OnFileNew()
{
CMultiDocTemplate* m_MyDT;
m_MyDT =new CMultiDocTemplate(
IDR_MAINFRAME,//这里你自己看情况修改
RUNTIME_CLASS(CNewGridDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CNewGridView));
AfxGetApp()->AddDocTemplate(m_MyDT); CNewGridDoc* pDoc=(CNewGridDoc*)m_MyDT-> CreateNewDocument();
//CDocTemplate* m_MyDT = pDoc->GetDocTemplate();
CFrameWnd *pFrame=m_MyDT->CreateNewFrame(pDoc,NULL);//创建新窗口
if(pFrame==NULL)
return;
m_MyDT-> InitialUpdateFrame(pFrame,pDoc);//显示新窗口
}
虽然会创建新的子窗口,但名字好像不太对劲,如果不改写onFileNew,创建的名字就会是my1、my2、my3……这样的顺序,但我改写了之后创建的子窗口名字却是my1、my、my……,如果把子窗口全关掉后重新创建,名字就会是my2、my、my……,(没有序号了)请问如何让名字的序号正常?3. 我把子窗口拆分成上下两个视图,两个视图加载的都是同一个formview,而我在formview的初始化函数里为这个formview加载了一个toolbar。问题就出在toolbar的状态显示上。我点击拆分窗口A里的toolbar的一个button,这个button变为check状态,奇怪的是另外一个拆分窗口B里toolbar也接收到了OnUpdate消息,居然也B里的这个button设置为check状态,可我点击窗口B,B的这个button却又立刻变回了uncheck状态,A里的button也uncheck了,太奇怪了,为什么两个拆分窗口里的toolbar会相互关联?求高人解答。
CMultiDocTemplate* m_MyDT;
m_MyDT =new CMultiDocTemplate(IDR_myTYPE,
RUNTIME_CLASS(CmyDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CmyView));
AfxGetApp()->AddDocTemplate(m_MyDT); m_MyDT->OpenDocumentFile(NULL);这样写的话新建的子窗口名字就会全都是“my1”,如果红字部分换成如下代码:
CmyDoc* pDoc=(CmyDoc*)m_MyDT-> CreateNewDocument();
CMDIChildWnd* pFrame=(CMDIChildWnd*) (m_MyDT->CreateNewFrame(pdDoc, NULL));
if(pFrame==NULL)
return;
m_MyDT-> InitialUpdateFrame(pFrame,pDoc);//显示新窗口
除了默认创建的一个子窗口有名字外,我新建的子窗口都没有名字。
CmyDoc* pDoc=(CmyDoc*)m_MyDT-> CreateNewDocument();
CMDIChildWnd* pFrame=(CMDIChildWnd*) (m_MyDT->CreateNewFrame(pdDoc, NULL));
if(pFrame==NULL)
return;
m_MyDT-> InitialUpdateFrame(pFrame,pDoc);//显示新窗口
这一段代码我在vc6下测试是完全正常的,创建出来的子窗口名字会按顺序:my1,my2,m3……
但在vs2008下却不行了,创建的子窗口全没名字,这是为什么?怎么解决啊?
CmyDoc* pDoc = reinterpret_cast<CmyDoc*>(m_MyDT->OpenDocumentFile(NULL));