我使用CreateWindow创建主窗口。 hInstance中的WNDCLASSEX指定在其下注册该类的实例。所以我需要在hInstance函数中找到CreateWindow

我使用CreateWindow创建一个按钮。现在没有用户定义的WNDCLASSEX。按钮的WNDCLASSEX是全局的。但是我仍然需要将hInstance传递给函数吗?为什么以及正确的传递值是什么?

在Microsoft的示例中,它是(HINSTANCE)GetWindowLong(hMainWnd, GWL_HINSTANCE),但我不知道它是什么。

如果我有任何问题,也请告诉我。

谢谢。

最佳答案



至于为什么,(如果从winapi的 Angular 来看),要创建一个完整的新函数,将所有内容都包含在内,而在所有其他参数仍然可用的情况下,仅使用父级或其他函数,这将是毫无意义的。

我个人不确定要传入的正确值是什么,但是我使用GetModuleHandle(nullptr),它应该等效于传递给WinMain的实例。如果这是您用来创建父窗口的方式,那么它也将与Microsoft的示例(获取用于创建父窗口的实例)的示例相同。如果使用其他应用程序的窗口作为父窗口,则会出现差异。我看到的另一个主要选项是nullptr / NULL,每次我使用它时,其工作方式都与上述选项相同。

我想知道,如果今天在使用NULL和应用程序的HINSTANCE之间存在细微的差别,但是这两种方法都应该可以在Windows上创建子控件。

关于c++ - CreateWindow中的hInstance,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15462064/

10-08 22:28