我现在正在编写一个 Win32 SDK 应用程序。我需要创建一个模态子窗口以从多个选项中进行选择。我的设计是:只需将它们显示在子窗口上,如果用户按下键 1,则选择第一个选项。其他选项相同。选择完成后,子窗口会自动关闭。
我的问题是,有没有一种简单的方法来创建这样一个子窗口?我找到了两种方法,都有一些无聊的步骤。
第一种方法是创建对话框资源并使用 DialogBox 函数。它可以轻松创建模态子窗口。但是由于它是一个模态对话框,系统已经过滤掉了所有的键盘消息。我需要使用一些特殊的技术,比如消息挂钩或其他东西,来获取这些消息。
第二种方式是注册一个类,直接调用CreateWindow(Ex)函数。它可以轻松地创建一个带有键盘消息的窗口。但似乎将其设置为模态对话框很无聊。我需要手动禁用父窗口,设置子窗口前景,为这个窗口创建一个完整的消息循环,并在父窗口销毁后手动启用它。
我已经寻找一种简单的方法来创建具有这两个功能的窗口。但是,除了上述两种方式之外,没有发现任何线索。我不确定这种方式是否存在。谁能告诉我?我感谢您的回复。