CreateWindowEx返回null:无法创建窗口
CreateWindowEx returns null : unable to create a window
CreateWindowEx方法总是返回null。
我不知道出了什么问题,但我甚至无法创建一个窗口。
我的窗口过程是一个静态方法,BaseWndApplication::WndProc,在另一个类中定义,我不确定这是否会导致任何问题,因为我可以成功注册我的WNDCLASSEX结构。
请注意!!
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine ,
int nCmdShow
)
{
const char * WINDOW_CLASS_NAME = "D2DAppClass";
HRESULT hr;
{
// Register the window class.
WNDCLASSEX wcex = { sizeof(WNDCLASSEX) };
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = BaseWndApplication::WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hbrBackground = NULL;
wcex.lpszMenuName = NULL;
wcex.hCursor = LoadCursor(NULL, IDI_APPLICATION);
wcex.lpszClassName = WINDOW_CLASS_NAME;
if (!RegisterClassEx(&wcex))
return E_FAIL;
HWND m_hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,
WINDOW_CLASS_NAME,
"Direct2D Demo App",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
static_cast<UINT>(ceil(640.f)),
static_cast<UINT>(ceil(480.f)),
NULL,
NULL,
hInstance,
NULL
);
hr = m_hWnd ? S_OK : E_FAIL;
if (SUCCEEDED(hr))
{
ShowWindow(m_hWnd, SW_SHOWNORMAL);
UpdateWindow(m_hWnd);
}
}
return 0;
}
我的回调方法有问题。它被设置为返回0;
我把它改成如下,然后它就起作用了:
static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return DefWindowProc(hWnd, message, wParam, lParam);
}
相关文章:
- 是否可以从控制台应用程序使用 C++/WinRT 创建窗口?
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- 有没有办法一次运行 3 个创建窗口函数?
- 使用带有诅咒库的 stdscr 创建窗口,在边框而不是线条中显示不需要的笑脸字符
- 无法使用 CreateWindowEx 函数创建窗口
- 无法创建窗口
- openGL PBO 使用 wglcontext,而不是创建窗口
- SDL2 无法创建窗口,因为它找不到匹配的 GLX 视觉对象
- 可以控制台应用程序自行创建窗口
- 为对话框创建窗口类
- OpenGL /Glut在Maineventloop()之后创建窗口
- 我无法创建窗口
- 创建窗口参数类型错误
- 在 C++ 中创建窗口
- 获取确切的窗口区域大小 - 创建窗口窗口大小不正确
- WinAPI在dll中创建窗口
- 如何在作为控制台启动的应用程序中创建窗口
- 创建窗口不起作用,但不提供错误消息
- 如何使用 C++ 在 Linux 中创建窗口
- WinAPI 创建窗口 + 子窗口,处理一个按钮按下