HOWTO: Remove the Sizing Grip from a Status Bar

ID: Q177341


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++, 32-bit Editions, versions 5.0, 6.0


SUMMARY

A statusbar control has some diagonal lines in the right lower corner called the sizing grip, that can be used to resize the window. Occasionally, a programmer may want to remove this grip to prevent the user from resizing the window.

For instance, a programmer may want to do this if they prevented the mainframe window from resizing by removing the WS_THICKFRAME style. In this situation, if the user grabs the status bar sizing grip and resizes the statusbar, painting problems can occur.


MORE INFORMATION

You can remove the sizing grip by deriving a class from CStatusBar and overriding PreCreateWindow() to change the styles that are used. Inside of PreCreateWindow(), you must also remove the SBARS_SIZEGRIP style. For example:


   BOOL CMyStatusbar::PreCreateWindow(CREATESTRUCT& cs)
   {
      // TODO: Modify the Window class or styles here by modifying
      // the CREATESTRUCT cs.

      cs.style &= ~SBARS_SIZEGRIP;

      return CStatusBar::PreCreateWindow(cs);
   } 
You can then replace your custom CStatusBar derived class with the default one.

For example, if this is the statusbar in the main frame window, you would then include the header file for your CStatusBar derived class in your Mainfrm.h file. Also in your Mainfrm.h file, you would change the declaration of the statusbar created in your Mainfrm.cpp file to use that class.


REFERENCES

For additional information, please see the following article in the Microsoft Knowledge Base:

Q99161 HOWTO: Derive From Classes not Listed in ClassWizard

Additional query words: kbvc500 kbvc600

Keywords : kbMFC KbUIDesign kbVC
Version : WINNT:5.0,6.0
Platform : winnt
Issue type : kbhowto


Last Reviewed: July 29, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.