24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1341  |  回复: 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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 291分调剂 +8 上岸小莹加油 2026-04-09 9/450 2026-04-15 00:41 by zzzggc
[考研] 一志愿华中农业071010,320求调剂 +5 困困困困坤坤 2026-04-14 6/300 2026-04-14 23:54 by Xurambo2014
[考研] 化工学硕294分,求导师收留 +32 yzyzx 2026-04-12 36/1800 2026-04-14 17:45 by lhj2009
[考研] 材料相关专业344求调剂双非工科学校或课题组 +21 hualkop 2026-04-12 22/1100 2026-04-14 17:44 by lhj2009
[考研] 302分求调剂 +10 凡语祈愿 2026-04-08 11/550 2026-04-14 16:50 by jiangguiquan11
[考研] 335求调剂 +19 想上岸呀!! 2026-04-12 21/1050 2026-04-14 16:23 by Art1977
[考研] 求调剂 +20 MAX怅惘 2026-04-09 22/1100 2026-04-14 14:57 by 独醉梦孤城
[考研] 085600材料与化工329分求调剂 +24 叶zilin 2026-04-13 25/1250 2026-04-14 09:20 by 试管破裂
[考研] 材料考研调剂 +29 云木达达 2026-04-11 31/1550 2026-04-13 13:32 by lyh鲁老师
[考研] 一志愿华中农微生物,288分,三年实验经历 +11 代fish 2026-04-09 11/550 2026-04-12 10:21 by Hayaay
[考研] 一志愿西北工业大学289 085602 +33 yang婷 2026-04-10 34/1700 2026-04-12 08:11 by Art1977
[考研] 求调剂 +3 胃痉挛累了 2026-04-11 5/250 2026-04-11 14:13 by luhong1990
[考研] 0854调剂 +8 950824he@ 2026-04-09 8/400 2026-04-11 10:11 by zhq0425
[考研] 调剂 化学 307 +21 73372112 2026-04-09 23/1150 2026-04-10 23:53 by wj165256
[考研] 吉大计算机技术331分,英语六级,求调剂 +3 峰峰021116 2026-04-09 3/150 2026-04-10 20:01 by chemisry
[考研] 265求调剂 +12 风说她早忘了 2026-04-10 13/650 2026-04-10 18:56 by chemisry
[考研] 292求调剂 +9 笑笑袁 2026-04-09 9/450 2026-04-10 10:05 by LHGeng
[考博] 博士自荐 +7 可可小胖 2026-04-08 7/350 2026-04-10 08:28 by kimhero
[考研] 314求调剂 +14 weltZeng 2026-04-09 14/700 2026-04-09 23:14 by wolf97
[考研] 0860004 求调剂 309分 +6 Yin DY 2026-04-09 6/300 2026-04-09 10:19 by 啊李999
信息提示
请填处理意见