Member Functions


MFC Library Reference 
CWnd::ModifyStyle 

Call this member function to modify a window's style.

BOOL ModifyStyle(
   DWORD dwRemove,
   DWORD dwAdd,
   UINT nFlags = 0 
);

Parameters

dwRemove

Specifies window styles to be removed during style modification.

dwAdd

Specifies window styles to be added during style modification.

nFlags

Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero. See the Remarks section for a list of preset flags.

Return Value

Nonzero if style was successfully modified; otherwise, 0.

Remarks

Styles to be added or removed can be combined by using the bitwise OR (|) operator. See the topics Window Styles and CreateWindow in the Platform SDK for information about the available window styles.

If nFlags is nonzero, ModifyStyle calls the Windows API function SetWindowPos and redraws the window by combining nFlags with the following four preset flags:

  • SWP_NOSIZE   Retains the current size.

  • SWP_NOMOVE   Retains the current position.

  • SWP_NOZORDER   Retains the current Z order.

  • SWP_NOACTIVATE   Does not activate the window.

To modify a window's extended styles, see ModifyStyleEx.

NoteNote

For some styles in certain controls (the ES_READONLY style in the edit control, for example), ModifyStyle may not properly change the style because the control may need to perform special internal processing. In these cases, a corresponding message to change the style will be available (EM_SETREADONLY in the example mentioned).

Example

// This example adds the WS_CLIPCHILDREN style to the window.
// No Styles are removed from the window.

void CMyView::OnInitialUpdate()
{
   CView::OnInitialUpdate();
   ModifyStyle(0, WS_CLIPCHILDREN);
}
See Also

Reference

CWnd Class
Hierarchy Chart
CWnd::SetWindowPos
CWnd::ModifyStyleEx
Window Styles
SetWindowPos

Concepts

CWnd Members

Tags :


Community Content

SirBlack
Misleading description of Return Value
The current description of the return value "Nonzero if style was successfully modified; otherwise, 0." implies that if 0 is returned then that means it failed to modify the style. However, the current implementation does not check the success or failure of SetWindowLong. Instead it actually returns 0 if the existing value of the window's style is already equal to the requested modifications. So a return of 0 simply means that no work needed to be done, which is not a form of failure.

In other words, the return value only indicates whether or not the window's style needed to be changed from the value it already had.
Tags :

Page view tracker