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

olony 2009-11-16 11:01:39


我先对窗口进行了一些处理后,如图窗口的显示区域和焦点区域发生了错位。我现在想把窗口的显示区域抠下来,在窗口的焦点区域进行重画,应该怎么做?请各位高手帮忙,多谢
...全文
194 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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……函数获取的,那你这个是怎么获取的呢?

15,980

社区成员

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

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