Status bar в MDI-приложении стирается дочерними окнами
От: Misha5  
Дата: 24.02.03 17:00
Оценка:
Прошу совета вот в какой ситуации:
создано приложение, в котором зарегистрированы классы и создано frame window, client window и, затем, status bar, принадлежащий frame window. До этого момента все хорошо. Затем создаются mdi child windows и вот они, если их таскать мышью по frame window, затирают собою status bar. В чем проблема и как ее решить — не понимаю

Может быть кто посоветует?

... *** WinMain ***
 
// Register the frame window class
    wndclass.style         = 0 ; //CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc   = FrameWndProc ;
    wndclass.cbClsExtra    = 0 ;
    wndclass.cbWndExtra    = 0 ;
    wndclass.hInstance     = hInstance ;
    wndclass.hIcon         = LoadIcon (hInstance, szAppName) ;
    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
    wndclass.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE + 1) ;
    wndclass.lpszMenuName  = NULL ;
    wndclass.lpszClassName = szFrameClass ;
...

// Register the child window class
    wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc   = CgWndProc ;
    wndclass.cbClsExtra    = 0 ;
    wndclass.cbWndExtra    = sizeof (HANDLE) ;
    wndclass.hInstance     = hInstance ;
    wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
    wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
    wndclass.lpszMenuName  = NULL ;
    wndclass.lpszClassName = szCgClass ;

// Create the frame window
    hwndFrame = CreateWindow (szFrameClass, szAppName,
                              WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              CW_USEDEFAULT, CW_USEDEFAULT,
                              NULL, hMenuInit, hInstance, NULL) ;
...

   *** WndProc ***
case WM_CREATE:
hwndClient = CreateWindow (TEXT ("MDICLIENT"), NULL,
                           WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE,   
                           CW_USEDEFAULT, CW_USEDEFAULT,
            CW_USEDEFAULT, CW_USEDEFAULT, 
            hwnd, (HMENU) 1, hInst,
                           (PSTR) &clientcreate) ;

hwndStatus = CreateWindowEx(0L, STATUSCLASSNAME,
            "", 
            WS_CHILD | WS_BORDER | WS_VISIBLE | SBARS_SIZEGRIP, 
            0, 0, 0, 0, 
            hwnd, 
            (HMENU)IDS_STATUSBAR, 
            hInst, 
            NULL) ;
...


Миша
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.