vs2010中CDialog怎么作为子窗体来显示呢 ?
解决方案 »
- ASP.net中调用ActiveX控件的问题
- 为什么总是说At end of source: error: expected a "}"?
- 鼠标双击、单击的截取。 非常急!!
- send 函数有些不明白的地方
- OnTimer里跑多线程的问题
- 如何使用在Visual C++ 6 下使用最新的Platform SDK?
- vc控制word的问题,急!急!
- 何时该用diallog的child属性,overlapped属性,popup属性
- MFC 中exe模块组件如何调试(非DLL)
- 问个问题啦:怎样在去掉ComboBox的上下和左右滚动条后,使鼠标移上去后,看不见的部分能浮现出来?
- MFC的ribbon中“上下文"控件时怎么玩的啊?
- 在VS2008C++环境下有没有chart控件
1.子窗体可不可以用这种方式来建立呢 ?
m_pFrmChildL = pFrame->CreateNewChild(
RUNTIME_CLASS(CChildFrame), IDR_CSMTYPE, m_hMDIMenu, m_hMDIAccel);
//m_pFrmChildL->SetTitle(_T("DEMO"));2。还查到一种方式
// 将用作文档、框架窗口和视图之间的连接
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_CppFileTYPE,
RUNTIME_CLASS(CCodeEditorDoc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CCodeEditorView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
这个是不是在程序建立的时候就把所有的模板建立好了 ? 模板之间怎么切换呢 ?
你只能用CreateWindow自己创建一个窗口并指定父窗口,或者用CFormView来加载对话框资源。
切换视图看这个:
http://www.codeproject.com/KB/docview/replacingview.aspx
m_pOutput=new CMDIChildWnd();
CCreateContext context;
context.m_pNewViewClass=RUNTIME_CLASS(CC);//tt为CFormView其关联的对话框资源就是你的对话框(将你的对话框style设置为Child)
if(!m_pOutput->LoadFrame(IDI_OUTPUT_WND_HC,WS_MAXIMIZE|WS_OVERLAPPEDWINDOW,pFrame,&context))
return;
m_pOutput->ShowWindow(SW_SHOWMAXIMIZED);
m_pOutput->InitialUpdateFrame(NULL,true);
使用了FomView方式,能显示出来, 但是不能以选项卡方式显示了,成了老式的方式了,这是什么地方原因呢 ?环境是vs2010使用向导建立的程序 , 选项卡部分CMDITabInfo mdiTabParams;
mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE; // 其他可用样式...
mdiTabParams.m_bActiveTabCloseButton = TRUE; // 设置为 FALSE 会将关闭按钮放置在选项卡区域的右侧
mdiTabParams.m_bTabIcons = FALSE; // 设置为 TRUE 将在 MDI 选项卡上启用文档图标
mdiTabParams.m_bAutoColor = TRUE; // 设置为 FALSE 将禁用 MDI 选项卡的自动着色
mdiTabParams.m_bDocumentMenu = TRUE; // 在选项卡区域的右边缘启用文档菜单
//mdiTabParams.m_bTabCloseButton = FALSE;
// mdiTabParams.m_bActiveTabCloseButton = TRUE; EnableMDITabbedGroups(TRUE, mdiTabParams);
这部分失去了效果...,但是采用
m_pFrmChildL = pFrame->CreateNewChild(
RUNTIME_CLASS(CChildFrame), IDR_CSMTYPE, m_hMDIMenu, m_hMDIAccel);
//m_pFrmChildL->SetTitle(_T("DEMO"));
m_pFrmChildL->SetWindowTextW(_T("Scintilla MEMO TEST JAVC C++")) ;
这种方式正常..