关于MFC 如何在单文档中 通过CDC 方法去 画出滚动条(不去继承CScrollView这个类);继承之后,使用有bug 5

求详细的解释及完整代码UINTm_ThumbWidth;//滚动块和箭头宽度UINTm_ThumbHeight;//滚动块和箭头高度CRectm_ClientRect;/... 求详细的解释及完整代码

UINT m_ThumbWidth; //滚动块和箭头宽度
UINT m_ThumbHeight; //滚动块和箭头高度
CRect m_ClientRect; //窗口客户区域

CRect m_ThumbRect; //滚动块区域

BOOL m_ButtonDown; //鼠标是否单击滚动块
CPoint m_Startpt; //鼠标按下时的起点
BOOL m_IsLeft; //滚动块是否超过左箭头
BOOL m_IsLeftArrow; //是否单击左滚动条按钮
BOOL m_IsRightArrow;//是否单击右滚动条按钮
BOOL m_IsLeftRange; //是否单击了左滚动区域
BOOL m_IsRightRange;//是否单击了右滚动区域

UINT m_MinRange; //最小滚动范围
UINT m_MaxRange; //最大滚动范围
UINT m_CurPos; //当前的位置(逻辑单位)
double m_Rate; //物理像素与逻辑单位的比率

UINT m_LeftArrow; //左箭头位图ID
UINT m_RightArrow; //右箭头位图ID
UINT m_ChanelBK; //背景位图ID
UINT m_ThumbBK; //滚动块位图ID

这是我定义的一些变量 ,但是不知道如何实现,就高人帮忙
记得是MFC的单文档哦;
展开
 我来答
bhtzu
2012-07-07 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4205万
展开全部
DC画出滚动条???为什么自己找这个麻烦呢?
首先,使用CScrollView没有什么不合适的,如果不是作业、课题,完全没有必要回避。
其次,自己做Scroll完全可以,可怎么能在DC里面做呢。。。比较合理的,应该是在View下面两个子类来实现吧,这样毕竟工作区好弄,滚动条本身也能做消息,这是符合WIN32编程的理念和框架的做法。
使用DC话,纯属找虐吧,完全的坐标判断,矩形区域判断,在消息处理上也很难阅读,后续使用也不好调整和继承。如果不是完全必须,放弃吧!
faketamendie
2012-07-08 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:140万
展开全部
有几个思路,
1.是继承cscrollbar类,通过HOOK或改写消息函数,用贴图的方式实现滚动条的换肤
2.是继承CWND或cstatic,自己写个滚动条的控件类,同样也是用贴图的方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式