How To Remove the Sizing Grip from a Status Bar (177341)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
    • Microsoft Visual C++, 32-bit Professional Edition 5.0
    • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
    • Microsoft Visual C++, 32-bit Professional Edition 6.0
    • Microsoft Visual C++, 32-bit Learning Edition 6.0

This article was previously published under Q177341

SUMMARY

A status bar control has diagonal lines in the lower right corner, called the sizing grip, that can be used to resize the window. Occasionally, you will remove this grip to prevent the user from resizing the window.

For instance, you have removed the WS_THICKFRAME style to prevent the mainframe window from resizing. If the user moves the sizing grip and resizes the status bar, 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.

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

REFERENCES

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

99161 How To Derive From Classes not Listed in ClassWizard


Modification Type:MinorLast Reviewed:7/1/2004
Keywords:kbCmnCtrls kbhowto kbMFCCtrlBar KbUIDesign KB177341