0

我现在正在编写一个 Win32 SDK 应用程序。我需要创建一个模态子窗口以从多个选项中进行选择。我的设计是:只需将它们显示在子窗口上,如果用户按下键 1,则选择第一个选项。其他选项相同。选择完成后,子窗口会自动关闭。

我的问题是,有没有一种简单的方法来创建这样一个子窗口?我找到了两种方法,都有一些无聊的步骤。

第一种方法是创建对话框资源并使用 DialogBox 函数。它可以轻松创建模态子窗口。但是由于它是一个模态对话框,系统已经过滤掉了所有的键盘消息。我需要使用一些特殊的技术,比如消息挂钩或其他东西,来获取这些消息。

第二种方式是注册一个类,直接调用CreateWindow(Ex)函数。它可以轻松地创建一个带有键盘消息的窗口。但似乎将其设置为模态对话框很无聊。我需要手动禁用父窗口,设置子窗口前景,为这个窗口创建一个完整的消息循环,并在父窗口销毁后手动启用它。

我已经寻找一种简单的方法来创建具有这两个功能的窗口。但是,除了上述两种方式之外,没有发现任何线索。我不确定这种方式是否存在。谁能告诉我?我感谢您的回复。

4

1 回答 1

0

在我看来,使用 Win32 SDK 确实很复杂,尤其是在创建 GUI 时(通常即使创建一个简单的窗口也可能是一个挑战)。因此向您推荐以下内容:

  1. Microsoft 有一个非常简洁的 API,称为 MFC,它随 Visual Studio 一起提供(我不知道你是否可以在 Visual Studio 之外使用 MFC),并且它有几个包装 Windows SDK 方法的 C++ 类,让你的事情变得更容易。此外,Visual Studio 允许您使用拖放界面来创建您的 GUI(我觉得这非常有用)。

  2. 您可以使用第三方 API 来创建您的 GUI 元素,例如 GTK 或 QT。两者都是用 C/C++ 编写的,都是非常好的 API。希望它们能让您在设计 GUI 时更轻松。

  3. 如果您不需要使用 C/C++,那么我强烈建议您使用 Java 或 C# 等高级语言来开发您的应用程序。我认为用它们设计你的 GUI 应该比在 C/C++ 中做同样的事情要少得多。

于 2012-06-27T20:32:19.440 回答