谁回答出我上一张帖子的问题,我再给50分

yaojiayin1983 2005-07-25 09:34:37
谁能回答出我上一条帖子,追加50分。上一条帖子的题目是“请教如何判断消息鼠标点击滚动条”。
...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
AntonlioX 2005-07-26
  • 打赏
  • 举报
回复
up
needways 2005-07-26
  • 打赏
  • 举报
回复
向窗口发送 WM_NCHITTEST 消息来检测。
yanghuazh 2005-07-26
  • 打赏
  • 举报
回复
不过,我想问一下,这分数是怎么给的?????
yanghuazh 2005-07-26
  • 打赏
  • 举报
回复
不过说谁能回答出你的帖子,追加50分这好像不太好吧

让人很没面子 没有多少人会稀罕你这几分的
yanghuazh 2005-07-26
  • 打赏
  • 举报
回复
滚动条可分为窗口滚动条与滚动条控制

滚动条控制是一个子窗口,窗口滚动条是窗口的一部分

不过在处理时只要判断WM_VSCROLL(垂直)WM_HSCROLL(水平)消息

两者可由 lParam区分,滚动条控制的lParam是滚动条控制的句柄,窗口滚动条值为0

wParam 消息参数被分为一个低位字和一个高位字,其中低位字指出鼠标进行的操作,即:通知码

LOWORD(wParam)定义:

在winuser.h中有如下定义:

* Scroll Bar Commands
*/
#define SB_LINEUP 0
#define SB_LINELEFT 0
#define SB_LINEDOWN 1
#define SB_LINERIGHT 1
#define SB_PAGEUP 2
#define SB_PAGELEFT 2
#define SB_PAGEDOWN 3
#define SB_PAGERIGHT 3
#define SB_THUMBPOSITION 4
#define SB_THUMBTRACK 5
#define SB_TOP 6
#define SB_LEFT 6
#define SB_BOTTOM 7
#define SB_RIGHT 7
#define SB_ENDSCROLL 8

所以我们在处理时只要在WndProc的switch(message)中加如下代码:

case WM_VSCROLL: //垂直滚动条
{
switch(LOWORD(wParam))
case SB_LINEUP:
si.nPos - =1;
……
break;

……

default:
break;
}

要说明的是

SB_THUMBTRACK 消息的wParam 的高位字是用户拖动滚动框时的当前位置

SB_THUMBPOSITION 消息的wParam 的高位字是用户释放鼠标后滚动框的最终位置







老夏Max 2005-07-26
  • 打赏
  • 举报
回复
GetScrollInfo检测

16,551

社区成员

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

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

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