CSplitterWnd m_wndSplitter;
virtual BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT lpcs,CCreateContext* pContext);
然后在MainFrm文件里重载了CMainFrame::OnCreateClient
BOOL CMainFrame::OnCreateClient( LPCREATESTRUCT lpcs,CCreateContext* pContext)
{
m_wndSplitter.CreateStatic(this,1,2);
CRect rect;
GetClientRect(&rect);
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CSpliterTestView),CSize(rect.Width()-rect.Width()/2,rect.Height()),pContext);
m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CNewView),CSize(rect.Width()/2,rect.Height()),pContext);
return TURE;
}
CSpliterTestView和CNewView是另外两个用于显示图片的类,基类都是CView。
然后编辑了这两个类中响应的OnDraw函数,给两个按钮添加了事件响应,一个基于CSpliterTestView,一个基于CNewView,执行程序后我发现,想要让拆分后的一个子窗口显示对应的图像,需要先在那个子窗口上点一下鼠标左键,再按相应的按钮图片才能显示出来,请问是何原因?
7 个解决方案
#1
在你的APP类中,把XXXAPP::InitInstance()函数中的
{
........................................
........................................
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTestViewDoc),
RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(XXXView));//把“XXXView”改为你想要的CSpliterTestView或者CNewView试试。
.........................................
.........................................
}
#2
执行程序后我发现,想要让拆分后的一个子窗口显示对应的图像,需要先在那个子窗口上点一下鼠标左键,再按相应的按钮图片才能显示出来,请问是何原因?
-------------------------------------------------
如果不先在CNewView对应的窗口中点一下,图片就显示不出来???
-------------------------------------------------
如果不先在CNewView对应的窗口中点一下,图片就显示不出来???
#3
是的,点一下那个窗口以后再点相应的按钮才能显示图片
#4
是的,点一下那个窗口以后再点相应的按钮才能显示图片
#5
把响应函数放在CMainFrame中,然后由CMainFrame调用相应的CView函数
#6
我改完以后是这样:
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSpliterTestDoc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(CNewView)
);
但还是不行。依然要点一下窗口再点相应按钮才能显示图片
#7
多谢提示 找到办法了
#1
在你的APP类中,把XXXAPP::InitInstance()函数中的
{
........................................
........................................
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTestViewDoc),
RUNTIME_CLASS(CMainFrame),
RUNTIME_CLASS(XXXView));//把“XXXView”改为你想要的CSpliterTestView或者CNewView试试。
.........................................
.........................................
}
#2
执行程序后我发现,想要让拆分后的一个子窗口显示对应的图像,需要先在那个子窗口上点一下鼠标左键,再按相应的按钮图片才能显示出来,请问是何原因?
-------------------------------------------------
如果不先在CNewView对应的窗口中点一下,图片就显示不出来???
-------------------------------------------------
如果不先在CNewView对应的窗口中点一下,图片就显示不出来???
#3
是的,点一下那个窗口以后再点相应的按钮才能显示图片
#4
是的,点一下那个窗口以后再点相应的按钮才能显示图片
#5
把响应函数放在CMainFrame中,然后由CMainFrame调用相应的CView函数
#6
我改完以后是这样:
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSpliterTestDoc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(CNewView)
);
但还是不行。依然要点一下窗口再点相应按钮才能显示图片
#7
多谢提示 找到办法了