15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


CStatusBar problem

Mads_G._Houmann@olicom.dk
Monday, April 15, 1996

    VC++ 4.0 / MSDN / Win95:

I have a problem with the CStatusBar. I can't get it to use a 3D-look 
border, that "interfaces" with my framewindow border.

I have created a skeleton SDI app. using AppWizard, but since I don't want 
an Doc-View application I have replaced the standard AppWizard window 
creation:

    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
        IDR_MAINFRAME,
        RUNTIME_CLASS(CATMSwMgVDoc),
        RUNTIME_CLASS(CMainWindow),       // main SDI frame window
        RUNTIME_CLASS(CATMSwMgVView));
    AddDocTemplate(pDocTemplate);

in my CMyWinApp::InitInstance() with a LoadFrame call:

    CMainWindow *pMainFrame = new CMainWindow();
    if ( !pMainFrame->LoadFrame( IDR_MAINFRAME,
         WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE ) )
        return FALSE;
    m_pMainWnd = (CWnd*) pMainFrame;
    pMainFrame->ShowWindow( m_nCmdShow );
    pMainFrame->UpdateWindow();


When I use the DocTemplate code the stausbar gets the normal 3D look, but 
when I use my own code it is flat with no border. The CStatusBar is created
in CMyFrameWnd::OnCreate() and is a member variable. The StatusBar creation 
code is the same for the two examples. 

--
Mads Houmann [mgh@olicom.dk]
Software Engineer
Olicom A/S Denmark




Mads_G._Houmann@olicom.dk
Monday, April 22, 1996

    VC++ 4.0 / MSDN / Win95:

I have a problem with the CStatusBar. I can't get it to use a 3D-look 
border, that "interfaces" with my framewindow border.

I have created a skeleton SDI app. using AppWizard, but since I don't want 
an Doc-View application I have replaced the standard AppWizard window 
creation:

    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
        IDR_MAINFRAME,
        RUNTIME_CLASS(CATMSwMgVDoc),
        RUNTIME_CLASS(CMainWindow),       // main SDI frame window
        RUNTIME_CLASS(CATMSwMgVView));
    AddDocTemplate(pDocTemplate);

in my CMyWinApp::InitInstance() with a LoadFrame call:

    CMainWindow *pMainFrame = new CMainWindow();
    if ( !pMainFrame->LoadFrame( IDR_MAINFRAME,
         WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE ) )
        return FALSE;
    m_pMainWnd = (CWnd*) pMainFrame;
    pMainFrame->ShowWindow( m_nCmdShow );
    pMainFrame->UpdateWindow();


When I use the DocTemplate code the stausbar gets the normal 3D look, but 
when I use my own code it is flat with no border. The CStatusBar is created
in CMyFrameWnd::OnCreate() and is a member variable. The StatusBar creation 
code is the same for the two examples. 

--
Mads Houmann [mgh@olicom.dk]
Software Engineer
Olicom A/S Denmark




Don.Irvine@net-tel.co.uk
Wednesday, April 24, 1996

> When I use the DocTemplate code the stausbar gets the normal 3D look, but 
> when I use my own code it is flat with no border. The CStatusBar is created
> in CMyFrameWnd::OnCreate() and is a member variable. The StatusBar creation

> code is the same for the two examples. 

This is all caused by the WS_EX_CLIENTEDGE extended style. You need to remove
it from the frame window and add it to the view [this is what the doc/view
SDI code would have done for you ... look at CFrameWnd::CreateView].


Don




| Вернуться в корень Архива |