关于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的单文档哦; 展开
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的单文档哦; 展开
2个回答
展开全部
DC画出滚动条???为什么自己找这个麻烦呢?
首先,使用CScrollView没有什么不合适的,如果不是作业、课题,完全没有必要回避。
其次,自己做Scroll完全可以,可怎么能在DC里面做呢。。。比较合理的,应该是在View下面两个子类来实现吧,这样毕竟工作区好弄,滚动条本身也能做消息,这是符合WIN32编程的理念和框架的做法。
使用DC话,纯属找虐吧,完全的坐标判断,矩形区域判断,在消息处理上也很难阅读,后续使用也不好调整和继承。如果不是完全必须,放弃吧!
首先,使用CScrollView没有什么不合适的,如果不是作业、课题,完全没有必要回避。
其次,自己做Scroll完全可以,可怎么能在DC里面做呢。。。比较合理的,应该是在View下面两个子类来实现吧,这样毕竟工作区好弄,滚动条本身也能做消息,这是符合WIN32编程的理念和框架的做法。
使用DC话,纯属找虐吧,完全的坐标判断,矩形区域判断,在消息处理上也很难阅读,后续使用也不好调整和继承。如果不是完全必须,放弃吧!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询