【自绘滑块类,怎么改变滑块按钮的大小?????】

大树学长 2015-01-16 11:37:35
接上一个贴
系统的:

想要的结果:


首先变大按钮包括两个部分:显示区域变大和鼠标响应区域变大。
显示区域变大我能实现,鼠标响应区域有问题:

有人说过用PtInRect(RECT* lprc, POINT pt) ;
我的思路:
在OnMouseMove函数中先获取滑块按钮的区域
this->GetThumbRect(rect);
然后将这个区域宽和长扩大一点,达到变大的效果。
RECT rt = { rect.左,rect.上+10,rect.右,rect.下+10};
然后用PtInRect(RECT* lprc, POINT pt) ;进行判断是否在这个扩大的区域内
if(PtInRect(&rt,point))
{
m_num = true;//BOOL
}
else
m_num = false;

可能再加个鼠标按下的判断。

然后列?
我要能够在扩大的区域内能够拖动滑块移动。
怎么实现拖动滑块按钮的效果?????????????????????????????????
...全文
205 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxychad 2015-01-19
  • 打赏
  • 举报
回复
直接用图片绘制,一张按钮图片,一张背景图片,继承CWnd,OnPaint里面绘制,加上鼠标事件响应,应该能行
  • 打赏
  • 举报
回复
滚动条自己绘制逻辑极为简单,最好放弃自绘。 一个按钮,一个逻辑运算。
大树学长 2015-01-17
  • 打赏
  • 举报
回复
引用 1 楼 lsq19871207 的回复:
你这得自绘了吧? 改变窗口大小调用MomveWindow,或者你自己create出来,create的时候传入窗口大小的rect
自绘的,继承的slider基类。
worldy 2015-01-16
  • 打赏
  • 举报
回复
有人说过用PtInRect(RECT* lprc, POINT pt) ; 我的思路: 在OnMouseMove函数中先获取滑块按钮的区域 this->GetThumbRect(rect); 既然用了蓝色的,那就应该知道矩形大写,那还用蓝色做什么,lz应该先将逻辑理清楚 思路:用2个矩形数据确定滚动区、标尺区的大小和位置==》你自己定义的已知大写位置 一个绘图函数,按照矩形参数绘画 鼠标按住滑动,改变滚动区矩形位置,重新绘画,搞定
信阳毛尖 2015-01-16
  • 打赏
  • 举报
回复
你这得自绘了吧? 改变窗口大小调用MomveWindow,或者你自己create出来,create的时候传入窗口大小的rect

16,472

社区成员

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

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

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