vc 窗口静态分割,不同的部分显示不同的内容

我是用了VC++做了一个单窗口程序,进行了动态分割,分成了4个小窗口。我想让四个窗口显示不同的图片,比如bmp的图。请高手告诉一下如何做到?因为ondraw函数只有一个,... 我是用了VC++做了一个单窗口程序,进行了动态分割,分成了4个小窗口。
我想让四个窗口显示不同的图片,比如bmp的图。请高手告诉一下如何做到?
因为ondraw函数只有一个,如何让4个窗口显示不同的图片,最好给个代码示例。
谢谢!
展开
 我来答
bhtzu
推荐于2016-02-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4152万
展开全部
你在分割窗口的时候,每个分割后的区域都会绑定一个View类,你可以绑定不同的View,这样四个窗口就可以实现不同的窗口样式和显示风格。
当然,四个窗口使用同一个View类也是可以的,这样虽然你这个View类只有一个OnDraw函数,但实际上,你建立了四个窗口,就是四个View指针,每个指针对应一个不同的实例,在OnDraw中,获取当前View的Pane位置,就可以知道现在是第几个窗口了。
更多追问追答
追问

这是我分割窗口的代码:

请给出您的代码,非常感谢!

追答

如果CInforListView就是MFC原始创建的视图类,那么:

  1. 四个分隔视图使用的是同一个类

  2. 视图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就可以了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式