我创建了一个编辑框,但它没有显示在窗口上。它显示窗口是否不是全屏。如果是全屏,则编辑框会在其后面。这是编辑框的功能
HWND editbox=CreateWindowA("EDIT", NULL,
WS_VISIBLE | WS_EX_TOPMOST | WS_BORDER | ES_LEFT,
87, 81, 150, 17,
hWnd,
(HMENU)5, hInstance, NULL);
我不知道为什么我将它设置为WS_EX_TOPMOST
并且它仍然落后于它。我使用directx 9使我的程序全屏显示
答案 0 :(得分:2)
所有WS_EX_**
个样式都应该作为CreateWindowEx
的第一个参数传递,而不是CreateWindow
的三分之一。这可能会导致问题。请改用CreateWindowExA
。
CreateWindowEx
中的所有参数保持不变,开头只有一个附加参数。
HWND editbox=CreateWindowExA(WS_EX_TOPMOST, "EDIT", NULL,
WS_VISIBLE | WS_BORDER | ES_LEFT,
87, 81, 150, 17,
hWnd,
(HMENU)5, hInstance, NULL);
编辑:我知道出了什么问题。您在第三个参数中忘记了WS_CHILD样式。它是必需的,因此Windows知道这是一个子窗口。
HWND editbox=CreateWindowA("EDIT", NULL,
WS_VISIBLE | WS_CHILD | WS_BORDER | ES_LEFT,
87, 81, 150, 17,
hWnd,
(HMENU)5, hInstance, NULL);
答案 1 :(得分:2)
HWND editbox = CreateWindowA(“EDIT”,NULL, WS_VISIBLE | WS_CHILD | WS_BORDER | ES_LEFT, 87,81,150,17, 的hWnd, (HMENU)5,hInstance,NULL);
如果要在窗口顶部显示新控件,则需要WS_CHILD ...