24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1351  |  回复: 7

qiaoyusun

铁虫 (小有名气)

[求助] MFC里怎么给主窗口加滚动条?

图像处理的程序一般都是多窗口的模式,现在子窗口里的滚动条是有的,但是发现当打开的子窗口很多的时候,主窗口就不够大了,所以想加个滚动条,但是不知道怎么操作。如果有高手肯不吝赐教烦请稍微详细一些,比如在哪个类哪个函数里添加什么语句。多谢,多谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

qiaoyusun(金币+5): 就是技术学得不够好啊,我知道子窗口是在initialupdate里设置大小的,但是主窗口不太会。 2011-08-02 21:05:42
qiaoyusun(金币+5): 这个设置我也有,不管用啊 2011-08-03 13:11:31
MFC中,窗口的滚动条是“自动”出现的,而不必自己添加。
但前提是您要选用哪种CView的继承类。
您要选用CScollView,那么,在InitialUpdate函数中,就可以设置窗口的大小。
那么,运行的时候,如果窗口的尺寸小于当初的设置,那么滚动条就自动出现了。

建议:认真看看《Visual C++技术内幕》
2楼2011-08-02 16:07:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)


jjdg(金币+1): 感谢参与 2011-08-02 22:31:22
主窗口用的是CScrollView还是CScrollDialog?

前者可以参考http://blog.csdn.net/keyouan2008/article/details/5820602

后者可以参考http://blog.csdn.net/liang_lq/article/details/6224888
3楼2011-08-02 16:11:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qiaoyusun

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by yalefield at 2011-08-02 16:07:06:
MFC中,窗口的滚动条是“自动”出现的,而不必自己添加。
但前提是您要选用哪种CView的继承类。
您要选用CScollView,那么,在InitialUpdate函数中,就可以设置窗口的大小。
那么,运行的时候,如果窗口的尺寸 ...

选的是CScollView类,InitialUpdate函数里也有设窗口的大小,但是运行的时候窗口的尺寸是变了,滚动条没有唉。
4楼2011-08-02 22:35:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-08-03 00:09:49
引用回帖:
4楼: Originally posted by qiaoyusun at 2011-08-02 22:35:13:
选的是CScollView类,InitialUpdate函数里也有设窗口的大小,但是运行的时候窗口的尺寸是变了,滚动条没有唉。

运行的时候窗口的尺寸,是不是小于InitialUpdate函数里所有设窗口的大小?
5楼2011-08-02 23:47:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qiaoyusun

铁虫 (小有名气)

jjdg: 加代码啊 2011-08-03 22:15:40
jjdg:编辑内容 2011-08-04 13:03
jjdg: 看不见是因为你设得超过了显示器的分辨率 2011-08-04 13:04:32
引用回帖:
5楼: Originally posted by yalefield at 2011-08-02 23:47:42:
运行的时候窗口的尺寸,是不是小于InitialUpdate函数里所有设窗口的大小?

MainFrm的PreCreateWindow里设了cs的大小,主窗口确实会跟着改变。不过如果尺寸设大了超出了显示器的尺寸就看不到边了,设小了也没见有滚动条出现。View的InitialUpdate里的尺寸好像是管着窗口的。

[ Last edited by jjdg on 2011-8-4 at 13:03 ]
6楼2011-08-03 13:17:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jjdg

版主 (知名作家)

优秀版主

【答案】应助回帖

qiaoyusun(金币+10): 2011-08-06 22:07:56
引用回帖:
6楼: Originally posted by qiaoyusun at 2011-08-03 13:17:52:
MainFrm的PreCreateWindow里设了cs的大小,主窗口确实会跟着改变。不过如果尺寸设大了超出了显示器的尺寸就看不到边了,设小了也没见有滚动条出现。View的InitialUpdate里的尺寸好像是管子窗口的。

从你的代码来看,应该是你的sizeTotal太大。cs和cy分别为滚动窗口的水平、垂直分量,表明 窗口的水平、垂直方向尺寸小于其指定像素单位时将出现水平方向滚动条和垂直方向滚动条。通过修改滚动尺寸, 可改变出现滚动条的最小窗口。也就是说,你现在指定的是2000*2000像素的尺寸。一般显示器的分辨率可以达到这个尺寸?
VC++中使用CscrollView代替Cview类即可实现滚动窗口。此时,系统生成OnInitialUpdate()成员函数:
void CmyscrollView::OnInitialUpdat()
{
CscrollView::OnIntialUpdate();
Csize sizeTotal;
SizeTotal.cs=sizeToal.cy=100;
SetScrollSizes(MM-TEXT,sizeTotal);
}

这个例子里面,cs和cy分别为滚动窗口的水平、垂直分量,表明窗口的水平、垂直方向尺寸小于100像素单位时将出现水平方向滚动条和垂直方向滚动条。通过修改滚动尺寸,可改变出现滚动条的最小窗口。例如,若“sizeTotal.cx=600;sizeTotal.cy=800;”,则当窗口尺寸小于600*800时,就会出现滚动条。
努力学习!以正当途径!获得需要的知识!
7楼2011-08-04 12:58:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qiaoyusun

铁虫 (小有名气)

jjdg: 那你看看msdn,里面有例子的吧 2011-08-04 23:42:55
引用回帖:
7楼: Originally posted by jjdg at 2011-08-04 12:58:03:
从你的代码来看,应该是你的sizeTotal太大。cs和cy分别为滚动窗口的水平、垂直分量,表明 窗口的水平、垂直方向尺寸小于其指定像素单位时将出现水平方向滚动条和垂直方向滚动条。通过修改滚动尺寸, 可改变出现滚 ...

OnInitialUpdate里这个sizeTotal的设置是控制子窗口的,当子窗口的PreCreateWindow是cx和cy小于这个sizeTotal的时候就会出现滚动条。决定主窗口大小的设置在MainFrm里的PreCreateWindow函数中。但我就不知道主窗口的sizeTotal在哪里设置。
8楼2011-08-04 16:08:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 qiaoyusun 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 320求调剂 +4 深郊akm 2026-04-17 4/200 2026-04-17 17:32 by 一切OK
[考研] 322求调剂 +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
[考研] 271求调剂 +37 2261744733 2026-04-11 39/1950 2026-04-17 10:11 by 黑科技矿业
[考研] 300求调剂 +11 橙a777 2026-04-15 11/550 2026-04-16 22:43 by cfdbai
[考研] 294求调剂 +14 淡然654321 2026-04-15 14/700 2026-04-16 21:01 by lpl364211
[考博] 申博自荐 +3 Linxia林夏 2026-04-13 3/150 2026-04-16 12:55 by 墨荷之露
[考研] 一志愿A区211,22408 321求调剂 +6 随心所欲☆ 2026-04-15 7/350 2026-04-15 21:45 by lbsjt
[考研] 085404 22408 309分求调剂 +9 lzmk 2026-04-14 10/500 2026-04-15 20:02 by 学员JpLReM
[考研] 药学求调剂 +11 RussHu 2026-04-12 13/650 2026-04-15 19:07 by zhuwenxu
[考研] 085801电气专硕272求调剂 +19 电气李 2026-04-13 21/1050 2026-04-15 13:37 by 黑科技矿业
[考研] 211本科材料化工求调剂 +19 YHLAH 2026-04-11 23/1150 2026-04-14 22:25 by fenglj492
[考研] 求调剂 +12 何气正 2026-04-13 13/650 2026-04-14 14:47 by zs92450
[考研] 085600材料与化工329分求调剂 +24 叶zilin 2026-04-13 25/1250 2026-04-14 09:20 by 试管破裂
[考研] 考研英一数一338分 +9 长江大学东校区 2026-04-13 10/500 2026-04-14 00:41 by 王珺璞
[考研] 求调剂,985材料与化工348分 +9 涵竹刘 2026-04-11 14/700 2026-04-13 22:26 by 涵竹刘
[考研] 297工科,求调剂? +13 河南农业大学-能 2026-04-12 13/650 2026-04-13 14:12 by dingyanbo1
[考研] 290求调剂 +18 柯淮然 2026-04-12 20/1000 2026-04-13 12:56 by cyh—315
[考研] 一志愿085802 323分求调剂 +13 drizzle_9 2026-04-12 14/700 2026-04-13 10:26 by Faiz5552
[考研] 344 材料专业 求调剂211 无地域要求 +8 hualkop 2026-04-11 8/400 2026-04-12 22:24 by fqwang
[考研] 346分,工科0854求调剂,专硕 +6 moser233 2026-04-12 7/350 2026-04-12 22:11 by fqwang
信息提示
请填处理意见