仅当我用鼠标移动窗口时,带有win32 api的标签才会显示

时间:2020-05-07 12:04:28

标签: c++ winapi

在父窗口出现的同时,我无法显示标签(静态控件)。 如果我用鼠标移动窗口,则标签仅显示在主窗口中。 你能帮助我吗 ? 这是代码:

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM keyPressed, LPARAM lParam)
{

    switch (uMsg)
    {
    case WM_CREATE:
    {   
        addControls(hwnd);

        return 0;

    }
    case WM_DESTROY:
    {
        PostQuitMessage(0);
        return 0;
    }

    case WM_PAINT:
    {

        return 0;
    }
    default:
        return DefWindowProc(hwnd, uMsg, keyPressed, lParam);
    }

    return 0;
}

void addControls(HWND hwnd)
{
    hwndLabel = CreateWindowW(L"static", L"Choose a resolution:", WS_VISIBLE|WS_CHILD|SS_LEFT,10, 40, 250, 200,hwnd, NULL, NULL, NULL);

}

    int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nCmdShow)
{

    HWND hwnd;
    //HWND hwndParamWindow;
    MSG msg;
    WNDCLASS wc;


    RECT rc;
    GetWindowRect(GetDesktopWindow(), &rc);

    HANDLE processHandle = GetCurrentProcess();

    wc.style = 0;
    wc.lpfnWndProc = MainWndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hinstance;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
    wc.lpszMenuName =  NULL;
    wc.lpszClassName = (LPCSTR)"WinClass";

    if(!RegisterClass(&wc)) 
        return FALSE;

    hwnd = CreateWindowW(L"WinClass", L"title", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 200, 200, 900, 900, NULL, NULL, NULL, NULL);

0 个答案:

没有答案