重要声明(本人犯的一个程序错误)

sincostan 2001-07-20 10:00:07
给pp616回答的一个问题中(http://www.csdn.net/expert/topic/196/196614.shtm),所写的TMyTrackBar源码虽然能工作,但又测试了一下有个问题.

源码:
void __fastcall TMyTrackBar::WndProc(TMessage &Message)
{ TTrackBar::WndProc(Message);
if (Message.Msg == WM_LBUTTONDOWN)
{ int xPos = Message.LParamLo; //对的
int yPos = Message.LParamHi; //对的
TShiftState Shift ;//改正.应该必须赋值
TMouseButton Button;//改正.应该必须赋值
DoMouseDown( Button , Shift,xPos,yPos);
}

if (Message.Msg == WM_LBUTTONUP)
{ int xPos = Message.LParamLo;
int yPos = Message.LParamHi;
TShiftState Shift ;//改正.应该必须赋值
TMouseButton Button;//改正.应该必须赋值
DoMouseUp( Button , Shift,xPos,yPos);
}
} 如果不用Shift,Button参数则看不出来。
测试方法:
在TMyTrackBar的MyOnMouseUp的事件里写
ShowMessage("MouseButton=" + IntToStr(Button));

在一个标准的控件如TButton的OnMouseUp的事件里也写
ShowMessage("MouseButton=" + IntToStr(Button));

结果不一样,对TMyTrackBar的MyOnMouseUp只响应鼠标左键,在我的机器上显示70(无道理),而TButton的OnMouseUp的事件响应鼠标左键和右键,左键为0,右键为1(对的) 肯定TButton的是对的
但具体怎么赋值,我不清楚,望指点
...全文
27 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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