chaojidayuanzi 2013-09-03 13:44
浏览 896

关于动态创建的问题,内容如下。

IMPLEMENT_DYNCREATE(CMyView,CView)

BEGIN_MESSAGE_MAP(CMyView,CView)

END_MESSAGE_MAP()
void CMyView::OnDraw(CDC * pDC){
pDC->TextOut(100,100,"CMyView::OnDraw");
}
class CMainFrame:public CFrameWnd{
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext );
public:
CSplitterWnd m_splitter1;
CSplitterWnd m_splitter2;
};
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
END_MESSAGE_MAP()
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){
m_splitter1.CreateStatic(this,2,1);
m_splitter2.CreateStatic(&m_splitter1,1,2,WS_CHILD|WS_VISIBLE,m_splitter1.IdFromRowCol(0,0));//先创建两个框架窗口
//其中一个为日字形,还有一个在日字形的上半部分,创建成为倒日字形。
m_splitter2.CreateView(0,0,RUNTIME_CLASS(CMyView),CSize(100,100),pContext);
m_splitter2.CreateView(0,1,RUNTIME_CLASS(CEditView),CSize(100,100),pContext);
m_splitter1.CreateView(1,0,RUNTIME_CLASS(CHtmlView),CSize(200,200),pContext);//然后镶嵌三块玻璃。问题,为何
//三个函数均能够使用动态创建信息。
CHtmlView * pHtml=(CHtmlView*)m_splitter1.GetPane(1,0);//获取某一个视图对象的地址
pHtml->Navigate("c:/");
m_splitter1.SetRowInfo(0,200,100);//设置日字形窗口第0行,高度是200,最低100
// m_splitter1.SetColumnInfo(0,200,100);//列宽
return CFrameWnd::OnCreateClient(lpcs,pContext);//返回基类默认处理

}
class CMyWinApp: public CWinApp{
public:
virtual BOOL InitInstance();
};
CMyWinApp theApp;
BOOL CMyWinApp::InitInstance(){
CMainFrame* pFrame=new CMainFrame();
pFrame->Create(NULL,"mfcsplitter");
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
仅仅在CView中写了两个宏定义,为何子类都能用? 是否父类定义了宏定义,子类都可以用? 那么子类定义了宏定义,父类可不可以用动态创建? CEditView,CHtmlView就这两个

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥15 c++头文件不能识别CDialog