Орган управления "STATIC"

Интересует такой вопрос: "по каким причинам может не отображаться элемент управления "static"?" Дело в том, что я стандартно создаю этот элемент, но он не прорисовывается в окне, "edit" нормально отображается, а этот не хочет.

    #include<windows.h>
#include<tchar.h>

BOOL RegClass(WNDPROC, LPCTSTR, UINT);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
TCHAR szMainClass[] = TEXT("_MainClass_");
//TCHAR szTitle[] = TEXT("The About Window");

TCHAR szEditClass[] = TEXT("edit");

#define ID_EDIT       1001

HINSTANCE hInstance;
int cxClient, cyClient, cxEdit, cyEdit;

int iNumberInstanceApplication = 0; //Номер окна, правда, не работает.)
int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPTSTR lpszCmdLine, int nCmdShow)
{
    HWND hwnd = NULL;
    MSG msg = { };
    hInstance = hInst;

    if (!RegClass(WndProc, szMainClass, COLOR_BTNFACE)) //регистрирую класс окна
        return FALSE;
    /*TCHAR sz[64], iNum[8];                              //пытаюсь создать заголовок
    _stprintf_s(sz, 64, TEXT("%s"), TEXT("Window "));
    _stprintf_s(iNum, 8, TEXT("%d"), iNumberInstanceApplication);
    _tcscat_s(sz, 64, iNum);*/
    if (!(hwnd = CreateWindow(szMainClass, TEXT("Title"),
        WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX |
        WS_MAXIMIZEBOX | WS_THICKFRAME,
        CW_USEDEFAULT, CW_USEDEFAULT,
        CW_USEDEFAULT, CW_USEDEFAULT,
        NULL, 0, hInst, NULL)))
    {
        return FALSE;
    }
    RECT rc;
    GetClientRect(hwnd, &rc);
    cxEdit = 240, cyEdit = 40;
    int cxBeg = (rc.right >> 1) - (cxEdit >> 1);
    int cyBeg = 40;
    HWND hEdit = NULL, hStatic = NULL;
    /*Здесь обрабатываю условие задачи, нужно, при запуске первого экземпляра приложения отобразить окно и 'edet'. При запуске второго экземпляра приложения спросить, хочет ли пользователь, запустить его, если да, то запустить, но без "edit", иначе завершить работу. Но это, на данный момент не важно.*/  
    if (iNumberInstanceApplication == 1)
    {
        hStatic = CreateWindow(TEXT("Static"),  //Создаётся, но не отображается.
            TEXT("Enter password"),
            10,100, 150, 40,
            WS_CHILD | WS_VISIBLE | WS_BORDER |
            SS_CENTER,
            hwnd, (HMENU)0, hInstance, NULL);
        //SetWindowText(hStatic, TEXT("Enter password"));

        /*hEdit = CreateWindow(szEditClass, NULL,
            WS_CHILD | WS_VISIBLE | WS_BORDER |
            ES_LEFT | ES_PASSWORD,
            cxBeg, cyBeg, cxEdit, cyEdit,
            hwnd, (HMENU)ID_EDIT, hInstance, NULL);
        SetFocus(hEdit);*/

    }
    else if (iNumberInstanceApplication > 1)
    {
        int ans = MessageBox(NULL,
            TEXT("Do you want to launce another instance of the application"),
            TEXT("Question"),
            MB_YESNO | MB_ICONQUESTION | MB_RIGHT);
        switch (ans)
        {
        case IDYES:
            break;
        case IDNO:
            DestroyWindow(hwnd);
        }

    }
    else
        MessageBox(NULL,
            TEXT("Sorry, no application inctance is running"), TEXT("Error"), MB_OK);



    ShowWindow(hwnd, SW_SHOWNORMAL);
    UpdateWindow(hwnd);
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

BOOL RegClass(WNDPROC proc, LPCTSTR szName, UINT brBackground)
{
    WNDCLASS wc;
    wc.style = wc.cbClsExtra = wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.lpfnWndProc = proc;
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(brBackground + 1);
    wc.lpszMenuName = (LPCTSTR)NULL;
    wc.lpszClassName = szName;

    return (RegisterClass(&wc) != 0);
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    static HWND hEdit, hwndCurrent, hStatic;
    static int cxClient, cyClient, cxStart, cyStart;
    //int nxMin, nxMax;
    switch (msg)
    {
    case WM_CREATE:
        hwndCurrent = FindWindow(szMainClass, NULL);
        while (hwndCurrent)
        {
            ++iNumberInstanceApplication;
            hwndCurrent = FindWindowEx(NULL, hwndCurrent, szMainClass, NULL);
        }
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, msg, wParam, lParam);
}

Ответы (0 шт):