游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5319|回复: 12

请问一下单击对话框上的进度条发送的是什么消息呀?

[复制链接]

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2009-4-29 23:38:00 | 显示全部楼层 |阅读模式
我想要获得单击进度条的消息,试过WM_COMMOM,WM_NOTIFY,WM_LBUTTONDOWN都没响应呀。还有滑块的消息,当我点击滑块时我检测了WM_HSCROLL消息,它有响应,但是是连续两次的响应,为什么呀?该如何正确获取这些消息呢?

0

主题

24

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2009-4-30 09:59:00 | 显示全部楼层

Re:请问一下单击对话框上的进度条发送的是什么消息呀?

进度条给拥有窗口分别发送WM_HSCROLL和WM_VSCROLL消息(水平和垂直),单击一次先要产生一个消息通知有移动如SB_LEFT,SB_RIGHT(wParam低位)等,如果按住鼠标不放就是一些列的通知,释放鼠标时还要有一个消息通知SB_ENDSCROLL表明释放了鼠标。即使单击,也是有这个释放鼠标的消息的。

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2009-5-1 09:26:00 | 显示全部楼层

Re: 请问一下单击对话框上的进度条发送的是什么消息呀?

谢谢你的回答。
但是我测试了一下,在滑块(SLIDER)上单击鼠标左键,在WM_HSCROLL消息中检测SB_ENDSCROLL时有检测到,但会进出两次,检测SB_LEFT / SB_RIGHT时没有响应,为什么呢?代码如下:
case WM_HSCROLL:
HWND Temp;
Temp==(HWND)lParam;
if(Temp==GetDlgItem(hWnd,IDC_SLIDER))
if(LOWORD(wParam)==SB_ENDSCROLL)
MessageBox(NULL,"OK","OK",MB_OK);
break;
上面的代码会出现两对话框。
if(LOWORD(wParam)==SB_LEFT)
MessageBox(NULL,"OK","OK",MB_OK);
if(LOWORD(wParam)==SB_RIGHT)
MessageBox(NULL,"OK","OK",MB_OK);
则没有任何响应。

而同样的检测代码用于检测进度条(PROGRESS)时没有任何响应,请问为什么呀?

0

主题

24

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2009-5-1 16:03:00 | 显示全部楼层

Re:请问一下单击对话框上的进度条发送的是什么消息呀?

SB_LEFT,SB_RIGHT只是打个比方,消息WM_HSCROLL 的wParam低位可能有SB_ENDSCROLL,SB_LEFT,SB_RIGHT,SB_LINELEFT,SB_LINERIGHT,SB_PAGELEFT,SB_PAGERIGHT,
SB_THUMBPOSITION,SB_THUMBTRACK这些可能性。点击滑块消息是SB_THUMBPOSITION,SB_THUMBTRACK,此时wParam高位就是位置信息,SB_LINELEFT,SB_LINERIGHT是移动一单元,在点击箭头时产生,SB_PAGELEFT,SB_PAGERIGHT在点击滑块和箭头中间的条体时产生。之前我举了个错误的例子。SB_LEFT作用是指示Scroll to far left,就是到最大位置了。

0

主题

24

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2009-5-1 16:06:00 | 显示全部楼层

Re:请问一下单击对话框上的进度条发送的是什么消息呀?

你重新写一下自己的代码吧^_^

0

主题

24

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2009-5-1 19:39:00 | 显示全部楼层

Re:请问一下单击对话框上的进度条发送的是什么消息呀?

我希望我理解对了所说的进度条的意思...

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2009-5-2 00:53:00 | 显示全部楼层

Re:请问一下单击对话框上的进度条发送的是什么消息呀?

我所说的进度条是PROGRESS呀,你好象理解成了SCROLLBAR了吧。还有我说的滑块是SLIDER。

0

主题

24

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2009-5-3 16:28:00 | 显示全部楼层

Re:请问一下单击对话框上的进度条发送的是什么消息呀?

使用MessageBox会导致WM_HSCROLL消息传递两次。

0

主题

24

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2009-5-3 16:31:00 | 显示全部楼层

Re:请问一下单击对话框上的进度条发送的是什么消息呀?

我一直认为sliderbar和scrollbar是一个的。ProgressBar的话..那个东西会产生这么多消息吗?

3

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2009-5-5 23:56:00 | 显示全部楼层

Re: 请问一下单击对话框上的进度条发送的是什么消息呀?

所以我不知道它到底有没有那些消息呀,我想得到我单击PROGRESS的消息呀,难道它没有单击的消息?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 06:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表