窗口实际显示区域和焦点区域错位了,怎么办?

olony 2009-11-16 11:01:39


我先对窗口进行了一些处理后,如图窗口的显示区域和焦点区域发生了错位。我现在想把窗口的显示区域抠下来,在窗口的焦点区域进行重画,应该怎么做?请各位高手帮忙,多谢
...全文
135 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
olony 2009-11-16
这两个函数说明:
ClientToScreen判断窗口内以客户区坐标表示的一个点的屏幕坐标
ScreenToClient判断屏幕上一个指定点的客户区坐标

似乎是判断点是否在屏幕坐标和客户区中的作用。测试后也没看到有什么效果。另外我用copyrect也没有成功。请问还有没有什么方式方法
  • 打赏
  • 举报
回复
vcTiro 2009-11-16
ScreenToClient/ClientToScreen
用这组函数中的一个调整一下你的RECT位置。
  • 打赏
  • 举报
回复
olony 2009-11-16
查资料,ClientToScreen和ScreenToClient仅仅是把屏幕坐标和窗口坐标进行转换,不会自动调整窗口显示层和窗口焦点区域的位置。他们仅接受(window HWND,a point)两个参数,即对a point的坐标在屏幕坐标和窗口坐标间转换,为程序所用

我贴出的图,背景是一张图片,为什么用图片?
如果不用图片,窗口焦点灰色区域无法直观的看到,用了背景图后,在窗口移动时,不设置刷新时,窗口的显示区域和焦点区域不一致的情况就能直观地看到了

我就是想把窗口显示区域在屏幕上移动到窗口焦点区域,仅移动屏幕显示区域层,因为如果是move窗口的话,两个层都移动,仍然是错为显示的。不知道我说明白没有?
  • 打赏
  • 举报
回复
vcTiro 2009-11-16
你的窗口是怎么来的?看样子有点像是位图中的一块?
那两个函数,是处理HWND窗口坐标时经常要用到的,也就是RECT是通过GetWindowRect……函数获取的,那你这个是怎么获取的呢?
  • 打赏
  • 举报
回复
相关推荐
发帖
界面
加入

1.5w+

社区成员

VC/MFC 界面
社区管理员
  • 界面
申请成为版主
帖子事件
创建了帖子
2009-11-16 11:01
社区公告
暂无公告