在拆分窗口中在什么地方绘图?消息响应函数在什么地方? 不使用拆分窗口时,我们在CView的OnDraw()函数中,或者在OnPaint()中绘图。如果使用拆分窗口时,在各个拆分窗口中,我们在什么地方绘图?还有,拆分窗口的各种消息响应函数在什么地方?如何添加?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 拆分后的每个窗口都有他自己的视图啊,他视图的ONDRAW,ONPAINT就只管这个窗口里绘图啊,你想在哪个视图里画就在哪个视图里ONDRAW,ONPAINT写就行了啊 我们不用拆分窗口时,创建了工程,就生成了一个CView类,重载它的OnDraw()即可实现绘图。如果拆分窗口,从那里找到各个拆分窗口对应的CView类? 忘不吝赐教! MainFrm,拆分的地方, if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CBackPlayerView), CSize(ViewWidth-dluconv, 100), pContext)) { TRACE0("Failed to create first pane\n"); return FALSE; } if (!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CDemCloudpara), CSize(dluconv, 100), pContext)) { TRACE0("Failed to create second pane\n"); return FALSE; } 谢谢!你给出的代码是vc++吗?我编译不能通过,我用的是vs20081>Compiling...1>MainFrm.cpp1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2337: 'color' : attribute not found1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2061: syntax error : identifier 'CBackPlayerView'1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2039: 'GetThisClass' : is not a member of '`global namespace''1>h:\shader_player\shader_player\mainfrm.cpp(181) : error C2143: syntax error : missing ';' before '{'1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2337: 'color' : attribute not found1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2061: syntax error : identifier 'CDemCloudpara'1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2039: 'GetThisClass' : is not a member of '`global namespace''1>h:\shader_player\shader_player\mainfrm.cpp(188) : error C2143: syntax error : missing ';' before '{'1>Build log was saved at "file://h:\shader_player\shader_player\Debug\BuildLog.htm" BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext) { CRect rc; this->GetClientRect(&rc); g_iMainFrmWidth = rc.Width(); g_iMainFrmHeight = rc.Height(); m_wndSplitter1.CreateStatic(this,1,2); //分割窗口,总体左右两列 m_wndSplitter1.SetColumnInfo(0, g_iMainFrmWidth/2, 10); m_wndSplitter1.SetColumnInfo(1, g_iMainFrmWidth/2, 10); m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CVideoView),CSize(g_iMainFrmWidth/2,0),pContext); m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CRecoResultView),CSize(0,0),pContext); return TRUE;}=======================================CVideoView和CResultView分别对应一个视图类,它们有各自的OnDraw函数啊比如,你在资源里添加两个对话框,为这两个对话框分别添加CVideoView类和CResultView类,这两个类你可以派生自CFormView类。 还没有看见你回复的内容,就看到你漂亮的照片,你很漂亮嘛!谢谢!CreateStatic()创建静态的拆分窗口,如果创建动态的呢?谢谢! 还有,创建工程的时候,已经创建了一个View,我在该View中绘图,在左上角上的切分窗口中绘制了图形。其他几个切分窗口都是黑的。创建工程的时候创建的View,和我们在OnCreateClient()中创建的View是什么关系呢?谢谢指教! 如何批量打开一组网页 NtCreateFile的hook函数里调用OutputDebugString报错的问题 怎样让程序的工具栏变成ie那样的大图片的工具栏? rich edit 急!!!!!!!!! 关于钩子? 关于自己创建类的问题??????????????????? 怎样知道一个dll文件内的函数? 有个问题 请看这个错误! VC BC中如何知道容器控件的信息,如程序是在编辑状态下,还是运行状态下? 想问一个关于在vc中使用route命令的问题 为什么定义short arr[200000]会报错?
我们不用拆分窗口时,创建了工程,就生成了一个CView类,重载它的OnDraw()即可实现绘图。
如果拆分窗口,从那里找到各个拆分窗口对应的CView类?
忘不吝赐教!
if (!m_wndSplitter.CreateView(0, 0,
RUNTIME_CLASS(CBackPlayerView), CSize(ViewWidth-dluconv, 100), pContext))
{
TRACE0("Failed to create first pane\n");
return FALSE;
} if (!m_wndSplitter.CreateView(0, 1,
RUNTIME_CLASS(CDemCloudpara), CSize(dluconv, 100), pContext))
{
TRACE0("Failed to create second pane\n");
return FALSE;
}
谢谢!
你给出的代码是vc++吗?
我编译不能通过,我用的是vs20081>Compiling...
1>MainFrm.cpp
1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2337: 'color' : attribute not found
1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2061: syntax error : identifier 'CBackPlayerView'
1>h:\shader_player\shader_player\mainfrm.cpp(180) : error C2039: 'GetThisClass' : is not a member of '`global namespace''
1>h:\shader_player\shader_player\mainfrm.cpp(181) : error C2143: syntax error : missing ';' before '{'
1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2337: 'color' : attribute not found
1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2061: syntax error : identifier 'CDemCloudpara'
1>h:\shader_player\shader_player\mainfrm.cpp(187) : error C2039: 'GetThisClass' : is not a member of '`global namespace''
1>h:\shader_player\shader_player\mainfrm.cpp(188) : error C2143: syntax error : missing ';' before '{'
1>Build log was saved at "file://h:\shader_player\shader_player\Debug\BuildLog.htm"
{
CRect rc;
this->GetClientRect(&rc); g_iMainFrmWidth = rc.Width();
g_iMainFrmHeight = rc.Height(); m_wndSplitter1.CreateStatic(this,1,2); //分割窗口,总体左右两列 m_wndSplitter1.SetColumnInfo(0, g_iMainFrmWidth/2, 10);
m_wndSplitter1.SetColumnInfo(1, g_iMainFrmWidth/2, 10); m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CVideoView),CSize(g_iMainFrmWidth/2,0),pContext);
m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CRecoResultView),CSize(0,0),pContext); return TRUE;
}
=======================================
CVideoView和CResultView分别对应一个视图类,它们有各自的OnDraw函数啊比如,你在资源里添加两个对话框,为这两个对话框分别添加CVideoView类和CResultView类,这两个类你可以派生自CFormView类。
还没有看见你回复的内容,就看到你漂亮的照片,你很漂亮嘛!谢谢!CreateStatic()创建静态的拆分窗口,如果创建动态的呢?
谢谢!
其他几个切分窗口都是黑的。
创建工程的时候创建的View,和我们在OnCreateClient()中创建的View是什么关系呢?谢谢指教!