Code to View/Hide Status Bar in SDI and MDI Applications

Here's a little handler for the OnViewStatusBar message handler to change the "View/Hide Status Bar" menu option so that the application (main) window changes its height according to the size of the visible client area.

provided by: 
Originally published at Internet.com


Ever wanted to change the "View/Hide Status Bar" menu option so that the application (main) window changes its height accordingly preserving the size of the visible client area?

Here's a little handler for the OnViewStatusBar message handler to perform this task. Versions for MFC or Non-MFC available. // // OnViewStatusBar handler // // increase or decrease app window height to adapt to // visible or invisible status bar // void CMainFrame::OnViewStatusBar() // MFC version // by Volker Bartheld { CControlBar* pBar = GetControlBar(AFX_IDW_STATUS_BAR); if (pBar != NULL) { RECT AppWinRect, BarRect; GetWindowRect(&AppWinRect); pBar->GetWindowRect(&BarRect); int iBarHeight = BarRect.bottom - BarRect.top; BOOL bShow = (pBar->GetStyle() & WS_VISIBLE) == 0; ShowControlBar(pBar, bShow, FALSE); if (bShow) { // ... increase frame SetWindowPos(&CWnd::wndNoTopMost, AppWinRect.top, AppWinRect.left, AppWinRect.right-AppWinRect.left, AppWinRect.bottom- AppWinRect.top+iBarHeight, SWP_NOMOVE); } else { // ... decrease frame SetWindowPos(&CWnd::wndNoTopMost, AppWinRect.top, AppWinRect.left, AppWinRect.right-AppWinRect.left, AppWinRect.bottom-AppWinRect.top- iBarHeight, SWP_NOMOVE); } } } void CMainFrame::OnViewStatusBar() // non-MFC-version // by Alexander Sailer { // MFC StatusbarHandler aufrufen OnBarCheck(ID_VIEW_STATUS_BAR); CControlBar* pBar = NULL; BOOL bVisible(false); RECT AppWinRect, BarRect; int iBarHeight(0); // get ptr to status bar pBar = GetControlBar(ID_VIEW_STATUS_BAR); ASSERT(pBar); // Abme_ungen holen GetWindowRect(&AppWinRect); pBar->GetWindowRect(&BarRect); iBarHeight = BarRect.bottom - BarRect.top; // Abfrage ob Bar sichtbar ist bVisible = pBar->IsVisible(); if (bVisible)// ... increase frame { SetWindowPos(&CWnd::wndNoTopMost, AppWinRect.top, AppWinRect.left, AppWinRect.right-AppWinRect.left, AppWinRect.bottom-AppWinRect.top+iBarHeight, SWP_NOMOVE); } else // ... decrease frame { SetWindowPos(&CWnd::wndNoTopMost, AppWinRect.top, AppWinRect.left, AppWinRect.right-AppWinRect.left, AppWinRect.bottom-AppWinRect.top-iBarHeight, SWP_NOMOVE); } }

Downloads

Download source - 1 Kb

Author: Volker Bartheld

Read article at Internet.com site
Related Articles
Regional Articles
- Code to View/Hide Status Bar in SDI and MDI Applications Alabama
- Code to View/Hide Status Bar in SDI and MDI Applications Alaska
- Code to View/Hide Status Bar in SDI and MDI Applications Arizona
- Code to View/Hide Status Bar in SDI and MDI Applications Arkansas
- Code to View/Hide Status Bar in SDI and MDI Applications California
- Code to View/Hide Status Bar in SDI and MDI Applications Colorado
- Code to View/Hide Status Bar in SDI and MDI Applications Connecticut
- Code to View/Hide Status Bar in SDI and MDI Applications DC
- Code to View/Hide Status Bar in SDI and MDI Applications Delaware
- Code to View/Hide Status Bar in SDI and MDI Applications Florida
- Code to View/Hide Status Bar in SDI and MDI Applications Georgia
- Code to View/Hide Status Bar in SDI and MDI Applications Hawaii
- Code to View/Hide Status Bar in SDI and MDI Applications Idaho
- Code to View/Hide Status Bar in SDI and MDI Applications Illinois
- Code to View/Hide Status Bar in SDI and MDI Applications Indiana
- Code to View/Hide Status Bar in SDI and MDI Applications Iowa
- Code to View/Hide Status Bar in SDI and MDI Applications Kansas
- Code to View/Hide Status Bar in SDI and MDI Applications Kentucky
- Code to View/Hide Status Bar in SDI and MDI Applications Louisiana
- Code to View/Hide Status Bar in SDI and MDI Applications Maine
- Code to View/Hide Status Bar in SDI and MDI Applications Maryland
- Code to View/Hide Status Bar in SDI and MDI Applications Massachusetts
- Code to View/Hide Status Bar in SDI and MDI Applications Michigan
- Code to View/Hide Status Bar in SDI and MDI Applications Minnesota
- Code to View/Hide Status Bar in SDI and MDI Applications Mississippi
- Code to View/Hide Status Bar in SDI and MDI Applications Missouri
- Code to View/Hide Status Bar in SDI and MDI Applications Montana
- Code to View/Hide Status Bar in SDI and MDI Applications Nebraska
- Code to View/Hide Status Bar in SDI and MDI Applications Nevada
- Code to View/Hide Status Bar in SDI and MDI Applications New Hampshire
- Code to View/Hide Status Bar in SDI and MDI Applications New Jersey
- Code to View/Hide Status Bar in SDI and MDI Applications New Mexico
- Code to View/Hide Status Bar in SDI and MDI Applications New York
- Code to View/Hide Status Bar in SDI and MDI Applications North Carolina
- Code to View/Hide Status Bar in SDI and MDI Applications North Dakota
- Code to View/Hide Status Bar in SDI and MDI Applications Ohio
- Code to View/Hide Status Bar in SDI and MDI Applications Oklahoma
- Code to View/Hide Status Bar in SDI and MDI Applications Oregon
- Code to View/Hide Status Bar in SDI and MDI Applications Pennsylvania
- Code to View/Hide Status Bar in SDI and MDI Applications Rhode Island
- Code to View/Hide Status Bar in SDI and MDI Applications South Carolina
- Code to View/Hide Status Bar in SDI and MDI Applications South Dakota
- Code to View/Hide Status Bar in SDI and MDI Applications Tennessee
- Code to View/Hide Status Bar in SDI and MDI Applications Texas
- Code to View/Hide Status Bar in SDI and MDI Applications Utah
- Code to View/Hide Status Bar in SDI and MDI Applications Vermont
- Code to View/Hide Status Bar in SDI and MDI Applications Virginia
- Code to View/Hide Status Bar in SDI and MDI Applications Washington
- Code to View/Hide Status Bar in SDI and MDI Applications West Virginia
- Code to View/Hide Status Bar in SDI and MDI Applications Wisconsin
- Code to View/Hide Status Bar in SDI and MDI Applications Wyoming
Related Articles
- Visual Basic .NET Attributes
Attributes are classes that allow individual developers to extend VS.NET tools without rebuilding VS.NET each time. Many attributes are already available, but most of the interesting ones haven't even been written yet. Perhaps you will do so.
- Audio Mixer Control Classes
- Advanced C++/CLI
- Avoiding Boolean Overload
- Enumerate NT services
- Interacting with .NET WinForms, Part 1
- Placing Logo on the Top DockBar of the Frame Window
- Extending CPictureHolder for loading BMP, JPG, etc.
- ListBox with Grayed Out / Non-Selectable Items
- JavaBean Proxies

Rss   Delicious   Digg   Add To My Yahoo   Add To My Google   Bookmark   Search Plugin

Topics:
Architecture & Design Languages & Tools Project Management Web Services
Database Microsoft & .NET Security Wireless
Java Open Source Techniques XML