vc 窗口静态分割,不同的部分显示不同的内容
我是用了VC++做了一个单窗口程序,进行了动态分割,分成了4个小窗口。我想让四个窗口显示不同的图片,比如bmp的图。请高手告诉一下如何做到?因为ondraw函数只有一个,...
我是用了VC++做了一个单窗口程序,进行了动态分割,分成了4个小窗口。
我想让四个窗口显示不同的图片,比如bmp的图。请高手告诉一下如何做到?
因为ondraw函数只有一个,如何让4个窗口显示不同的图片,最好给个代码示例。
谢谢! 展开
我想让四个窗口显示不同的图片,比如bmp的图。请高手告诉一下如何做到?
因为ondraw函数只有一个,如何让4个窗口显示不同的图片,最好给个代码示例。
谢谢! 展开
1个回答
展开全部
你在分割窗口的时候,每个分割后的区域都会绑定一个View类,你可以绑定不同的View,这样四个窗口就可以实现不同的窗口样式和显示风格。
当然,四个窗口使用同一个View类也是可以的,这样虽然你这个View类只有一个OnDraw函数,但实际上,你建立了四个窗口,就是四个View指针,每个指针对应一个不同的实例,在OnDraw中,获取当前View的Pane位置,就可以知道现在是第几个窗口了。
当然,四个窗口使用同一个View类也是可以的,这样虽然你这个View类只有一个OnDraw函数,但实际上,你建立了四个窗口,就是四个View指针,每个指针对应一个不同的实例,在OnDraw中,获取当前View的Pane位置,就可以知道现在是第几个窗口了。
更多追问追答
追答
如果CInforListView就是MFC原始创建的视图类,那么:
四个分隔视图使用的是同一个类
视图00、10、11三个使用了同一个RunTimeClass指针,我没这样做过,如果无法进行区分也是可能的。
你可以用以下方法测试,通过实际效果知道如果处理不同的视图:
在View类的OnDraw函数中,暂时注销其它自编代码,放入如下代码:
CInforListDoc* pDoc = GetDocument();//?CInforListDoc
ASSERT_VALID(pDoc);
//上面两句应该是原来就有的啊
CView* pView;
POSITION pos=pDoc->GetFirstViewPosition();
int ipos=0;
while(pos!=NULL){
pView=pDoc->GetNextView(pos);
ipos++;
if(this==pView)
{
ipos+=1000;
break;
}
}
CString str = "Can't find me!";
if(ipos>=1000)
str.Format("I'm the %d View.",ipos-1000);
pDC->TextOut(50,50,str);
这样通过显示你就知道每个视图的ipos是多少了。
保留ipos的获取方式,并根据它的值区分view就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询