【问题标题】:Winapi button pressed down按下 Winapi 按钮
【发布时间】:2014-06-30 12:48:51
【问题描述】:

如何检测按钮是否被按下(在 C winapi 中)?按钮是指界面的一部分,而不是键盘按钮或鼠标按钮。我将按钮创建为默认按钮,单击后它们仅发送 WM_COMMAND 消息,但是当按钮处于关闭状态时,我还需要获取消息。如何实现?

【问题讨论】:

  • 这不太可能做任何事情,因为按钮在释放时会生成通知。你做错的可能性很高。
  • 我需要在按钮按下时将某个外部寄存器中的某个位设置为 1,然后在释放按钮时设置为 0,这就是为什么我需要来自按钮的两个通知 - 一个是按下它时,第二个是释放后。
  • @WernerHenze 您听说过 VB 或 C# 中的 MouseDown 事件吗?这是有原因的。 你为什么要知道? .如果你不知道不要评论。
  • 对于遇到此问题的任何人,答案是按钮必须具有 BS_OWNERDRAW 样式。在 WM_DRAWITEM 消息中,您检查按钮的状态。

标签: c windows winapi button


【解决方案1】:

接收 WM_COMMAND 时,只需检查 BN_PUSHED 或 BN_UNPUSHED,而不是 BN_CLICKED。

参考:http://msdn.microsoft.com/en-us/library/windows/desktop/bb775941%28v=vs.85%29.aspx

按钮可能需要使用 BS_PUSHBUTTON 样式集创建。

【讨论】:

  • BS_PUSHBUTTON 样式没有任何作用,因为它为零
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
  • 2018-04-10
  • 2017-12-14
  • 2013-03-28
相关资源
最近更新 更多