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

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.

Local Companies

Ic Solutions Inc
(207) 883-8696
15 Holly St
Scarborough, ME
Norton Lamb & Company
(207) 846-3166
30 Forest Falls Dr
Yarmouth, ME
Its Inc
(207) 667-0489
Ellsworth, ME
Professional Software Solutions
(207) 828-1096
100 Commercial St
Portland, ME
Fiber M Technologies
(207) 942-2222
257 Harlow St
Bangor, ME
Sunbelt Consulting
(207) 883-8008
Scarborough, ME
Keane Inc
(207) 883-0076
7 Portland Farms Rd
Scarborough, ME
Pinnacle Development Group
(207) 783-7216
10 Falcon Rd
Lewiston, ME
Verity Software House
(207) 729-6767
45A Augusta Rd
Topsham, ME
Sriven Infosys Inc
(207) 774-1700
Portland, ME

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

Featured Local Company

Office Solutions ME

207-319-6045
Portland Rd
Gray, ME

Related Articles
- Advanced C++/CLI Scarborough ME
C++/CLI has a number of advanced features that make developing and maintaining applications easier. Discover how these allow types to be moved between assemblies without breaking existing application, allow fast and efficient interoperability between native functions, and make it possible to create functions that take a variable number of parameters while still maintaining type safety.
- Enumerate NT services Scarborough ME
- JavaBean Proxies Scarborough ME
- ListBox with Grayed Out / Non-Selectable Items Scarborough ME
- Interacting with .NET WinForms, Part 1 Scarborough ME
- Avoiding Boolean Overload Scarborough ME
- Visual Basic .NET Attributes Scarborough ME
- Extending CPictureHolder for loading BMP, JPG, etc. Scarborough ME
- Placing Logo on the Top DockBar of the Frame Window Scarborough ME
- Audio Mixer Control Classes Scarborough ME
Related Articles
- Advanced C++/CLI Scarborough ME
C++/CLI has a number of advanced features that make developing and maintaining applications easier. Discover how these allow types to be moved between assemblies without breaking existing application, allow fast and efficient interoperability between native functions, and make it possible to create functions that take a variable number of parameters while still maintaining type safety.
- Enumerate NT services Scarborough ME
- JavaBean Proxies Scarborough ME
- ListBox with Grayed Out / Non-Selectable Items Scarborough ME
- Interacting with .NET WinForms, Part 1 Scarborough ME
- Avoiding Boolean Overload Scarborough ME
- Visual Basic .NET Attributes Scarborough ME
- Extending CPictureHolder for loading BMP, JPG, etc. Scarborough ME
- Placing Logo on the Top DockBar of the Frame Window Scarborough ME
- Audio Mixer Control Classes Scarborough ME

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