MFC界面在不同分辨率下显示有问题 的问题

rongewu2006 2009-02-23 11:22:57
我做的一个MFC的界面。里面有用静态框控件画图的
有我自己用CDC画的多个框框,里面也是自己涂上的颜色,
里面放了一些按钮和文本框之类的控件。
这样做主要是为了显示成一块一块地好看。
但是当我把Windows桌面的分辨率改小后界面显示就会出问题。
显示出了一些多余的线条和块之类,请问谁知道这个问题怎么解决吗?
由于我这个问题比较急,所以自己也没有太多的时间试来试去的。
请知道的人多多关照一下。谢谢!!
...全文
881 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Usopp_Dream 2012-09-10
  • 打赏
  • 举报
回复
多谢楼主
gamedragon 2009-02-24
  • 打赏
  • 举报
回复
GetScrollPosition可以拿到当前offset,SetViewPortOrg可以设置画图坐标的映射
rongewu2006 2009-02-24
  • 打赏
  • 举报
回复
好了我也知道了 在OnHScroll 和OnVScroll函数里刷新就行了
rongewu2006 2009-02-24
  • 打赏
  • 举报
回复
感谢楼上的给我指点,我用了GetScrollPosition可以得到当前可视部分左上角相对于
整个视图的位置。但我还有个问题,拖动后要对其进行刷新一次,要在哪里做啊。或者怎么做
因为不刷新就会有一些多余的线条和文字。
allenhiman 2009-02-23
  • 打赏
  • 举报
回复
改变屏幕分辨率后你的程序要进行必要的画图更新。 一些绝对坐标相对于窗口的位置就变了,想必你也清楚屏幕分辨率改变后可能带来的副作用,这要看你的具体代码了。 比如一些绝对坐标值,在不同分辨率下,为了保持原来的格局就要变动.
rongewu2006 2009-02-23
  • 打赏
  • 举报
回复
是啊 当滚动的时候总是在可见的左上角的坐标为(0,0)
都是以左上角的坐标为基准计算的。
请问要怎么映射啊?根据什么来映射
是否滚动条有相对应的函数吧?
gamedragon 2009-02-23
  • 打赏
  • 举报
回复
滚动的时候看一下当前View的左上角坐标,你画图也要根据这个坐标做调整的。
就是说虽然滚动了了View,但是如果没改变映射关系,你在(0,0)画点,它还是在可见的左上角。
rongewu2006 2009-02-23
  • 打赏
  • 举报
回复
我在1024*768的分辨率下编的程序,如果改成分辨率比这个大的话无所谓。只是界面整体变小了
但如果改成比这个小的话就会有问题了如改成800*600就有问题
我的界面不能够完全显示在屏幕上,而会出现一个竖的滚动条和一个横的滚动条。在拖动滚动条的时候
Windows的控件会随着滚动上下左右正常地移动。但是我自己画的线条和描的颜色就不行了
它会按照当前可见的部分取相对位置不动。

比如说我刚打开软件时是在显示器的正中间位置画了一条线。线的下面有个按钮
在我拖动滚动条后刷新,那个按钮的位置会随着拖动而移动到显示的上面部分
而那条线却仍然还是显示在显示器的中间位置

大家有什么帮我解决这个问题的好办法啊

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧