c ++编辑框在主窗口后面

时间:2010-11-05 21:40:35

标签: c++ winapi visual-c++

我创建了一个编辑框,但它没有显示在窗口上。它显示窗口是否不是全屏。如果是全屏,则编辑框会在其后面。这是编辑框的功能

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使我的程序全屏显示

2 个答案:

答案 0 :(得分:2)

所有WS_EX_**个样式都应该作为CreateWindowEx第一个参数传递,而不是CreateWindow的三分之一。这可能会导致问题。请改用CreateWindowExACreateWindowEx中的所有参数保持不变,开头只有一个附加参数。

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 ...