菜鸟问题:为什么 OnHelp 事件会响应两次?

chen1phy 2003-01-02 12:37:01
我的一个form,设置了

BorderStyle :bsDialog
BorderIcons: biSystemMenu|biHelp
HelpContext: 100 (随便设置了一个整数)

Form 上有一个按钮 “确定”

然后我响应 OnHelp 事件,

运行后,我点 “?” 按钮,然后点 “确定”按钮,发现 处理 OnHelp 事件的函数
被调用了两次,不知道 怎么回事? 消息传递过程是怎么样的了?

...全文
36 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
netsys2 2003-01-02
  • 打赏
  • 举报
回复
楼上说的都不对,我刚测试了,的确是两次。

我在FORM上放了两个BUTTON和一个MEMO,其HELPCONTEXT分别设置为1,2,3

我跟踪FormHelp(WORD Command, int Data, bool &CallHelp)传入的参数就知道了,第一次触发的是系统HELP,第二次触发的是我自己的HELP。

因此你在ONHELP代码中应该判断DATA段是否是自己定义的,然后再以处理,就不会处理两次了
yangguo_god 2003-01-02
  • 打赏
  • 举报
回复
你应该先点确定按纽,再点?
chen1phy 2003-01-02
  • 打赏
  • 举报
回复
确定按钮没有响应任何事件

添加一个按钮是因为如果界面上没有任何控件, 点“?”后,点界面没有事件响应
devie 2003-01-02
  • 打赏
  • 举报
回复
你的确定按钮是不是完成onHelp事件处理的
点“?”后,点击界面就会相应一次,先击确定按钮又相应一次

13,825

社区成员

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

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