CWindow Class

This class provides methods for manipulating a window.

Important

This class and its members cannot be used in applications that execute in the Windows Runtime.

Syntax

class CWindow

Members

Public Constructors

Name Description
CWindow::CWindow Constructor.

Public Methods

Name Description
CWindow::ArrangeIconicWindows Arranges all minimized child windows.
CWindow::Attach Attaches a window to the CWindow object.
CWindow::BeginPaint Prepares the window for painting.
CWindow::BringWindowToTop Brings the window to the top of the Z order.
CWindow::CenterWindow Centers the window against a given window.
CWindow::ChangeClipboardChain Removes the window from the chain of Clipboard viewers.
CWindow::CheckDlgButton Changes the check state of the specified button.
CWindow::CheckRadioButton Checks the specified radio button.
CWindow::ChildWindowFromPoint Retrieves the child window containing the specified point.
CWindow::ChildWindowFromPointEx Retrieves a particular type of child window containing the specified point.
CWindow::ClientToScreen Converts client coordinates to screen coordinates.
CWindow::Create Creates a window.
CWindow::CreateCaret Creates a new shape for the system caret.
CWindow::CreateGrayCaret Creates a gray rectangle for the system caret.
CWindow::CreateSolidCaret Creates a solid rectangle for the system caret.
CWindow::DeferWindowPos Updates the specified multiple-window-position structure for the specified window.
CWindow::DestroyWindow Destroys the window associated with the CWindow object.
CWindow::Detach Detaches the window from the CWindow object.
CWindow::DlgDirList Fills a list box with the names of all files matching a specified path or file name.
CWindow::DlgDirListComboBox Fills a combo box with the names of all files matching a specified path or file name.
CWindow::DlgDirSelect Retrieves the current selection from a list box.
CWindow::DlgDirSelectComboBox Retrieves the current selection from a combo box.
CWindow::DragAcceptFiles Registers whether the window accepts dragged files.
CWindow::DrawMenuBar Redraws the window's menu bar.
CWindow::EnableScrollBar Enables or disables the scroll bar arrows.
CWindow::EnableWindow Enables or disables input.
CWindow::EndPaint Marks the end of painting.
CWindow::FlashWindow Flashes the window once.
CWindow::GetClientRect Retrieves the coordinates of the client area.
CWindow::GetDC Retrieves a device context for the client area.
CWindow::GetDCEx Retrieves a device context for the client area and allows clipping options.
CWindow::GetDescendantWindow Retrieves the specified descendant window.
CWindow::GetDlgControl Retrieves an interface on the specified control.
CWindow::GetDlgCtrlID Retrieves the window's identifier (for child windows only).
CWindow::GetDlgHost Retrieves a pointer to an interface to the ATL Control hosting container.
CWindow::GetDlgItem Retrieves the specified child window.
CWindow::GetDlgItemInt Translates a control's text to an integer.
CWindow::GetDlgItemText Retrieves a control's text.
CWindow::GetExStyle Retrieves the extended window styles.
CWindow::GetFont Retrieves the window's current font.
CWindow::GetHotKey Determines the hot key associated with the window.
CWindow::GetIcon Retrieves the window's large or small icon.
CWindow::GetLastActivePopup Retrieves the most recently active pop-up window.
CWindow::GetMenu Retrieves the window's menu.
CWindow::GetNextDlgGroupItem Retrieves the previous or next control within a group of controls.
CWindow::GetNextDlgTabItem Retrieves the previous or next control having the WS_TABSTOP style.
CWindow::GetParent Retrieves the immediate parent window.
CWindow::GetScrollInfo Retrieves the parameters of a scroll bar.
CWindow::GetScrollPos Retrieves the position of the scroll box.
CWindow::GetScrollRange Retrieves the scroll bar range.
CWindow::GetStyle Retrieves the window styles.
CWindow::GetSystemMenu Creates a copy of the system menu for modification.
CWindow::GetTopLevelParent Retrieves the top-level parent or owner window.
CWindow::GetTopLevelWindow Retrieves the top-level owner window.
CWindow::GetTopWindow Retrieves the top-level child window.
CWindow::GetUpdateRect Retrieves the coordinates of the smallest rectangle that completely encloses the update region.
CWindow::GetUpdateRgn Retrieves the update region and copies it into a specified region.
CWindow::GetWindow Retrieves the specified window.
CWindow::GetWindowContextHelpId Retrieves the window's help context identifier.
CWindow::GetWindowDC Retrieves a device context for the entire window.
CWindow::GetWindowLong Retrieves a 32-bit value at a specified offset into the extra window memory.
CWindow::GetWindowLongPtr Retrieves information about the specified window, including a value at a specified offset into the extra window memory.
CWindow::GetWindowPlacement Retrieves the show state and positions.
CWindow::GetWindowProcessID Retrieves the identifier of the process that created the window.
CWindow::GetWindowRect Retrieves the window's bounding dimensions.
CWindow::GetWindowRgn Obtains a copy of the window region of a window.
CWindow::GetWindowText Retrieves the window's text.
CWindow::GetWindowTextLength Retrieves the length of the window's text.
CWindow::GetWindowThreadID Retrieves the identifier of the thread that created the specified window.
CWindow::GetWindowWord Retrieves a 16-bit value at a specified offset into the extra window memory.
CWindow::GotoDlgCtrl Sets the keyboard focus to a control in the dialog box.
CWindow::HideCaret Hides the system caret.
CWindow::HiliteMenuItem Highlights or removes the highlight from a top-level menu item.
CWindow::Invalidate Invalidates the entire client area.
CWindow::InvalidateRect Invalidates the client area within the specified rectangle.
CWindow::InvalidateRgn Invalidates the client area within the specified region.
CWindow::IsChild Determines whether the specified window is a child window.
CWindow::IsDialogMessage Determines whether a message is intended for the specified dialog box.
CWindow::IsDlgButtonChecked Determines the check state of the button.
CWindow::IsIconic Determines whether the window is minimized.
CWindow::IsParentDialog Determines if the parent window of a control is a dialog window.
CWindow::IsWindow Determines whether the specified window handle identifies an existing window.
CWindow::IsWindowEnabled Determines whether the window is enabled for input.
CWindow::IsWindowUnicode Determines whether the specified window is a native Unicode window.
CWindow::IsWindowVisible Determines the window's visibility state.
CWindow::IsZoomed Determines whether the window is maximized.
CWindow::KillTimer Destroys a timer event.
CWindow::LockWindowUpdate Disables or enables drawing in the window.
CWindow::MapWindowPoints Converts a set of points from the window's coordinate space to the coordinate space of another window.
CWindow::MessageBox Displays a message box.
CWindow::ModifyStyle Modifies the window styles.
CWindow::ModifyStyleEx Modifies the extended window styles.
CWindow::MoveWindow Changes the window's size and position.
CWindow::NextDlgCtrl Sets the keyboard focus to the next control in the dialog box.
CWindow::OpenClipboard Opens the Clipboard.
CWindow::PostMessage Places a message in the message queue associated with the thread that created the window. Returns without waiting for the thread to process the message.
CWindow::PrevDlgCtrl Sets the keyboard focus to the previous control in the dialog box.
CWindow::Print Requests that the window be drawn in a specified device context.
CWindow::PrintClient Requests that the window's client area be drawn in a specified device context.
CWindow::RedrawWindow Updates a specified rectangle or region in the client area.
CWindow::ReleaseDC Releases a device context.
CWindow::ResizeClient Resizes the window.
CWindow::ScreenToClient Converts screen coordinates to client coordinates.
CWindow::ScrollWindow Scrolls the specified client area.
CWindow::ScrollWindowEx Scrolls the specified client area with additional features.
CWindow::SendDlgItemMessage Sends a message to a control.
CWindow::SendMessage Sends a message to the window and doesn't return until the window procedure has processed the message.
CWindow::SendMessageToDescendants Sends a message to the specified descendant windows.
CWindow::SendNotifyMessage Sends a message to the window. If the window was created by the calling thread, SendNotifyMessage doesn't return until the window procedure has processed the message. Otherwise, it returns immediately.
CWindow::SetActiveWindow Activates the window.
CWindow::SetCapture Sends all subsequent mouse input to the window.
CWindow::SetClipboardViewer Adds the window to the Clipboard viewer chain.
CWindow::SetDlgCtrlID Changes the window's identifier.
CWindow::SetDlgItemInt Changes a control's text to the string representation of an integer value.
CWindow::SetDlgItemText Changes a control's text.
CWindow::SetFocus Sets the input focus to the window.
CWindow::SetFont Changes the window's current font.
CWindow::SetHotKey Associates a hot key with the window.
CWindow::SetIcon Changes the window's large or small icon.
CWindow::SetMenu Changes the window's current menu.
CWindow::SetParent Changes the parent window.
CWindow::SetRedraw Sets or clears the redraw flag.
CWindow::SetScrollInfo Sets the parameters of a scroll bar.
CWindow::SetScrollPos Changes the position of the scroll box.
CWindow::SetScrollRange Changes the scroll bar range.
CWindow::SetTimer Creates a timer event.
CWindow::SetWindowContextHelpId Sets the window's help context identifier.
CWindow::SetWindowLong Sets a 32-bit value at a specified offset into the extra window memory.
CWindow::SetWindowLongPtr Changes an attribute of the specified window, and also sets a value at the specified offset in the extra window memory.
CWindow::SetWindowPlacement Sets the show state and positions.
CWindow::SetWindowPos Sets the size, position, and Z order.
CWindow::SetWindowRgn Sets the window region of a window.
CWindow::SetWindowText Changes the window's text.
CWindow::SetWindowWord Sets a 16-bit value at a specified offset into the extra window memory.
CWindow::ShowCaret Displays the system caret.
CWindow::ShowOwnedPopups Shows or hides the pop-up windows owned by the window.
CWindow::ShowScrollBar Shows or hides a scroll bar.
CWindow::ShowWindow Sets the window's show state.
CWindow::ShowWindowAsync Sets the show state of a window created by a different thread.
CWindow::UpdateWindow Updates the client area.
CWindow::ValidateRect Validates the client area within the specified rectangle.
CWindow::ValidateRgn Validates the client area within the specified region.
CWindow::WinHelp Starts Windows Help.

Public Operators

Name Description
CWindow::operator HWND Converts the CWindow object to an HWND.
CWindow::operator = Assigns an HWND to the CWindow object.

Public Data Members

Name Description
CWindow::m_hWnd The handle to the window associated with the CWindow object.
CWindow::rcDefault Contains default window dimensions.

Remarks

CWindow provides the base functionality for manipulating a window in ATL. Many of the CWindow methods simply wrap one of the Win32 API functions. For example, compare the prototypes for CWindow::ShowWindow and ShowWindow:

CWindow method Win32 function
BOOL ShowWindow( int nCmdShow ); BOOL ShowWindow( HWND hWnd , int nCmdShow );

CWindow::ShowWindow calls the Win32 function ShowWindow by passing CWindow::m_hWnd as the first parameter. Every CWindow method that directly wraps a Win32 function passes the m_hWnd member; therefore, much of the CWindow documentation will refer you to the Windows SDK.

Note

Not every window-related Win32 function is wrapped by CWindow, and not every CWindow method wraps a Win32 function.

CWindow::m_hWnd stores the HWND that identifies a window. An HWND is attached to your object when you:

  • Specify an HWND in CWindow's constructor.

  • Call CWindow::Attach.

  • Use CWindow's operator =.

  • Create or subclass a window using one of the following classes derived from CWindow:

CWindowImpl Allows you to create a new window or subclass an existing window.

CContainedWindow Implements a window contained within another object. You can create a new window or subclass an existing window.

CDialogImpl Allows you to create a modal or modeless dialog box.

For more information about windows, see Windows and subsequent topics in the Windows SDK. For more information about using windows in ATL, see the article ATL Window Classes.

Requirements

Header: atlwin.h

CWindow::ArrangeIconicWindows

Arranges all minimized child windows.

UINT ArrangeIconicWindows() throw();

Remarks

See ArrangeIconicWindows in the Windows SDK.

CWindow::Attach

Attaches the window identified by hWndNew to the CWindow object.

void Attach(HWND hWndNew) throw();

Parameters

hWndNew
[in] The handle to a window.

Example

//The following example attaches an HWND to the CWindow object
HWND hWnd  = ::GetDesktopWindow();
CWindow myWindow;
myWindow.Attach(hWnd);

CWindow::BeginPaint

Prepares the window for painting.

HDC BeginPaint(LPPAINTSTRUCT lpPaint) throw();

Remarks

See BeginPaint in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object
//and calls CWindow::BeginPaint() and CWindow::EndPaint() in the 
// WM_PAINT handler of a CWindowImpl-derived class
LRESULT CMyCtrl::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
   BOOL& /*bHandled*/)
{
   CWindow myWindow;
   myWindow.Attach(m_hWnd);
   PAINTSTRUCT ps;
   HDC hDC  = myWindow.BeginPaint(&ps);
   //Use the hDC as much as you want
   ::Rectangle(hDC, 0, 0, 50, 50);

   myWindow.EndPaint(&ps);

   return 0;
}

CWindow::BringWindowToTop

Brings the window to the top of the Z order.

BOOL BringWindowToTop() throw();

Remarks

See BringWindowToTop in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::BringWindowToTop() to bring the window to the top 
//of the z-order.

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bOnTop = myWindow.BringWindowToTop();

//check if we could bring the window on top
if(bOnTop)
{
   //Do something
}

CWindow::CenterWindow

Centers the window against a given window.

BOOL CenterWindow(HWND hWndCenter = NULL) throw();

Parameters

hWndCenter
[in] The handle to the window against which to center. If this parameter is NULL (the default value), the method will set hWndCenter to the window's parent window if it's a child window. Otherwise, it will set hWndCenter to the window's owner window.

Return Value

TRUE if the window is successfully centered; otherwise, FALSE.

Example

//The following example attaches various HWNDs to the CWindow objects 
//and calls CWindow::CenterWindow() for each of them

CWindow childWindow, popupWindow, overlappedWindow;

childWindow.Attach(hWndChild); //a window created with WS_CHILD style
childWindow.CenterWindow();    //This will center the child 
                               //window against its Parent window

popupWindow.Attach(hWndPopup); //a window created with WS_POPUP style
popupWindow.CenterWindow();    //This will center the popup window 
                               //against its Owner window

overlappedWindow.Attach(hWndOverlapped); //a window created with 
                                         //WS_OVERLAPPED style
overlappedWindow.CenterWindow(::GetDesktopWindow()); //This will center 
                       //the overlapped window against the DeskTop window

CWindow::ChangeClipboardChain

Removes the window from the chain of Clipboard viewers.

BOOL ChangeClipboardChain(HWND hWndNewNext) throw();

Remarks

See ChangeClipboardChain in the Windows SDK.

CWindow::CheckDlgButton

Changes the check state of the specified button.

BOOL CheckDlgButton(int nIDButton, UINT nCheck) throw();

Remarks

See CheckDlgButton in the Windows SDK.

CWindow::CheckRadioButton

Checks the specified radio button.

BOOL CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton) throw();

Remarks

See CheckRadioButton in the Windows SDK.

CWindow::ChildWindowFromPoint

Retrieves the child window containing the specified point.

HWND ChildWindowFromPoint(POINT point) const throw();

Remarks

See ChildWindowFromPoint in the Windows SDK.

CWindow::ChildWindowFromPointEx

Retrieves a particular type of child window containing the specified point.

HWND ChildWindowFromPoint(POINT point, UINT uFlags) const throw();

Remarks

See ChildWindowFromPointEx in the Windows SDK.

CWindow::ClientToScreen

Converts client coordinates to screen coordinates.

BOOL ClientToScreen(LPPOINT lpPoint) const throw();
BOOL ClientToScreen(LPRECT lpRect) const throw();

Remarks

See ClientToScreen in the Windows SDK.

The second version of this method allows you to convert the coordinates of a RECT structure.

CWindow::Create

Creates a window.

HWND Create(
    LPCTSTR lpstrWndClass,
    HWND hWndParent,
    _U_RECT rect = NULL,
    LPCTSTR szWindowName = NULL,
    DWORD dwStyle = 0,
    DWORD dwExStyle = 0,
    _U_MENUorID MenuOrID = 0U,
    LPVOID lpCreateParam = NULL) throw();

Parameters

lpstrWndClass
[in] A pointer to the window's class.

hWndParent
[in] The handle to the parent or owner window.

rect
[in] A variable of type _U_RECT specifying the position of the window. The default value is NULL. When this parameter is NULL, the value of CWindow::rcDefault is used.

szWindowName
[in] Specifies the name of the window. The default value is NULL.

dwStyle
[in] The style of the window. The default value is 0, meaning no style is specified. For a list of possible values, see CreateWindow in the Windows SDK.

dwExStyle
[in] The extended window style. The default value is 0, meaning no extended style is specified. For a list of possible values, see CreateWindowEx in the Windows SDK.

MenuOrID
[in] A variable of type _U_MENUorID specifying a handle to a menu or a window identifier. The default value is 0U.

lpCreateParam
A pointer to the window-creation data contained in a CREATESTRUCT structure.

Return Value

If successful, the handle to the newly created window, specified by m_hWnd. Otherwise, NULL.

Remarks

CWindow::rcDefault is defined as __declspec(selectany) RECT CWindow::rcDefault = {CW_USEDEFAULT, CW_USEDEFAULT, 0, 0};.

See CreateWindow in the Windows SDK for more information.

Note If 0 is used as the value for the MenuOrID parameter, it must be specified as 0U (the default value) to avoid a compiler error.

CWindow::CreateCaret

Creates a new shape for the system caret.

BOOL CreateCaret(HBITMAP pBitmap) throw();

Remarks

See CreateCaret in the Windows SDK.

CWindow::CreateGrayCaret

Creates a gray rectangle for the system caret.

BOOL CreateGrayCaret(int nWidth, int nHeight) throw();

Remarks

See CreateCaret in the Windows SDK.

Passes (HBITMAP) 1 for the bitmap handle parameter to the Win32 function.

CWindow::CreateSolidCaret

Creates a solid rectangle for the system caret.

BOOL CreateSolidCaret(int nWidth, int nHeight) throw();

Remarks

See CreateCaret in the Windows SDK.

Passes (HBITMAP) 0 for the bitmap handle parameter to the Win32 function.

CWindow::CWindow

The constructor.

CWindow(HWND hWnd = NULL) throw();

Parameters

hWnd
[in] The handle to a window.

Remarks

Initializes the m_hWnd member to hWnd, which by default is NULL.

Note

CWindow::CWindow does not create a window. Classes CWindowImpl, CContainedWindow, and CDialogImpl (all of which derive from CWindow) provide a method to create a window or dialog box, which is then assigned to CWindow::m_hWnd. You can also use the CreateWindow Win32 function.

CWindow::DeferWindowPos

Updates the specified multiple-window-position structure for the specified window.

HDWP DeferWindowPos(
    HDWP hWinPosInfo,
    HWND hWndInsertAfter,
    int x,
    int y,
    int cx,
    int cy,
    UINT uFlags) throw();

Remarks

See DeferWindowPos in the Windows SDK.

CWindow::DestroyWindow

Destroys the window associated with the CWindow object and sets m_hWnd to NULL.

BOOL DestroyWindow() throw();

Remarks

See DestroyWindow in the Windows SDK.

It doesn't destroy the CWindow object itself.

Example

  //The following example attaches an HWND to the CWindow object and 
  //calls CWindow::DestroyWindow() to destroy the window

  CWindow myWindow;
  myWindow.Attach(hWndChild);
  //call the CWindow wrappers

  myWindow.DestroyWindow();
  hWndChild = NULL;

CWindow::Detach

Detaches m_hWnd from the CWindow object and sets m_hWnd to NULL.

HWND Detach() throw();

Return Value

The HWND associated with the CWindow object.

Example

//The following example attaches an HWND to the CWindow object and 
//later detaches the CWindow object from the HWND when no longer needed

CWindow myWindow;
myWindow.Attach(hWnd);

//call CWindow wrappers

//We don't need the C++ object any more, so detach it from the HWND.
myWindow.Detach(); 

CWindow::DlgDirList

Fills a list box with the names of all files matching a specified path or file name.

int DlgDirList(
    LPTSTR lpPathSpec,
    int nIDListBox,
    int nIDStaticPath,
    UINT nFileType) throw();

Remarks

See DlgDirList in the Windows SDK.

CWindow::DlgDirListComboBox

Fills a combo box with the names of all files matching a specified path or file name.

int DlgDirListComboBox(
    LPTSTR lpPathSpec,
    int nIDComboBox,
    int nIDStaticPath,
    UINT nFileType) throw();

Remarks

See DlgDirListComboBox in the Windows SDK.

CWindow::DlgDirSelect

Retrieves the current selection from a list box.

BOOL DlgDirSelect(
    LPTSTR lpString,
    int nCount,
    int nIDListBox) throw();

Remarks

See DlgDirSelectEx in the Windows SDK.

CWindow::DlgDirSelectComboBox

Retrieves the current selection from a combo box.

BOOL DlgDirSelectComboBox(
    LPTSTR lpString,
    int nCount,
    int nIDComboBox) throw();

Remarks

See DlgDirSelectComboBoxEx in the Windows SDK.

CWindow::DragAcceptFiles

Registers whether the window accepts dragged files.

void DragAcceptFiles(BOOL bAccept = TRUE);

Remarks

See DragAcceptFiles in the Windows SDK.

CWindow::DrawMenuBar

Redraws the window's menu bar.

BOOL DrawMenuBar() throw();

Remarks

See DrawMenuBar in the Windows SDK.

CWindow::EnableScrollBar

Enables or disables the scroll bar arrows.

BOOL EnableScrollBar(UINT uSBFlags, UINT uArrowFlags = ESB_ENABLE_BOTH) throw();

Remarks

See EnableScrollBar in the Windows SDK.

CWindow::EnableWindow

Enables or disables input.

BOOL EnableWindow(BOOL bEnable = TRUE) throw();

Remarks

See EnableWindow in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::EnableWindow() to enable and disable the window
//wrapped by the CWindow object

CWindow myWindow;
myWindow.Attach(hWnd);

//The following call enables the window 
//CWindow::EnableWindow() takes TRUE as the default parameter

myWindow.EnableWindow();

if(myWindow.IsWindowEnabled())
{
   //Do something now that the window is enabled

   //Now it's time to disable the window again
   myWindow.EnableWindow(FALSE);
}

CWindow::EndPaint

Marks the end of painting.

void EndPaint(LPPAINTSTRUCT lpPaint) throw();

Remarks

See EndPaint in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object
//and calls CWindow::BeginPaint() and CWindow::EndPaint() in the 
// WM_PAINT handler of a CWindowImpl-derived class
LRESULT CMyCtrl::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
   BOOL& /*bHandled*/)
{
   CWindow myWindow;
   myWindow.Attach(m_hWnd);
   PAINTSTRUCT ps;
   HDC hDC  = myWindow.BeginPaint(&ps);
   //Use the hDC as much as you want
   ::Rectangle(hDC, 0, 0, 50, 50);

   myWindow.EndPaint(&ps);

   return 0;
}

CWindow::FlashWindow

Flashes the window once.

BOOL FlashWindow(BOOL bInvert) throw();

Remarks

See FlashWindow in the Windows SDK.

CWindow::GetClientRect

Retrieves the coordinates of the client area.

BOOL GetClientRect(LPRECT lpRect) const throw();

Remarks

See GetClientRect in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::GetClientRect() to get the client area rectangle
//of the window

CWindow myWindow;
myWindow.Attach(hWnd);
RECT rc;
myWindow.GetClientRect(&rc);

CWindow::GetDC

Retrieves a device context for the client area.

HDC GetDC() throw();

Remarks

See GetDC in the Windows SDK.

Example

// The following example attaches a HWND to the CWindow object,
// calls CWindow::GetDC to retrieve the DC of the client
// area of the window wrapped by CWindow Object, and calls
// CWindow::ReleaseDC to release the DC. 

CWindow myWindow;
myWindow.Attach(hWnd);   
HDC hDC = myWindow.GetDC();

// Use the DC

myWindow.ReleaseDC(hDC);
hDC = NULL;

CWindow::GetDCEx

Retrieves a device context for the client area and allows clipping options.

HDC GetDCEx(HRGN hRgnClip, DWORD flags) throw();

Remarks

See GetDCEx in the Windows SDK.

CWindow::GetDescendantWindow

Finds the descendant window specified by the given identifier.

HWND GetDescendantWindow(int nID) const throw();

Parameters

nID
[in] The identifier of the descendant window to be retrieved.

Return Value

The handle to a descendant window.

Remarks

GetDescendantWindow searches the entire tree of child windows, not only the windows that are immediate children.

CWindow::GetDlgControl

Call this function to get a pointer to an interface of an ActiveX control that is hosted by a composite control or a control-hosting dialog.

HRESULT GetDlgControl(
    int nID,
    REFIID iid,
    void** ppCtrl) throw();

Parameters

nID
[in] The resource ID of the control being retrieved.

iid
[in] The ID of the interface you would like to get from the control.

ppCtrl
[out] The pointer to the interface.

Return Value

Returns S_OK on success or any valid error HRESULT. For example, the function returns E_FAIL if the control specified by nID can't be found and it returns E_NOINTERFACE if the control can be found, but it doesn't support the interface specified by iid.

Remarks

Using this pointer, you can call methods on the interface.

CWindow::GetDlgCtrlID

Retrieves the window's identifier (for child windows only).

int GetDlgCtrlID() const throw();

Remarks

See GetDlgCtrlID in the Windows SDK.

CWindow::GetDlgHost

Retrieves a pointer to an interface to the ATL Control hosting container.

HRESULT GetDlgHost(
    int nID,
    REFIID iid,
    void** ppHost) throw();

Parameters

nID
[in] The resource ID of the control being retrieved.

iid
[in] The ID of the interface you would like to get from the control.

ppHost
[out] The pointer to the interface.

Return Value

Returns S_OK if the window specified by iid is a Control Container, and the requested interface could be retrieved. Returns E_FAIL if the window isn't a Control Container, or if the interface requested couldn't be retrieved. If a window with the specified ID couldn't be found, then the return value is equal to HRESULT_FROM_WIN32(ERROR_CONTROL_ID_NOT_FOUND).

Remarks

Using this pointer, you can call methods on the interface.

CWindow::GetDlgItem

Retrieves the specified child window.

HWND GetDlgItem(int nID) const throw();

Remarks

See GetDlgItem in the Windows SDK.

CWindow::GetDlgItemInt

Translates a control's text to an integer.

UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans = NULL,
    BOOL bSigned = TRUE) const throw();

Remarks

See GetDlgItemInt in the Windows SDK.

CWindow::GetDlgItemText

Retrieves a control's text.

UINT GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const throw();

BOOL GetDlgItemText(
    int nID,
    BSTR& bstrText) const throw();

Remarks

For more information, see GetDlgItemText in the Windows SDK.

The second version of this method allows you to copy the control's text to a BSTR. This version returns TRUE if the text is successfully copied; otherwise, FALSE.

CWindow::GetExStyle

Retrieves the extended window styles of the window.

DWORD GetExStyle() const throw();

Return Value

The window's extended styles.

Remarks

To retrieve the regular window styles, call GetStyle.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::GetExStyle() to retrieve the extended styles of 
//the window

CWindow myWindow;
myWindow.Attach(hWnd);
DWORD dwExStyles = myWindow.GetExStyle();

CWindow::GetFont

Retrieves the window's current font by sending a WM_GETFONT message to the window.

HFONT GetFont() const throw();

Return Value

A font handle.

CWindow::GetHotKey

Determines the hot key associated with the window by sending a WM_GETHOTKEY message.

DWORD GetHotKey() const throw();

Return Value

The virtual key code and modifiers for the hot key associated with the window. For a list of possible modifiers, see WM_GETHOTKEY in the Windows SDK. For a list of standard virtual key codes, see Winuser.h.

CWindow::GetIcon

Retrieves the handle to the window's large or small icon.

HICON GetIcon(BOOL bBigIcon = TRUE) const;

Parameters

bBigIcon
[in] If TRUE (the default value) the method returns the large icon. Otherwise, it returns the small icon.

Return Value

An icon handle.

Remarks

GetIcon sends a WM_GETICON message to the window.

CWindow::GetLastActivePopup

Retrieves the most recently active pop-up window.

HWND GetLastActivePopup() const throw();

Remarks

See GetLastActivePopup in the Windows SDK.

CWindow::GetMenu

Retrieves the window's menu.

HMENU GetMenu() const throw();

Remarks

See GetMenu in the Windows SDK.

CWindow::GetNextDlgGroupItem

Retrieves the previous or next control within a group of controls.

HWND GetNextDlgGroupItem(HWND hWndCtl, BOOL bPrevious = FALSE) const throw();

Remarks

See GetNextDlgGroupItem in the Windows SDK.

CWindow::GetNextDlgTabItem

Retrieves the previous or next control having the WS_TABSTOP style.

HWND GetNextDlgTabItem(HWND hWndCtl, BOOL bPrevious = FALSE) const throw();

Remarks

See GetNextDlgTabItem in the Windows SDK.

CWindow::GetParent

Retrieves the immediate parent window.

HWND GetParent() const throw();

Remarks

See GetParent in the Windows SDK.

Example

// The following example attaches a HWND to the CWindow object
// and calls CWindow::GetParent to find out the parent
// window of the window wrapped by CWindow object.

CWindow myWindow;
myWindow.Attach(hWnd);   
HWND hWndParent = myWindow.GetParent();

CWindow::GetScrollInfo

Retrieves the parameters of a scroll bar.

BOOL GetScrollInfo(int nBar, LPSCROLLINFO lpScrollInfo) throw();

Remarks

See GetScrollInfo in the Windows SDK.

CWindow::GetScrollPos

Retrieves the position of the scroll box.

int GetScrollPos(int nBar) const throw();

Remarks

See GetScrollPos in the Windows SDK.

CWindow::GetScrollRange

Retrieves the scroll bar range.

BOOL GetScrollRange(
    int nBar,
    LPINT lpMinPos,
    LPINT lpMaxPos) const throw();

Remarks

See GetScrollRange in the Windows SDK.

CWindow::GetStyle

Retrieves the window styles of the window.

DWORD GetStyle() const throw();

Return Value

The window's styles.

Remarks

To retrieve the extended window styles, call GetExStyle.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::GetStyle() to retrieve the styles of the window

CWindow myWindow;
myWindow.Attach(hWnd);
DWORD dwStyles = myWindow.GetStyle();

CWindow::GetSystemMenu

Creates a copy of the system menu for modification.

HMENU GetSystemMenu(BOOL bRevert) const throw();

Remarks

See GetSystemMenu in the Windows SDK.

CWindow::GetTopLevelParent

Retrieves the window's top-level parent window.

HWND GetTopLevelParent() const throw();

Return Value

The handle to the top-level parent window.

CWindow::GetTopLevelWindow

Retrieves the window's top-level parent or owner window.

HWND GetTopLevelWindow() const throw();

Return Value

The handle to the top-level owner window.

CWindow::GetTopWindow

Retrieves the top-level child window.

HWND GetTopWindow() const throw();

Remarks

See GetTopWindow in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::GetTopWindow() to get the top-level child window

CWindow myWindow;
myWindow.Attach(hWnd);
HWND hWndFavoriteChild = myWindow.GetTopWindow();

CWindow::GetUpdateRect

Retrieves the coordinates of the smallest rectangle that completely encloses the update region.

BOOL GetUpdateRect(LPRECT lpRect, BOOL bErase = FALSE) throw();

Remarks

See GetUpdateRect in the Windows SDK.

CWindow::GetUpdateRgn

Retrieves the update region and copies it into a specified region.

int GetUpdateRgn(HRGN hRgn, BOOL bErase = FALSE) throw();

Remarks

See GetUpdateRgn in the Windows SDK.

CWindow::GetWindow

Retrieves the specified window.

HWND GetWindow(UINT nCmd) const throw();

Remarks

See GetWindow in the Windows SDK.

CWindow::GetWindowContextHelpId

Retrieves the window's help context identifier.

DWORD GetWindowContextHelpId() const throw();

Remarks

See GetWindowContextHelpId in the Windows SDK.

CWindow::GetWindowDC

Retrieves a device context for the entire window.

HDC GetWindowDC() throw();

Remarks

See GetWindowDC in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::GetWindowDC() to retrieve the DC of the entire window

CWindow myWindow;
myWindow.Attach(hWnd);
HDC hDC = myWindow.GetWindowDC();

CWindow::GetWindowLong

Retrieves a 32-bit value at a specified offset into the extra window memory.

LONG GetWindowLong(int nIndex) const throw();

Remarks

See GetWindowLong in the Windows SDK.

Note

To write code that is compatible with both 32-bit and 64-bit versions of Windows, use CWindow::GetWindowLongPtr.

CWindow::GetWindowLongPtr

Retrieves information about the specified window, including a value at a specified offset into the extra window memory.

LONG_PTR GetWindowLongPtr(int nIndex) const throw();

Remarks

For more information, see GetWindowLongPtr in the Windows SDK.

If you're retrieving a pointer or a handle, this function supersedes the CWindow::GetWindowLong method.

Note

Pointers and handles are 32 bits on 32-bit Windows and 64 bits on 64-bit Windows.

To write code that is compatible with both 32-bit and 64-bit versions of Windows, use CWindow::GetWindowLongPtr.

CWindow::GetWindowPlacement

Retrieves the show state and positions.

BOOL GetWindowPlacement(WINDOWPLACEMENT FAR* lpwndpl) const throw();

Remarks

See GetWindowPlacement in the Windows SDK.

CWindow::GetWindowProcessID

Retrieves the identifier of the process that created the window.

DWORD GetWindowProcessID() throw();

Remarks

See GetWindowThreadProcessID in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::GetWindowProcessID() to retrieve the id of the 
//process that created the window

CWindow myWindow;
myWindow.Attach(hWnd);
DWORD dwID = myWindow.GetWindowProcessID();

CWindow::GetWindowRect

Retrieves the window's bounding dimensions.

BOOL GetWindowRect(LPRECT lpRect) const throw();

Remarks

See GetWindowRect in the Windows SDK.

CWindow::GetWindowRgn

Obtains a copy of the window region of a window.

int GetWindowRgn(HRGN hRgn) throw();

Remarks

See GetWindowRgn in the Windows SDK.

CWindow::GetWindowText

Retrieves the window's text.

int GetWindowText(LPTSTR lpszStringBuf, int nMaxCount) const throw();
BOOL GetWindowText(BSTR& bstrText) throw();
int GetWindowText(CSimpleString& strText) const;

Parameters

lpszStringBuf
A buffer to which to write the window text.

nMaxCount
The size of the buffer in characters; also the maximum number of characters to write.

bstrText
A BSTR in which to store the window text.

strText
A CString in which to store the window text.

Return Value

If the text is successfully copied, the return value is TRUE; otherwise, the return value is FALSE.

Remarks

See GetWindowText in the Windows SDK.

The second version of this method allows you to store the text in a BSTR; the third version allows you to store the result in a CString, since CSimpleString is the base class of CString.

CWindow::GetWindowTextLength

Retrieves the length of the window's text.

int GetWindowTextLength() const throw();

Remarks

See GetWindowTextLength in the Windows SDK.

CWindow::GetWindowThreadID

Retrieves the identifier of the thread that created the specified window.

DWORD GetWindowThreadID() throw();

Remarks

See GetWindowThreadProcessID in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::GetWindowThreadID() to retrieve the id of the thread 
//that created the window

CWindow myWindow;
myWindow.Attach(hWnd);
DWORD dwID = myWindow.GetWindowThreadID();

CWindow::GetWindowWord

Retrieves a 16-bit value at a specified offset into the extra window memory.

WORD GetWindowWord(int nIndex) const throw();

Remarks

See GetWindowLong in the Windows SDK.

CWindow::GotoDlgCtrl

Sets the keyboard focus to a control in the dialog box.

void GotoDlgCtrl(HWND hWndCtrl) const throw();

Remarks

See WM_NEXTDLGCTL in the Windows SDK.

CWindow::HideCaret

Hides the system caret.

BOOL HideCaret() throw();

Remarks

See HideCaret in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::HideCaret() to hide the caret of the window owning 
//the caret

CWindow myWindow;
myWindow.Attach(hWndEdit);
myWindow.HideCaret();

CWindow::HiliteMenuItem

Highlights or removes the highlight from a top-level menu item.

BOOL HiliteMenuItem(
    HMENU hMenu,
    UINT uHiliteItem,
    UINT uHilite) throw();

Remarks

See HiliteMenuItem in the Windows SDK.

CWindow::Invalidate

Invalidates the entire client area.

BOOL Invalidate(BOOL bErase = TRUE) throw();

Remarks

See InvalidateRect in the Windows SDK.

Passes NULL for the RECT parameter to the InvalidateRect Win32 function.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::Invalidate() to invalidate the entire client area

CWindow myWindow;
myWindow.Attach(hWnd);
myWindow.Invalidate();

CWindow::InvalidateRect

Invalidates the client area within the specified rectangle.

BOOL InvalidateRect(LPCRECT lpRect, BOOL bErase = TRUE) throw();

Remarks

See InvalidateRect in the Windows SDK.

CWindow::InvalidateRgn

Invalidates the client area within the specified region.

void InvalidateRgn(HRGN hRgn, BOOL bErase = TRUE) throw();

Remarks

For more information, see InvalidateRgn in the Windows SDK.

Specifies a void return type, while the InvalidateRgn Win32 function always returns TRUE.

CWindow::IsChild

Determines whether the specified window is a child window.

BOOL IsChild(const HWND hWnd) const throw();

Remarks

See IsChild in the Windows SDK.

CWindow::IsDialogMessage

Determines whether a message is intended for the specified dialog box.

BOOL IsDialogMessage(LPMSG lpMsg) throw();

Remarks

See IsDialogMessage in the Windows SDK.

CWindow::IsDlgButtonChecked

Determines the check state of the button.

UINT IsDlgButtonChecked(int nIDButton) const throw();

Remarks

See IsDlgButtonChecked in the Windows SDK.

CWindow::IsIconic

Determines whether the window is minimized.

BOOL IsIconic() const throw();

Remarks

See IsIconic in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::IsIconic() to determine if the window is minimized

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bIconic = myWindow.IsIconic();

CWindow::IsParentDialog

Determines if the parent window of the control is a dialog window.

BOOL IsParentDialog() throw();

Return Value

Returns TRUE if the parent window is a dialog, FALSE otherwise.

CWindow::IsWindow

Determines whether the specified window handle identifies an existing window.

BOOL IsWindow() throw();

Remarks

See IsWindow in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::IsWindow() to verify if the HWND corresponds 
//to an existing window

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bWindow = myWindow.IsWindow();

CWindow::IsWindowEnabled

Determines whether the window is enabled for input.

BOOL IsWindowEnabled() const throw();

Remarks

See IsWindowEnabled in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::IsWindowEnabled() to verify if the window is enabled 
//for receiving input

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bEnabled = myWindow.IsWindowEnabled();

CWindow::IsWindowVisible

Determines the window's visibility state.

BOOL IsWindowVisible() const throw();

Remarks

See IsWindowVisible in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::IsWindowVisible() to determine the visibility state 
//of the window

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bVisible = myWindow.IsWindowVisible();

CWindow::IsWindowUnicode

Determines whether the specified window is a native Unicode window.

BOOL IsWindowUnicode() throw();

Remarks

See IsWindowUnicode in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::IsWindowUnicode() to determine if the window is a 
//UNICODE window or an ANSI one.

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bUnicode = myWindow.IsWindowUnicode();

CWindow::IsZoomed

Determines whether the window is maximized.

BOOL IsZoomed() const throw();

Remarks

See IsZoomed in the Windows SDK.

CWindow::KillTimer

Destroys a timer event created by CWindow::SetTimer.

BOOL KillTimer(UINT nIDEvent) throw();

Remarks

See KillTimer in the Windows SDK.

CWindow::LockWindowUpdate

Disables or enables drawing in the window by calling the LockWindowUpdate Win32 function.

BOOL LockWindowUpdate(BOOL bLock = TRUE) throw();

Parameters

bLock
[in] If TRUE (the default value), the window will be locked. Otherwise, it will be unlocked.

Return Value

TRUE if the window is successfully locked; otherwise, FALSE.

Remarks

If bLock is TRUE, this method passes m_hWnd to the Win32 function; otherwise, it passes NULL.

CWindow::m_hWnd

Contains a handle to the window associated with the CWindow object.

HWND m_hWnd throw() throw();

CWindow::MapWindowPoints

Converts a set of points from the window's coordinate space to the coordinate space of another window.

int MapWindowPoints(
    HWND hWndTo,
    LPPOINT lpPoint,
    UINT nCount) const throw();

int MapWindowPoints(
    HWND hWndTo,
    LPRECT lpRect) const throw();

Remarks

See MapWindowPoints in the Windows SDK.

The second version of this method allows you to convert the coordinates of a RECT structure.

CWindow::MessageBox

Displays a message box.

int MessageBox(
    LPCTSTR lpszText,
    LPCTSTR lpszCaption = NULL,
    UINT nType = MB_OK) throw();

Remarks

See MessageBox in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::MessageBox() to pop up a Windows message box

CWindow myWindow;
myWindow.Attach(hWnd);
myWindow.MessageBox(_T("Hello World"));

CWindow::ModifyStyle

Modifies the window styles of the CWindow object.

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

Parameters

dwRemove
[in] Specifies the window styles to be removed during style modification.

dwAdd
[in] Specifies the window styles to be added during style modification.

nFlags
[in] Window-positioning flags. For a list of possible values, see the SetWindowPos function in the Windows SDK.

Return Value

TRUE if the window styles are modified; otherwise, FALSE.

Remarks

Styles to be added or removed can be combined by using the bitwise "or" (|) operator. See the CreateWindow function in the Windows SDKfor information about the available window styles.

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

  • SWP_NOSIZE Retains the current size.

  • SWP_NOMOVE Retains the current position.

  • SWP_NOZORDER Retains the current Z order.

  • SWP_NOACTIVATE Doesn't activate the window.

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

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::ModifyStyle() to add and remove the window styles

CWindow myWindow;
myWindow.Attach(hWnd);

//The following line removes the WS_CLIPCHILDREN style from the 
//window and adds the WS_CAPTION style to the window
myWindow.ModifyStyle(WS_CLIPCHILDREN, WS_CAPTION);

CWindow::ModifyStyleEx

Modifies the extended window styles of the CWindow object.

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

Parameters

dwRemove
[in] Specifies the extended styles to be removed during style modification.

dwAdd
[in] Specifies the extended styles to be added during style modification.

nFlags
[in] Window-positioning flags. For a list of possible values, see the SetWindowPos function in the Windows SDK.

Return Value

TRUE if the extended window styles are modified; otherwise, FALSE.

Remarks

Styles to be added or removed can be combined by using the bitwise "or" (|) operator. See the CreateWindowEx function in the Windows SDK for information about the available extended styles.

If nFlags is nonzero, ModifyStyleEx calls the Win32 function SetWindowPos, and redraws the window by combining nFlags with the following four flags:

  • SWP_NOSIZE Retains the current size.

  • SWP_NOMOVE Retains the current position.

  • SWP_NOZORDER Retains the current Z order.

  • SWP_NOACTIVATE Doesn't activate the window.

To modify windows using regular window styles, call ModifyStyle.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::ModifyStyleEx() to add and remove the extended 
//window styles

CWindow myWindow;
myWindow.Attach(hWnd);

//The following line removes WS_EX_CONTEXTHELP extended style from 
//the window and adds WS_EX_TOOLWINDOW extended style to the window 

myWindow.ModifyStyleEx(WS_EX_CONTEXTHELP, WS_EX_TOOLWINDOW);

CWindow::MoveWindow

Changes the window's size and position.

BOOL MoveWindow(
    int x,
    int y,
    int nWidth,
    int nHeight,
    BOOL bRepaint = TRUE) throw();

BOOL MoveWindow(
    LPCRECT lpRect,
    BOOL bRepaint = TRUE) throw();

Remarks

For a top-level window object, the x and y parameters are relative to the upper-left corner of the screen. For a child window object, they're relative to the upper-left corner of the parent window's client area.

The second version of this method uses a RECT structure to determine the window's new position, width, and height.

CWindow::NextDlgCtrl

Sets the keyboard focus to the next control in the dialog box.

void NextDlgCtrl() const throw();

Remarks

See WM_NEXTDLGCTL in the Windows SDK.

CWindow::OpenClipboard

Opens the Clipboard.

BOOL OpenClipboard() throw();

Remarks

See OpenClipboard in the Windows SDK.

CWindow::operator HWND

Converts a CWindow object to an HWND.

operator HWND() const throw();

CWindow::operator =

Assigns an HWND to the CWindow object by setting the m_hWnd member to hWnd.

CWindow& operator= (HWND hWnd) throw();

CWindow::PostMessage

Places a message in the message queue associated with the thread that created the window.

BOOL PostMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0) throw();

Remarks

See PostMessage in the Windows SDK.

Returns without waiting for the thread to process the message.

Example

//The following example attaches an HWND to the CWindow object and 
//posts a WM_PAINT message to the Window wrapped by the CWindow object 
//using CWindow::PostMessage() with the default values of WPARAM and 
//LPARAM

CWindow myWindow;
myWindow.Attach(hWnd);
myWindow.PostMessage(WM_PAINT);

CWindow::PrevDlgCtrl

Sets the keyboard focus to the previous control in the dialog box.

void PrevDlgCtrl() const throw();

Remarks

See WM_NEXTDLGCTL in the Windows SDK.

CWindow::Print

Sends a WM_PRINT message to the window to request that it draw itself in the specified device context.

void Print(HDC hDC, DWORD dwFlags) const throw();

Parameters

hDC
[in] The handle to a device context.

dwFlags
[in] Specifies the drawing options. You can combine one or more of the following flags:

  • PRF_CHECKVISIBLE Draw the window only if it's visible.

  • PRF_CHILDREN Draw all visible child windows.

  • PRF_CLIENT Draw the client area of the window.

  • PRF_ERASEBKGND Erase the background before drawing the window.

  • PRF_NONCLIENT Draw the non-client area of the window.

  • PRF_OWNED Draw all owned windows.

CWindow::PrintClient

Sends a WM_PRINTCLIENT message to the window to request that it draw its client area in the specified device context.

void PrintClient(HDC hDC, DWORD dwFlags) const throw();

Parameters

hDC
[in] The handle to a device context.

dwFlags
[in] Specifies drawing options. You can combine one or more of the following flags:

  • PRF_CHECKVISIBLE Draw the window only if it's visible.

  • PRF_CHILDREN Draw all visible child windows.

  • PRF_CLIENT Draw the client area of the window.

  • PRF_ERASEBKGND Erase the background before drawing the window.

  • PRF_NONCLIENT Draw the non-client area of the window.

  • PRF_OWNED Draw all owned windows.

CWindow::rcDefault

Contains default window dimensions.

static RECT rcDefault;

CWindow::RedrawWindow

Updates a specified rectangle or region in the client area.

BOOL RedrawWindow(
    LPCRECT lpRectUpdate = NULL,
    HRGN hRgnUpdate = NULL,
    UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE);

throw()

Remarks

See RedrawWindow in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::RedrawWindow() to update the entire window using the 
//default arguments

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bRedrawn = myWindow.RedrawWindow();

CWindow::ReleaseDC

Releases a device context.

int ReleaseDC(HDC hDC);

Remarks

See ReleaseDC in the Windows SDK.

Example

// The following example attaches a HWND to the CWindow object,
// calls CWindow::GetDC to retrieve the DC of the client
// area of the window wrapped by CWindow Object, and calls
// CWindow::ReleaseDC to release the DC. 

CWindow myWindow;
myWindow.Attach(hWnd);   
HDC hDC = myWindow.GetDC();

// Use the DC

myWindow.ReleaseDC(hDC);
hDC = NULL;

CWindow::ResizeClient

Resizes the window to the specified client area size.

BOOL ResizeClient(
    int nWidth,
    int nHeight,
    BOOL bRedraw = FALSE) throw();

Parameters

nWidth
New width of the window in pixels.

nHeight
New height of the window in pixels.

bRedraw
A flag indicating whether to redraw changes. Default is FALSE, indicating the window doesn't redraw changes.

CWindow::ScreenToClient

Converts screen coordinates to client coordinates.

BOOL ScreenToClient(LPPOINT lpPoint) const throw();
BOOL ScreenToClient(LPRECT lpRect) const throw();

Remarks

See ScreenToClient in the Windows SDK.

The second version of this method allows you to convert the coordinates of a RECT structure.

CWindow::ScrollWindow

Scrolls the specified client area.

BOOL ScrollWindow(
    int xAmount,
    int yAmount,
    LPCRECT lpRect = NULL,
    LPCRECT lpClipRect = NULL) throw();

Remarks

See ScrollWindow in the Windows SDK.

CWindow::ScrollWindowEx

Scrolls the specified client area with additional features.

int ScrollWindowEx(
    int dx,
    int dy,
    LPCRECT lpRectScroll,
    LPCRECT lpRectClip,
    HRGN hRgnUpdate,
    LPRECT lpRectUpdate,
    UINT flags) throw();

Remarks

See ScrollWindowEx in the Windows SDK.

CWindow::SendDlgItemMessage

Sends a message to a control.

LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0) throw();

Remarks

See SendDlgItemMessage in the Windows SDK.

CWindow::SendMessage

Sends a message to the window and doesn't return until the window procedure has processed the message.

LRESULT SendMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0) throw();

static LRESULT SendMessage(
    HWND hWnd,
    UINT message,
    WPARAM wParam,
    LPARAM lParam) throw();

Remarks

See SendMessage in the Windows SDK.

Example

// The following example attaches a HWND to the CWindow
// object and sends a WM_PAINT message to the window
// wrapped by CWindow object using CWindow::SendMessage.

CWindow myWindow;
myWindow.Attach(hWnd);   
myWindow.SendMessage(WM_PAINT, 0L, 0L);

CWindow::SendMessageToDescendants

Sends the specified message to all immediate children of the CWindow object.

void SendMessageToDescendants(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0,
    BOOL bDeep = TRUE) throw();

Parameters

message
[in] The message to be sent.

wParam
[in] Additional message-specific information.

lParam
[in] Additional message-specific information.

bDeep
[in] If TRUE (the default value), the message will be sent to all descendant windows; otherwise, it will be sent only to the immediate child windows.

Remarks

If bDeep is TRUE, the message is additionally sent to all other descendant windows.

CWindow::SendNotifyMessage

Sends a message to the window.

BOOL SendNotifyMessage(
    UINT message,
    WPARAM wParam = 0,
    LPARAM lParam = 0) throw();

Remarks

See SendNotifyMessage in the Windows SDK.

If the window was created by the calling thread, SendNotifyMessage doesn't return until the window procedure has processed the message. Otherwise, it returns immediately.

CWindow::SetActiveWindow

Activates the window.

HWND SetActiveWindow() throw();

Remarks

See SetActiveWindow in the Windows SDK.

Example

// The following example attaches a HWND to the CWindow object
// and sets the window as an active window by calling 
// CWindow::SetActiveWindow which returns the HWND of the
// previously active window.

CWindow myWindow;
myWindow.Attach(hWnd);   
HWND hWndPrev = myWindow.SetActiveWindow();

CWindow::SetCapture

Sends all subsequent mouse input to the window.

HWND SetCapture() throw();

Remarks

See SetCapture in the Windows SDK.

CWindow::SetClipboardViewer

Adds the window to the Clipboard viewer chain.

HWND SetClipboardViewer() throw();

Remarks

See SetClipboardViewer in the Windows SDK.

CWindow::SetDlgCtrlID

Sets the identifier of the window to the specified value.

int SetDlgCtrlID(int nID) throw();

Parameters

nID
[in] The new value to set for the window's identifier.

Return Value

If successful, the previous identifier of the window; otherwise 0.

CWindow::SetDlgItemInt

Changes a control's text to the string representation of an integer value.

BOOL SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned = TRUE) throw();

Remarks

See SetDlgItemInt in the Windows SDK.

CWindow::SetDlgItemText

Changes a control's text.

BOOL SetDlgItemText(int nID, LPCTSTR lpszString) throw();

Remarks

See SetDlgItemText in the Windows SDK.

CWindow::SetFocus

Sets the input focus to the window.

HWND SetFocus() throw();

Remarks

See SetFocus in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::SetFocus() to set the input focus

CWindow myWindow;
myWindow.Attach(hWnd);
HWND hWndLeftFocus = myWindow.SetFocus();

CWindow::SetFont

Changes the window's current font by sending a WM_SETFONT message to the window.

void SetFont(HFONT hFont, BOOL bRedraw = TRUE) throw();

Parameters

hFont
[in] The handle to the new font.

bRedraw
[in] If TRUE (the default value), the window is redrawn. Otherwise, it isn't.

CWindow::SetHotKey

Associates a hot key with the window by sending a WM_SETHOTKEY message.

int SetHotKey(WORD wVirtualKeyCode, WORD wModifiers) throw();

Parameters

wVirtualKeyCode
[in] The virtual key code of the hot key. For a list of standard virtual key codes, see Winuser.h.

wModifiers
[in] The modifiers of the hot key. For a list of possible values, see WM_SETHOTKEY in the Windows SDK.

Return Value

For a list of possible return values, see WM_SETHOTKEY in the Windows SDK.

CWindow::SetIcon

Sets the window's large or small icon to the icon identified by hIcon.

HICON SetIcon(HICON hIcon, BOOL bBigIcon = TRUE) throw();

Parameters

hIcon
[in] The handle to a new icon.

bBigIcon
[in] If TRUE (the default value), the method sets a large icon. Otherwise, it sets a small icon.

Return Value

The handle to the previous icon.

Remarks

SetIcon sends a WM_SETICON message to the window.

CWindow::SetMenu

Changes the window's current menu.

BOOL SetMenu(HMENU hMenu) throw();

Remarks

See SetMenu in the Windows SDK.

CWindow::SetParent

Changes the parent window.

HWND SetParent(HWND hWndNewParent) throw();

Remarks

See SetParent in the Windows SDK.

Example

// The following example attaches a HWND to the CWindow object
// and sets the hWndParent as the parent window of the 
// window wrapped by CWindow object using CWindow::SetParent.

CWindow myWindow;
myWindow.Attach(hWndChild);
HWND hWndPrevParent = myWindow.SetParent(hWndParent);

CWindow::SetRedraw

Sets or clears the redraw flag by sending a WM_SETREDRAW message to the window.

void SetRedraw(BOOL bRedraw = TRUE) throw();

Parameters

bRedraw
[in] Specifies the state of the redraw flag. If TRUE (the default value), the redraw flag is set; if FALSE, the flag is cleared.

Remarks

Call SetRedraw to allow changes to be redrawn or to prevent changes from being redrawn.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::SetRedraw() to set and reset the redraw flag

CWindow myWindow;
myWindow.Attach(hWnd);
myWindow.SetRedraw();      //sets the redraw flag to TRUE
//
//
myWindow.SetRedraw(FALSE); //sets the redraw flag to FALSE

CWindow::SetScrollInfo

Sets the parameters of a scroll bar.

int SetScrollInfo(
    int nBar,
    LPSCROLLINFO lpScrollInfo,
    BOOL bRedraw = TRUE) throw();

Remarks

See SetScrollInfo in the Windows SDK.

CWindow::SetScrollPos

Changes the position of the scroll box.

int SetScrollPos(
    int nBar,
    int nPos,
    BOOL bRedraw = TRUE) throw();

Remarks

See SetScrollPos in the Windows SDK.

CWindow::SetScrollRange

Changes the scroll bar range.

BOOL SetScrollRange(
    int nBar,
    int nMinPos,
    int nMaxPos,
    BOOL bRedraw = TRUE) throw();

Remarks

See SetScrollRange in the Windows SDK.

CWindow::SetTimer

Creates a timer event.

UINT SetTimer(
    UINT nIDEvent,
    UINT nElapse,
    void (CALLBACK* lpfnTimer)(HWND, UINT, UINT, DWORD) = NULL) throw();

Remarks

See SetTimer in the Windows SDK.

CWindow::SetWindowContextHelpId

Sets the window's help context identifier.

BOOL SetWindowContextHelpId(DWORD dwContextHelpId) throw();

Remarks

See SetWindowContextHelpId in the Windows SDK.

CWindow::SetWindowLong

Sets a 32-bit value at a specified offset into the extra window memory.

LONG SetWindowLong(int nIndex, LONG dwNewLong) throw();

Remarks

See SetWindowLong in the Windows SDK.

Note

To write code that is compatible with both 32-bit and 64-bit versions of Windows, use CWindow::SetWindowLongPtr.

CWindow::SetWindowLongPtr

Changes an attribute of the specified window, and also sets a value at the specified offset in the extra window memory.

LONG_PTR SetWindowLongPtr(int nIndex, LONG_PTR dwNewLong) throw();

Remarks

See SetWindowLongPtr in the Windows SDK.

This function supersedes the CWindow::SetWindowLong method. To write code that is compatible with both 32-bit and 64-bit versions of Windows, use CWindow::SetWindowLongPtr.

CWindow::SetWindowPlacement

Sets the show state and positions.

BOOL SetWindowPlacement(const WINDOWPLACEMENT FAR* lpwndpl);

Remarks

See SetWindowPlacement in the Windows SDK.

CWindow::SetWindowPos

Sets the size, position, and Z order.

BOOL SetWindowPos(
    HWND hWndInsertAfter,
    int x,
    int y,
    int cx,
    int cy,
    UINT nFlags) throw();

BOOL SetWindowPos(
    HWND hWndInsertAfter,
    LPCRECT lpRect,
    UINT nFlags) throw();

Remarks

See SetWindowPos in the Windows SDK.

The second version of this method uses a RECT structure to set the window's new position, width, and height.

CWindow::SetWindowRgn

Sets the window region of a window.

int SetWindowRgn(HRGN hRgn, BOOL bRedraw = FALSE) throw();

Remarks

See SetWindowRgn in the Windows SDK.

CWindow::SetWindowText

Changes the window's text.

BOOL SetWindowText(LPCTSTR lpszString) throw();

Remarks

See SetWindowText in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::SetWindowText() to set the new title-text of the 
//window

CWindow myWindow;
myWindow.Attach(hWnd);
myWindow.SetWindowText(_T("Hello ATL"));

CWindow::SetWindowWord

Sets a 16-bit value at a specified offset into the extra window memory.

WORD SetWindowWord(int nIndex, WORD wNewWord) throw();

Remarks

See SetWindowLong in the Windows SDK.

CWindow::ShowCaret

Displays the system caret.

BOOL ShowCaret() throw();

Remarks

See ShowCaret in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::ShowCaret() to show the caret

CWindow myWindow;
myWindow.Attach(hWnd);
myWindow.ShowCaret();

CWindow::ShowOwnedPopups

Shows or hides the pop-up windows owned by the window.

BOOL ShowOwnedPopups(BOOL bShow = TRUE) throw();

Remarks

See ShowOwnedPopups in the Windows SDK.

CWindow::ShowScrollBar

Shows or hides a scroll bar.

BOOL ShowScrollBar(UINT nBar, BOOL bShow = TRUE) throw();

Remarks

See ShowScrollBar in the Windows SDK.

CWindow::ShowWindow

Sets the window's show state.

BOOL ShowWindow(int nCmdShow) throw();

Remarks

See ShowWindow in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::ShowWindow() to show the window in its maximized state

CWindow myWindow;
myWindow.Attach(hWnd);
myWindow.ShowWindow(SW_SHOWMAXIMIZED);

CWindow::ShowWindowAsync

Sets the show state of a window created by a different thread.

BOOL ShowWindowAsync(int nCmdShow) throw();

Remarks

See ShowWindowAsync in the Windows SDK.

CWindow::UpdateWindow

Updates the client area.

BOOL UpdateWindow() throw();

Remarks

See UpdateWindow in the Windows SDK.

Example

//The following example attaches an HWND to the CWindow object and 
//calls CWindow::UpdateWindow() to update the window

CWindow myWindow;
myWindow.Attach(hWnd);
BOOL bUpdated = myWindow.UpdateWindow();

CWindow::ValidateRect

Validates the client area within the specified rectangle.

BOOL ValidateRect(LPCRECT lpRect) throw();

Remarks

See ValidateRect in the Windows SDK.

CWindow::ValidateRgn

Validates the client area within the specified region.

BOOL ValidateRgn(HRGN hRgn) throw();

Remarks

See ValidateRgn in the Windows SDK.

CWindow::WinHelp

Starts Windows Help.

BOOL WinHelp(
    LPCTSTR lpszHelp,
    UINT nCmd = HELP_CONTEXT,
    DWORD dwData = 0) throw();

Remarks

See WinHelp in the Windows SDK.

See also

Class Overview