我使用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/