【问题标题】:How to Add a Window in ConsoleApplication Project C++如何在控制台应用程序项目 C++ 中添加窗口
【发布时间】:2019-03-14 14:03:13
【问题描述】:

嗨,我想在 C++ 中将窗口(Gui)添加到我的 ConsoleApplication 这个怎么做??我需要一个叫 Hwnd 的东西吗?我尝试使用它,但它不适合我

基本上我想要做的是一个 MessageBox,它每次都会出现在屏幕上的其他地方..但我意识到你必须使用 HWND 来做。

我需要教程如何使用 hwnd 创建窗口

我试试:

HWND GetWindow(HWND hWnd, UINT uCmd);

【问题讨论】:

  • 我尝试使用它,但它对我不起作用:那么什么不起作用?对话框没有显示吗?有没有格式化你的硬盘?是不是让你家着火了?显示您的代码。你可以edit你的问题。
  • 对于 Winapi MessageBox,您可以直接删除 HWND 并改用 NULL。它告诉 Windows 谁拥有 MessageBox。如果你使用 NULL,没有人拥有它。
  • HWND GetWindow(HWND hWnd, UINT uCmd); 这只是一个声明。您需要显示 您的 失败代码。阅读此:How to Ask 和此:minimal reproducible example
  • 怎么做?
  • 我现在不知道如何使用 Hwnd...

标签: c++ winapi console-application


【解决方案1】:

检查以下代码是否满足您的要求:

#include <windows.h>

int main()
{
    MessageBox(nullptr, TEXT("Hello World!"), TEXT("Message"), MB_TOPMOST);
}

会是这样的:

【讨论】:

    【解决方案2】:

    您使用了多个标签,我有一个 winapi 解决方案,而不是一个 winforms 解决方案。

    您可以使用标准。 MessageBox 通过调用该函数,但它们不能以任何合理的“价格”“演变”到您的自定义窗口中,因此它们只能通知用户并询问简单的是/否问题。对于“真正的”窗口,让我们忘记 MessageBox。

    最简单的自定义窗口是标准。窗口对话框。它使用预定义的窗口类#32770,因此您不必注册窗口类、创建消息循环等。打开它的最简单方法是 DialogBoxParam 函数。您必须制作一个 .rc 对话框脚本(有很多可视化编辑器),使用资源编译器对其进行编译,链接到您的 .exe 并将其名称作为 DialogBoxParam 的参数传递。

    这是一个控制台应用程序中的窗口示例(仅限 C++ 部分),使用此 DialogBoxParam 调用

    DialogBoxParam(GetModuleHandle(NULL),"EXAMPLE",NULL,ExampleWindowFunction,NULL);
    

    在这里:https://pastebin.com/Crkdy5FB

    它还包含图像绘制(您可能还不需要它,它来自另一个 winapi 示例)。将其用作沙盒,您可能会很快了解它的工作原理以及 hWnd 在这里扮演的角色。

    我了解您的问题。 GUI 变得如此复杂,因此很难理解您不理解的内容。它会阻止提出一个好的问题。

    【讨论】:

    • 这有什么帮助?这只是一个评论。
    • 抱歉,当我尝试添加指向 Pastebin 的链接时发生了一些奇怪的事情。添加了一行无意义的代码,现在发布了。
    • 重新设计了答案。然而,我还不明白为什么 pastebin 链接必须带有“代码”格式以及它们应该如何连接在一起。
    猜你喜欢
    • 2019-01-18
    • 2011-04-20
    • 2014-02-17
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多