【问题标题】:Is any application have HWND?是否有任何应用程序具有 HWND?
【发布时间】:2013-04-21 05:45:07
【问题描述】:

我正在学习 C++。我想知道是否有任何 C++ 应用程序有 HWND。示例波纹管应用程序,没有创建窗口。 如果有,我怎样才能得到它的 HWND?非常感谢!

#include <windows.h>

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow )
{
    MSG msg;
    while( GetMessage( &msg, NULL, 0, 0 ) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
}

【问题讨论】:

标签: c++ windows hwnd


【解决方案1】:

“我正在学习 C++。我想知道是否有任何 C++ 应用程序具有 HWND。” 最短的答案是。 HWND 是用于编写 Windows 应用程序的库中定义的类型。 C++ 是一种可以用来执行此操作的语言,只要您有提供函数的库(包括 HWND 类型)。

您可以为 CMD 提示符或 Unix 编写与 Windows 无关的程序。 试试这个 C 风格的程序。将下面的文字复制到a.cpp文件中,编译生成a.exe:

#include <stdio.h>
int main()
{
    printf( "Hello world\n" ) ;
    return 0 ;
}

当你运行cmd时,将目录切换到a.exe所在的位置,然后运行a.exe你会看到:

Hello world

如果您打算学习 C++,则无需编写 Windows 应用程序。您可以编写 CMD 或 Linux 程序。 找一本关于 C++ 主题的好书。 祝你好运!

【讨论】:

  • 在 Windows 下,即使您可能不知道,这个程序也会有一个 HWND 与之关联。它在某处显示输出,“某处”是一个窗口,该窗口有一个 HWND。
【解决方案2】:

你需要创建一个。

查看CreateWindowExShowWindow

【讨论】:

  • 也就是说如果我不创建Window,我的应用就不能有HWND?
  • @user2289150:有两种可能性。您的 Windows 应用程序是 GUI 应用程序,在这种情况下,可以有 0、1 或多个 HWND - 因为您创建它们 - 或者它是控制台应用程序,在这种情况下,您通常从 CMD.EXE 获取 HWND。
猜你喜欢
  • 2017-09-23
  • 2011-12-12
  • 1970-01-01
  • 2019-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多