关于CDialogSK的问题

ghostar03 2013-11-17 11:41:14
本人现需要做一个类似photoshop测量尺的工具,即分别有两条横向,两条纵向的可自由拖动的测量线,并用两个Edit分别显示测量线之间的距离(多少个像素)。背景介绍完毕,现在遇到的问题如下:
我用CDialogSK把整个背景透明掉,整个界面只剩下两组测量线和两个Edit框,但我发现当我想要拖动测量线时,测量线会动一下然后就不动了,经分析后,发现当点在测量线上时能收到WM_MOUSEMOVE消息,但一旦拖动出测量线的范围(1366X1的线)后,即指在后面背景上时就再也收不到WM_MOUSEMOVE消息了(因为透明所以已经指到背后的窗口去了而不是本程序的窗口,因此捕获不到WM_MOUSEMOVE消息),我现在暂时的解决办法是在背景的四周弄一层不透明的区域,然后鼠标在该区域内即可正常拖动测量线了。但这并不是解决问题,只是回避了问题。
我现在的问题是我在透明的区域要怎么捕获到WM_MOUSEMOVE消息?或者说除了CDialogSK还有别的办法可以实现透明背景且可以捕获到鼠标消息吗?
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghostar03 2013-11-21
  • 打赏
  • 举报
回复
沉得好快
worldy 2013-11-19
  • 打赏
  • 举报
回复
居然能catpure了,那你可以使用范围判断啊 if (x>x1-3 && x<x1+3) 这样的判断 形式
ghostar03 2013-11-19
  • 打赏
  • 举报
回复
To worldy : SetCapture可以满足要求,感谢! 但又发现了另外一个问题,因为测量线只有1366x1,而背景又是透明掉的,因此非常难选中测量线,经常会选到了透明底下的其他窗口,用起来非常的不顺手。请问这个有办法解决吗?
ghostar03 2013-11-19
  • 打赏
  • 举报
回复
我也是判断范围,但仅在四周的不透明区域可以,在透明的区域就不行。
worldy 2013-11-18
  • 打赏
  • 举报
回复
试试SetCapture将鼠标捕捉住,看行不行

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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