检测是否采取了事件 - win32

时间:2014-06-08 02:06:08

标签: c++ winapi events

我想知道是否有人可以帮我解决这个问题,因为我一直在环顾谷歌,很有可能我找到了它,但我不明白该怎么做。基本上这是我想要执行的例程。我有按钮' a'和按钮'如果按钮' a'按下然后打开一个消息框。如果按钮''按下然后打开一个新窗口并显示该窗口的内容。

很抱歉这么模糊,基本上,我的应用程序上有2个按钮。 1被标记为' a'和另一个' b。如何告诉我的应用程序运行某种循环来检查这些按钮是否被按下?如果单击第一个按钮,则打开一个消息框,如果第二个按钮则打开另一个窗口类。然后,我将如何向在同一应用程序中打开的窗口类添加新属性?

我在考虑在switch语句中采用WM_COMMAND方法,但是CASES的id是什么以及它们如何与每个按钮对应? - 我在这里得到的任何帮助都非常感谢,代码示例将更加受到赞赏!

干杯

1 个答案:

答案 0 :(得分:1)

在Win32中,每个按钮都有一个数字ID。为所有按钮提供不同的ID是一个好习惯。您有责任选择值并将这些数字分配给按钮。

根据环境:纯Win32,MFC等,定义值和分配值的细节将有所不同。您可以在创建窗口时指定id:

HWND WINAPI CreateWindow
(
  _In_opt_  LPCTSTR lpClassName,
  _In_opt_  LPCTSTR lpWindowName,
  _In_      DWORD dwStyle,
  _In_      int x,
  _In_      int y,
  _In_      int nWidth,
  _In_      int nHeight,
  _In_opt_  HWND hWndParent,
  _In_opt_  HMENU hMenu,
  _In_opt_  HINSTANCE hInstance,
  _In_opt_  LPVOID lpParam
);

id在hMenu参数中传递。在http://msdn.microsoft.com/en-us/library/windows/desktop/ms632679(v=vs.85).aspx中查找详细信息。在Windows窗口中,id不能有菜单。听起来很有趣,但这就是80年代中期他们实现这一点的方式。

分配了ID后,您可以并且应该在WM_COMMAND处理程序中使用它们。