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

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

Advanced Computers Inc
(307) 733-2263
1725 River Dr
Jackson, WY
Brown Gary D
(307) 634-4626
3701 Ostdiek Ct
Cheyenne, WY
Sample Master
(307) 235-6437
535 N Lennox St
Casper, WY
Rnd Consulting
(307) 382-4503
901 Eisenhower Dr
Rock Springs, WY
Realtime Inc
(307) 684-1606
4 Cowboy Trl
Buffalo, WY
Raven Group the
(307) 473-8446
Casper, WY
Erc Computing Services
(307) 638-7614
516 Randall Ave
Cheyenne, WY
Microtechnology Consultants
(307) 265-2570
364 N Nebraska Ave
Casper, WY
Roys Tech Works
(307) 632-5663
Cheyenne, WY
Advanced Integrators
(307) 637-3488
Cheyenne, WY

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
- Advanced C++/CLI Wyoming
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.
- Placing Logo on the Top DockBar of the Frame Window Wyoming
- Interacting with .NET WinForms, Part 1 Wyoming
- JavaBean Proxies Wyoming
- Audio Mixer Control Classes Wyoming
- Extending CPictureHolder for loading BMP, JPG, etc. Wyoming
- Avoiding Boolean Overload Wyoming
- ListBox with Grayed Out / Non-Selectable Items Wyoming
- Enumerate NT services Wyoming
- Visual Basic .NET Attributes Wyoming
Related Local Events
Board of Directors
Dates: 2/16/2010 - 2/16/2010
Location: Chamber of Commerce
Gillette, WY
View Details

Board of Directors
Dates: 5/18/2010 - 5/18/2010
Location: Chamber of Commerce
Gillette, WY
View Details

Board of Directors
Dates: 9/21/2010 - 9/21/2010
Location: Chamber of Commerce
Gillette, WY
View Details

Board of Directors
Dates: 11/17/2009 - 11/17/2009
Location: Chamber of Commerce
Gillette, WY
View Details

NEWCA Board Meeting
Dates: 9/3/2009 - 9/3/2009
Location: Chamber of Commerce
Gillette, WY
View Details

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