CreateWindow 找不到窗口类

问题描述

我正在使用 CreateWindow() API,它在升级到 VS2019 之前在 VS2015 上正常工作。升级到 VS2015 CreateWindow API 后返回空 HWND。在 AtlAxWinInit() API 之前调用 CreateWindow() 如下所示:

CreateControl()
{
    AtlAxWinInit();
    HWND hwndChild =   CreateWindow(_T("AtlAxWin"),_T("test"),WS_CHILD|WS_VISIBLE,hwnd,NULL,::GetModuleHandle(NULL),NULL);
}

GetLastError() 返回 1407 错误代码,即 ERROR_CANNOT_FIND_WND_CLASS:

找不到窗口类。

你能帮我解决这个问题吗..

谢谢..

解决方法

不同版本的 Visual Studio 中的 ATL 窗口类名称已更改。 VS 2019 为“AtlAxWin140”。

atldef.h 文件在以下宏中定义了 windows 类名的当前版本:ATLAXWIN_CLASS

您应该使用 ATLAXWIN_CLASS 宏而不是 _T("AtlAxWin")。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...