CWindow

此类提供用于操作窗口的方法。

重要

无法在 Windows 运行时中执行的应用程序中使用此类及其成员。

语法

class CWindow

成员

公共构造函数

名称 描述
CWindow::CWindow 构造函数。

公共方法

名称 描述
CWindow::ArrangeIconicWindows 排列所有最小化的子窗口。
CWindow::Attach 将窗口附加到 CWindow 对象。
CWindow::BeginPaint 准备用于绘制的窗口。
CWindow::BringWindowToTop 将窗口置于 Z 顺序的顶部。
CWindow::CenterWindow 使窗口相对于给定窗口居中。
CWindow::ChangeClipboardChain 从剪贴板查看器链中移除窗口。
CWindow::CheckDlgButton 更改指定按钮的检查状态。
CWindow::CheckRadioButton 检查指定的单选按钮。
CWindow::ChildWindowFromPoint 检索包含指定点的子窗口。
CWindow::ChildWindowFromPointEx 检索包含指定点的特定子窗口类型。
CWindow::ClientToScreen 将客户端坐标转换为屏幕坐标。
CWindow::Create 创建一个窗口。
CWindow::CreateCaret 为系统插入符号创建一个新形状。
CWindow::CreateGrayCaret 为系统脱字符创建灰色矩形。
CWindow::CreateSolidCaret 为系统脱字符创建实心矩形。
CWindow::DeferWindowPos 更新指定窗口的指定多窗口位置结构。
CWindow::DestroyWindow 销毁与 CWindow 对象关联的窗口。
CWindow::Detach 将窗口与 CWindow 对象分离。
CWindow::DlgDirList 使用与指定路径或文件名匹配的所有文件的名称填充列表框。
CWindow::DlgDirListComboBox 填充组合框,其中包含与指定路径或文件名匹配的所有文件的名称。
CWindow::DlgDirSelect 从列表框检索当前所选内容。
CWindow::DlgDirSelectComboBox 从组合框检索当前所选内容。
CWindow::DragAcceptFiles 注册窗口是否接受拖动的文件。
CWindow::DrawMenuBar 重绘窗口的菜单栏。
CWindow::EnableScrollBar 启用或禁用滚动条箭头。
CWindow::EnableWindow 启用或禁用输入。
CWindow::EndPaint 标记绘制的末尾。
CWindow::FlashWindow 使窗口闪烁一次。
CWindow::GetClientRect 检索工作区的坐标。
CWindow::GetDC 检索工作区的显示上下文。
CWindow::GetDCEx 检索工作区的设备上下文,并允许剪辑选项。
CWindow::GetDescendantWindow 检索指定的后代窗口。
CWindow::GetDlgControl 检索指定控件上的接口。
CWindow::GetDlgCtrlID 检索窗口的标识符(仅适用于子窗口)。
CWindow::GetDlgHost 检索指向 ATL 控件托管容器的接口的指针。
CWindow::GetDlgItem 检索指定的子窗口。
CWindow::GetDlgItemInt 将控件的文本转换为整数。
CWindow::GetDlgItemText 检索控件的文本。
CWindow::GetExStyle 检索扩展窗口样式。
CWindow::GetFont 检索窗口的当前字体。
CWindow::GetHotKey 确定与窗口关联的热键。
CWindow::GetIcon 检索窗口的大或小图标。
CWindow::GetLastActivePopup 检索最近处于活动状态的弹出窗口。
CWindow::GetMenu 检索窗口的文本。
CWindow::GetNextDlgGroupItem 检索一组控件中的上一个或下一个控件。
CWindow::GetNextDlgTabItem 检索具有 WS_TABSTOP 样式的上一个或下一个控件。
CWindow::GetParent 检索即时父窗口。
CWindow::GetScrollInfo 检索滚动条的参数。
CWindow::GetScrollPos 指定滚动框的位置。
CWindow::GetScrollRange 检索滚动条范围。
CWindow::GetStyle 检索窗口样式。
CWindow::GetSystemMenu 创建系统菜单的副本进行修改。
CWindow::GetTopLevelParent 检索顶级父窗口或所有者窗口。
CWindow::GetTopLevelWindow 检索顶级所有者窗口。
CWindow::GetTopWindow 检索顶级子窗口。
CWindow::GetUpdateRect 检索完全包围更新区域的最小矩形的坐标。
CWindow::GetUpdateRgn 检索更新区域并将其复制到指定区域。
CWindow::GetWindow 检索指定记录。
CWindow::GetWindowContextHelpId 检索窗口的帮助上下文标识符。
CWindow::GetWindowDC 检索整个窗口的显示上下文。
CWindow::GetWindowLong 在额外的窗口内存中检索具有指定偏移量的 32 位值。
CWindow::GetWindowLongPtr 检索有关指定窗口的信息,包括在额外窗口内存中指定偏移量处的值。
CWindow::GetWindowPlacement 检索显示状态和位置。
CWindow::GetWindowProcessID 检索创建窗口的进程标识符。
CWindow::GetWindowRect 检索窗口的边界维度。
CWindow::GetWindowRgn 获取窗口的窗口区域的副本。
CWindow::GetWindowText 检索窗口的文本。
CWindow::GetWindowTextLength 检索窗口文本的长度。
CWindow::GetWindowThreadID 检索创建指定窗口的线程的标识符。
CWindow::GetWindowWord 在额外的窗口内存中检索具有指定偏移量的 16 位值。
CWindow::GotoDlgCtrl 将键盘焦点设置为对话框中的控件。
CWindow::HideCaret 隐藏系统脱字符。
CWindow::HiliteMenuItem 突出显示顶级菜单项或从顶级菜单项移除突出显示。
CWindow::Invalidate 使整个工作区无效。
CWindow::InvalidateRect 使指定矩形中的工作区失效。
CWindow::InvalidateRgn 使指定区域中的工作区失效。
CWindow::IsChild 确定指定的窗口是否为子窗口。
CWindow::IsDialogMessage 确定消息是否适用于指定的对话框。
CWindow::IsDlgButtonChecked 确定按钮的检查状态。
CWindow::IsIconic 确定窗口是否最小化。
CWindow::IsParentDialog 确定控件的父窗口是否为对话框窗口。
CWindow::IsWindow 确定指定的窗口句柄是否标识现有窗口。
CWindow::IsWindowEnabled 确定窗口是否启用输入。
CWindow::IsWindowUnicode 确定指定的窗口是否为本机 Unicode 窗口。
CWindow::IsWindowVisible 确定窗口的可见性状态。
CWindow::IsZoomed 确定窗口是否最大化。
CWindow::KillTimer 销毁计时器事件。
CWindow::LockWindowUpdate 在窗口中禁用或启用绘图。
CWindow::MapWindowPoints 将一组点从窗口的坐标空间转换到另一个窗口的坐标空间。
CWindow::MessageBox 显示消息框。
CWindow::ModifyStyle 修改窗口样式。
CWindow::ModifyStyleEx 修改扩展窗口样式。
CWindow::MoveWindow 更改窗口的大小和位置。
CWindow::NextDlgCtrl 将键盘焦点设置为对话框中的下一个控件。
CWindow::OpenClipboard 打开剪贴板。
CWindow::PostMessage 将消息放置在与创建窗口的线程关联的消息队列中。 返回时不等待线程处理消息。
CWindow::PrevDlgCtrl 将键盘焦点设置为对话框中的上一个控件。
CWindow::Print 请求在指定的设备上下文中绘制窗口。
CWindow::PrintClient 请求在指定的设备上下文中绘制窗口的工作区。
CWindow::RedrawWindow 更新工作区中的指定矩形或区域。
CWindow::ReleaseDC 释放设备上下文。
CWindow::ResizeClient 调整窗口的大小。
CWindow::ScreenToClient 将屏幕坐标转换为客户端坐标。
CWindow::ScrollWindow 滚动指定的工作区。
CWindow::ScrollWindowEx 滚动具有其他功能的指定工作区。
CWindow::SendDlgItemMessage 向控件发送消息。
CWindow::SendMessage 向窗口发送消息,在窗口过程处理消息之前不会返回。
CWindow::SendMessageToDescendants 向指定的后代窗口发送消息。
CWindow::SendNotifyMessage 向窗口发送消息。 如果窗口是由调用线程创建的,SendNotifyMessage 则在窗口过程处理消息之前不会返回。 否则,它将立即返回。
CWindow::SetActiveWindow 激活窗口。
CWindow::SetCapture 将所有后续鼠标输入发送到窗口。
CWindow::SetClipboardViewer 将窗口添加到剪贴板查看器链。
CWindow::SetDlgCtrlID 更改窗口的标识符。
CWindow::SetDlgItemInt 将控件的文本更改为整数值的字符串表示形式。
CWindow::SetDlgItemText 更改控件的文本。
CWindow::SetFocus 将输入焦点设置到窗口。
CWindow::SetFont 更改窗口的当前字体。
CWindow::SetHotKey 将热键与窗口相关联。
CWindow::SetIcon 更改窗口的大图标或小图标。
CWindow::SetMenu 更改窗口的当前菜单。
CWindow::SetParent 更改父窗口。
CWindow::SetRedraw 设置或清除重绘标志。
CWindow::SetScrollInfo 设置滚动条的参数。
CWindow::SetScrollPos 更改滚动框的位置。
CWindow::SetScrollRange 更改滚动条范围。
CWindow::SetTimer 创建计时器事件。
CWindow::SetWindowContextHelpId 设置窗口的帮助上下文标识符。
CWindow::SetWindowLong 在额外窗口内存中的指定偏移处设置一个 32 位值。
CWindow::SetWindowLongPtr 更改指定窗口的属性,并在额外窗口内存中的指定偏移量设置一个值。
CWindow::SetWindowPlacement 设置显示状态和位置。
CWindow::SetWindowPos 设置大小、位置和 Z 顺序。
CWindow::SetWindowRgn 设置窗口的窗口区域。
CWindow::SetWindowText 更改窗口的文本。
CWindow::SetWindowWord 在额外窗口内存中的指定偏移处设置一个 16 位值。
CWindow::ShowCaret 显示系统脱字符。
CWindow::ShowOwnedPopups 显示或隐藏窗口所拥有的弹出窗口。
CWindow::ShowScrollBar 显示或隐藏滚动条。
CWindow::ShowWindow 设置窗口的显示状态。
CWindow::ShowWindowAsync 设置由其他线程创建的窗口的显示状态。
CWindow::UpdateWindow 更新工作区。
CWindow::ValidateRect 验证指定矩形中的工作区。
CWindow::ValidateRgn 验证指定区域中的工作区。
CWindow::WinHelp 启动 Windows 帮助。

公共运算符

“属性” 描述
CWindow::operator HWND CWindow 对象转换为 HWND
CWindow::operator = HWND 分配给 CWindow 对象。

公共数据成员

“属性” 描述
CWindow::m_hWnd CWindow 对象关联的窗口的句柄。
CWindow::rcDefault 包含默认窗口维度。

注解

CWindow 提供在 ATL 中操作窗口的基本功能。 许多 CWindow 方法只是简单地包装了其中一个 Win32 API 函数。 例如,比较 CWindow::ShowWindowShowWindow 的原型:

CWindow 方法 Win32 函数
BOOL ShowWindow( int nCmdShow ); BOOL ShowWindow( HWND hWnd , int nCmdShow );

CWindow::ShowWindow 通过将 CWindow::m_hWnd 作为第一个参数传递来调用 Win32 函数 ShowWindow。 每个直接包装 Win32 函数的 CWindow 方法都会传递 m_hWnd 成员;因此,许多 CWindow 文档都将向你介绍 Windows SDK。

注意

不是每个与窗口相关的 Win32 函数都被 CWindow 包装,也不是每个方法 CWindow 都包装一个 Win32 函数。

CWindow::m_hWnd 存储用于标识窗口的 HWND。 在下列情况下,会向你的对象附加一个 HWND

  • CWindow 的构造函数中指定 HWND

  • 调用 CWindow::Attach

  • 使用 CWindowoperator =

  • 使用从 CWindow 派生的以下类之一创建或子类化窗口:

CWindowImpl 许你创建新窗口或子类化现有窗口。

CContainedWindow 实现包含在另一个对象中的窗口。 你可以创建新窗口或子类化现有窗口。

CDialogImpl 允许你创建模态或非模态对话框。

有关 Windows 的详细信息,请参阅 Windows 和 Windows SDK 中的后续主题。 若要详细了解如何在 ATL 中使用窗口,请参阅 ATL 窗口类一文。

要求

标头atlwin.h

CWindow::ArrangeIconicWindows

排列所有最小化的子窗口。

UINT ArrangeIconicWindows() throw();

注解

请参阅 Windows SDK 中的ArrangeIconicWindows

CWindow::Attach

hWndNew 所标识的窗口附加到 CWindow 对象。

void Attach(HWND hWndNew) throw();

参数

hWndNew
[in] 窗口的句柄。

示例

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

CWindow::BeginPaint

准备用于绘制的窗口。

HDC BeginPaint(LPPAINTSTRUCT lpPaint) throw();

备注

请参阅 Windows SDK 中的BeginPaint

示例

//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

将窗口置于 Z 顺序的顶部。

BOOL BringWindowToTop() throw();

备注

请参阅 Windows SDK 中的BringWindowToTop

示例

//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

使窗口相对于给定窗口居中。

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

参数

hWndCenter
[in] 要作为居中依据的窗口的句柄。 如果此参数为 NULL(默认值),则该方法会将 hWndCenter 设置为窗口的父窗口(如果它是子窗口)。 否则,它会将 hWndCenter 设置为窗口的所有者窗口。

返回值

如果窗口成功居中,则为 TRUE;否则,FALSE

示例

//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

从剪贴板查看器链中移除窗口。

BOOL ChangeClipboardChain(HWND hWndNewNext) throw();

注解

请参阅 Windows SDK 中的ChangeClipboardChain

CWindow::CheckDlgButton

更改指定按钮的检查状态。

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

注解

请参阅 Windows SDK 中的CheckDlgButton

CWindow::CheckRadioButton

检查指定的单选按钮。

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

备注

请参阅 Windows SDK 中的CheckRadioButton

CWindow::ChildWindowFromPoint

检索包含指定点的子窗口。

HWND ChildWindowFromPoint(POINT point) const throw();

备注

请参阅 Windows SDK 中的ChildWindowFromPoint

CWindow::ChildWindowFromPointEx

检索包含指定点的特定子窗口类型。

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

备注

请参阅 Windows SDK 中的ChildWindowFromPointEx

CWindow::ClientToScreen

将客户端坐标转换为屏幕坐标。

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

注解

请参阅 Windows SDK 中的ClientToScreen

此方法的第二个版本允许你转换 RECT 结构的坐标。

CWindow::Create

创建一个窗口。

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();

参数

lpstrWndClass
[in] 指向窗口类的指针。

hWndParent
[in] 父窗口或所有者窗口的句柄。

rect
[in] _U_RECT 类型的变量,用于指定窗口位置。 默认值为 NULL。 当此参数为 NULL 时,使用 CWindow::rcDefault 的值。

szWindowName
[in] 指定窗口的名称。 默认值是 NULL

dwStyle
[in] 窗口的样式。 默认值为 0,这意味着未指定任何样式。 有关可能值的列表,请参阅 Windows SDK 中的 CreateWindow

dwExStyle
[in] 扩展窗口样式。 默认值为 0,这意味着未指定任何扩展样式。 有关可能值的列表,请参阅 Windows SDK 中的 CreateWindowEx

MenuOrID
[在] _U_MENUorID 类型的变量,用于指定菜单或窗口标识符的句柄。 默认值为 0U

lpCreateParam
指针,指向 CREATESTRUCT 结构中包含的窗口创建数据。

返回值

如果成功,则新创建窗口的句柄,由 m_hWnd 指定。 否则为 NULL

备注

CWindow::rcDefault 定义为 __declspec(selectany) RECT CWindow::rcDefault = {CW_USEDEFAULT, CW_USEDEFAULT, 0, 0};

有关详细信息,请参阅 Windows SDK 中的 CreateWindow

注意如果使用 0 作为 MenuOrID 参数的值,则必须将其指定为 0U(默认值)以避免编译器错误。

CWindow::CreateCaret

为系统插入符号创建一个新形状。

BOOL CreateCaret(HBITMAP pBitmap) throw();

备注

请参阅 Windows SDK 中的CreateCaret

CWindow::CreateGrayCaret

为系统脱字符创建灰色矩形。

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

备注

请参阅 Windows SDK 中的CreateCaret

将位图句柄参数的 (HBITMAP) 1 传递给 Win32 函数。

CWindow::CreateSolidCaret

为系统脱字符创建实心矩形。

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

备注

请参阅 Windows SDK 中的CreateCaret

将位图句柄参数的 (HBITMAP) 0 传递给 Win32 函数。

CWindow::CWindow

构造函数。

CWindow(HWND hWnd = NULL) throw();

参数

hWnd
[in] 窗口的句柄。

备注

m_hWnd 成员初始化为 hWnd,默认情况下为 NULL

注意

CWindow::CWindow 不会创建窗口。 类 CWindowImplCContainedWindowCDialogImpl(都派生自 CWindow)提供了一种创建窗口或对话框的方法,然后将其分配给 CWindow::m_hWnd。 你也可以使用 CreateWindow Win32 函数。

CWindow::DeferWindowPos

更新指定窗口的指定多窗口位置结构。

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

注解

请参阅 Windows SDK 中的DeferWindowPos

CWindow::DestroyWindow

销毁与 CWindow 对象关联的窗口并将 m_hWnd 设置为 NULL

BOOL DestroyWindow() throw();

注解

请参阅 Windows SDK 中的DestroyWindow

它不会破坏 CWindow 对象本身。

示例

  //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

CWindow 对象中分离 m_hWnd 并将 m_hWnd 设置为 NULL

HWND Detach() throw();

返回值

HWND 对象关联的 CWindow

示例

//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

使用与指定路径或文件名匹配的所有文件的名称填充列表框。

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

备注

请参阅 Windows SDK 中的DlgDirList

CWindow::DlgDirListComboBox

填充组合框,其中包含与指定路径或文件名匹配的所有文件的名称。

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

备注

请参阅 Windows SDK 中的DlgDirListComboBox

CWindow::DlgDirSelect

从列表框检索当前所选内容。

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

备注

请参阅 Windows SDK 中的DlgDirSelectEx

CWindow::DlgDirSelectComboBox

从组合框检索当前所选内容。

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

注解

请参阅 Windows SDK 中的DlgDirSelectComboBoxEx

CWindow::DragAcceptFiles

注册窗口是否接受拖动的文件。

void DragAcceptFiles(BOOL bAccept = TRUE);

备注

请参阅 Windows SDK 中的DragAcceptFiles

CWindow::DrawMenuBar

重绘窗口的菜单栏。

BOOL DrawMenuBar() throw();

备注

请参阅 Windows SDK 中的DrawMenuBar

CWindow::EnableScrollBar

启用或禁用滚动条箭头。

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

备注

请参阅 Windows SDK 中的EnableScrollBar

CWindow::EnableWindow

启用或禁用输入。

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

备注

请参阅 Windows SDK 中的EnableWindow

示例

//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

标记绘制的末尾。

void EndPaint(LPPAINTSTRUCT lpPaint) throw();

备注

请参阅 Windows SDK 中的EndPaint

示例

//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

使窗口闪烁一次。

BOOL FlashWindow(BOOL bInvert) throw();

注解

请参阅 Windows SDK 中的FlashWindow

CWindow::GetClientRect

检索工作区的坐标。

BOOL GetClientRect(LPRECT lpRect) const throw();

注解

请参阅 Windows SDK 中的GetClientRect

示例

//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

检索工作区的显示上下文。

HDC GetDC() throw();

备注

请参阅 Windows SDK 中的GetDC

示例

// 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

检索工作区的设备上下文,并允许剪辑选项。

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

注解

请参阅 Windows SDK 中的GetDCEx

CWindow::GetDescendantWindow

查找由给定标识符指定的后代窗口。

HWND GetDescendantWindow(int nID) const throw();

参数

nID
[in] 要检索的后代窗口的标识符。

返回值

后代窗口的句柄。

备注

GetDescendantWindow 搜索整个子窗口树,而不仅仅是直接子窗口。

CWindow::GetDlgControl

调用此函数以获取指向 ActiveX 控件的接口的指针,该控件由复合控件或控件宿主对话框托管。

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

参数

nID
[in] 要检索的控件的资源 ID。

iid
[in] 要从控件获取的接口的 ID。

ppCtrl
[out] 指向接口的指针。

返回值

成功时返回 S_OK,或返回任何有效错误 HRESULT。 例如,如果找不到 nID 指定的控件,则该函数返回 E_FAIL,如果可以找到该控件但不支持 iid 指定的接口,则该函数返回 E_NOINTERFACE

备注

使用此指针,可以在接口上调用方法。

CWindow::GetDlgCtrlID

检索窗口的标识符(仅适用于子窗口)。

int GetDlgCtrlID() const throw();

备注

请参阅 Windows SDK 中的GetDlgCtrlID

CWindow::GetDlgHost

检索指向 ATL 控件托管容器的接口的指针。

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

参数

nID
[in] 要检索的控件的资源 ID。

iid
[in] 要从控件获取的接口的 ID。

ppHost
[out] 指向接口的指针。

返回值

如果 iid 指定的窗口是一个控制容器,并且可以检索到请求的接口,则返回 S_OK。 如果窗口不是控制容器,或者无法检索到所请求的接口,则返回 E_FAIL。 如果找不到具有指定 ID 的窗口,则返回值等于 HRESULT_FROM_WIN32(ERROR_CONTROL_ID_NOT_FOUND)

备注

使用此指针,可以在接口上调用方法。

CWindow::GetDlgItem

检索指定的子窗口。

HWND GetDlgItem(int nID) const throw();

注解

请参阅 Windows SDK 中的 GetDlgItem

CWindow::GetDlgItemInt

将控件的文本转换为整数。

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

备注

请参阅 Windows SDK 中的GetDlgItemInt

CWindow::GetDlgItemText

检索控件的文本。

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

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

备注

有关详细信息,请参阅 Windows SDK 中的 GetDlgItemText

此方法的第二个版本允许你将控件的文本复制到 BSTR。 如果文本复制成功,则此版本返回 TRUE;否则返回 FALSE

CWindow::GetExStyle

检索窗口的扩展窗口样式。

DWORD GetExStyle() const throw();

返回值

窗口的扩展样式。

备注

要检索常规窗口样式,请调用 GetStyle

示例

//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

通过向窗口发送 WM_GETFONT 消息来检索窗口的当前字体。

HFONT GetFont() const throw();

返回值

字体句柄。

CWindow::GetHotKey

通过发送 WM_GETHOTKEY 消息确定与窗口关联的热键。

DWORD GetHotKey() const throw();

返回值

与窗口关联的热键的虚拟键代码和修饰符。 有关可能修饰符的列表,请参阅 Windows SDK 中的 WM_GETHOTKEY。 有关标准虚拟键代码的列表,请参阅 Winuser.h

CWindow::GetIcon

检索窗口的大图标或小图标的句柄。

HICON GetIcon(BOOL bBigIcon = TRUE) const;

参数

bBigIcon
[in] 如果 TRUE(默认值),则此方法返回大图标。 否则,会返回小图标。

返回值

图标句柄。

注解

GetIcon 向窗口发送 WM_GETICON 消息。

CWindow::GetLastActivePopup

检索最近处于活动状态的弹出窗口。

HWND GetLastActivePopup() const throw();

注解

请参阅 Windows SDK 中的GetLastActivePopup

CWindow::GetMenu

检索窗口的文本。

HMENU GetMenu() const throw();

备注

请参阅 Windows SDK 中的GetMenu

CWindow::GetNextDlgGroupItem

检索一组控件中的上一个或下一个控件。

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

备注

请参阅 Windows SDK 中的GetNextDlgGroupItem

CWindow::GetNextDlgTabItem

检索具有 WS_TABSTOP 样式的上一个或下一个控件。

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

注解

请参阅 Windows SDK 中的GetNextDlgTabItem

CWindow::GetParent

检索即时父窗口。

HWND GetParent() const throw();

备注

请参阅 Windows SDK 中的GetParent

示例

// 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

检索滚动条的参数。

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

备注

请参阅 Windows SDK 中的GetScrollInfo

CWindow::GetScrollPos

指定滚动框的位置。

int GetScrollPos(int nBar) const throw();

备注

请参阅 Windows SDK 中的GetScrollPos

CWindow::GetScrollRange

检索滚动条范围。

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

备注

请参阅 Windows SDK 中的GetScrollRange

CWindow::GetStyle

检索窗口的窗口样式。

DWORD GetStyle() const throw();

返回值

窗口的样式。

备注

要检索扩展的窗口样式,请调用 GetExStyle

示例

//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

创建系统菜单的副本进行修改。

HMENU GetSystemMenu(BOOL bRevert) const throw();

备注

请参阅 Windows SDK 中的GetSystemMenu

CWindow::GetTopLevelParent

检索窗口的顶级父窗口。

HWND GetTopLevelParent() const throw();

返回值

顶级父窗口的句柄。

CWindow::GetTopLevelWindow

检索窗口的顶级父窗口或所有者窗口。

HWND GetTopLevelWindow() const throw();

返回值

顶级所有者窗口的句柄。

CWindow::GetTopWindow

检索顶级子窗口。

HWND GetTopWindow() const throw();

注解

请参阅 Windows SDK 中的GetTopWindow

示例

//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

检索完全包围更新区域的最小矩形的坐标。

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

备注

请参阅 Windows SDK 中的GetUpdateRect

CWindow::GetUpdateRgn

检索更新区域并将其复制到指定区域。

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

备注

请参阅 Windows SDK 中的GetUpdateRgn

CWindow::GetWindow

检索指定记录。

HWND GetWindow(UINT nCmd) const throw();

备注

请参阅 Windows SDK 中的GetWindow

CWindow::GetWindowContextHelpId

检索窗口的帮助上下文标识符。

DWORD GetWindowContextHelpId() const throw();

注解

请参阅 Windows SDK 中的GetWindowContextHelpId

CWindow::GetWindowDC

检索整个窗口的显示上下文。

HDC GetWindowDC() throw();

备注

请参阅 Windows SDK 中的GetWindowDC

示例

//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

在额外的窗口内存中检索具有指定偏移量的 32 位值。

LONG GetWindowLong(int nIndex) const throw();

备注

请参阅 Windows SDK 中的GetWindowLong

注意

要编写与 32 位和 64 位版本的 Windows 兼容的代码,请使用 CWindow::GetWindowLongPtr

CWindow::GetWindowLongPtr

检索有关指定窗口的信息,包括在额外窗口内存中指定偏移量处的值。

LONG_PTR GetWindowLongPtr(int nIndex) const throw();

备注

有关详细信息,请参阅 Windows SDK 中的 GetWindowLongPtr

如果你要检索指针或句柄,则此函数将取代 CWindow::GetWindowLong 方法。

注意

指针和句柄在 32 位 Windows 上为 32 位,在 64 位 Windows 上为 64 位。

要编写与 32 位和 64 位版本的 Windows 兼容的代码,请使用 CWindow::GetWindowLongPtr

CWindow::GetWindowPlacement

检索显示状态和位置。

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

备注

请参阅 Windows SDK 中的GetWindowPlacement

CWindow::GetWindowProcessID

检索创建窗口的进程标识符。

DWORD GetWindowProcessID() throw();

注解

请参阅 Windows SDK 中的GetWindowThreadProcessID

示例

//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

检索窗口的边界维度。

BOOL GetWindowRect(LPRECT lpRect) const throw();

备注

请参阅 Windows SDK 中的GetWindowRect

CWindow::GetWindowRgn

获取窗口的窗口区域的副本。

int GetWindowRgn(HRGN hRgn) throw();

备注

请参阅 Windows SDK 中的GetWindowRgn

CWindow::GetWindowText

检索窗口的文本。

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

参数

lpszStringBuf
用于写入窗口文本的缓冲区。

nMaxCount
缓冲区的大小(以字符为单位),这也是要写入的最大字符数。

bstrText
用于存储窗口文本的 BSTR

strText
用于存储窗口文本的 CString

返回值

若成功复制文本,则返回值为 TRUE;否则返回值为 FALSE

注解

请参阅 Windows SDK 中的GetWindowText

此方法的第二个版本允许将文本存储在 BSTR 中;第三个版本允许将结果存储在 CString 中,因为 CSimpleStringCString 的基类。

CWindow::GetWindowTextLength

检索窗口文本的长度。

int GetWindowTextLength() const throw();

备注

请参阅 Windows SDK 中的GetWindowTextLength

CWindow::GetWindowThreadID

检索创建指定窗口的线程的标识符。

DWORD GetWindowThreadID() throw();

注解

请参阅 Windows SDK 中的GetWindowThreadProcessID

示例

//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

在额外的窗口内存中检索具有指定偏移量的 16 位值。

WORD GetWindowWord(int nIndex) const throw();

备注

请参阅 Windows SDK 中的GetWindowLong

CWindow::GotoDlgCtrl

将键盘焦点设置为对话框中的控件。

void GotoDlgCtrl(HWND hWndCtrl) const throw();

备注

请参阅 Windows SDK 中的WM_NEXTDLGCTL

CWindow::HideCaret

隐藏系统脱字符。

BOOL HideCaret() throw();

注解

请参阅 Windows SDK 中的HideCaret

示例

//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

突出显示顶级菜单项或从顶级菜单项移除突出显示。

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

备注

请参阅 Windows SDK 中的HiliteMenuItem

CWindow::Invalidate

使整个工作区无效。

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

注解

请参阅 Windows SDK 中的InvalidateRect

RECT 参数的 NULL 传递给 InvalidateRect Win32 函数。

示例

//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

使指定矩形中的工作区失效。

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

备注

请参阅 Windows SDK 中的InvalidateRect

CWindow::InvalidateRgn

使指定区域中的工作区失效。

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

备注

有关详细信息,请参阅 Windows SDK 中的 InvalidateRgn

指定 void 返回类型,而 InvalidateRgn Win32 函数始终返回 TRUE

CWindow::IsChild

确定指定的窗口是否为子窗口。

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

注解

请参阅 Windows SDK 中的IsChild

CWindow::IsDialogMessage

确定消息是否适用于指定的对话框。

BOOL IsDialogMessage(LPMSG lpMsg) throw();

注解

请参阅 Windows SDK 中的IsDialogMessage

CWindow::IsDlgButtonChecked

确定按钮的检查状态。

UINT IsDlgButtonChecked(int nIDButton) const throw();

备注

请参阅 Windows SDK 中的IsDlgButtonChecked

CWindow::IsIconic

确定窗口是否最小化。

BOOL IsIconic() const throw();

备注

请参阅 Windows SDK 中的IsIconic

示例

//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

确定控件的父窗口是否为对话框窗口。

BOOL IsParentDialog() throw();

返回值

如果父窗口是对话框,则返回 TRUE,否则返回 FALSE

CWindow::IsWindow

确定指定的窗口句柄是否标识现有窗口。

BOOL IsWindow() throw();

备注

请参阅 Windows SDK 中的IsWindow

示例

//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

确定窗口是否启用输入。

BOOL IsWindowEnabled() const throw();

备注

请参阅 Windows SDK 中的IsWindowEnabled

示例

//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

确定窗口的可见性状态。

BOOL IsWindowVisible() const throw();

备注

请参阅 Windows SDK 中的IsWindowVisible

示例

//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

确定指定的窗口是否为本机 Unicode 窗口。

BOOL IsWindowUnicode() throw();

备注

请参阅 Windows SDK 中的IsWindowUnicode

示例

//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

确定窗口是否最大化。

BOOL IsZoomed() const throw();

备注

请参阅 Windows SDK 中的IsZoomed

CWindow::KillTimer

销毁由 CWindow::SetTimer 创建的计时器事件。

BOOL KillTimer(UINT nIDEvent) throw();

备注

请参阅 Windows SDK 中的KillTimer

CWindow::LockWindowUpdate

通过调用 LockWindowUpdate Win32 函数在窗口中禁用或启用绘图。

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

参数

bLock
[in] 如果是 TRUE(默认值),则窗口将被锁定。 否则,它将被解锁。

返回值

如果窗口成功锁定,则为 TRUE;否则,FALSE

备注

如果 bLockTRUE,则此方法将 m_hWnd 传递给 Win32 函数;否则传递 NULL

CWindow::m_hWnd

包含与 CWindow 对象关联的窗口的句柄。

HWND m_hWnd throw() throw();

CWindow::MapWindowPoints

将一组点从窗口的坐标空间转换到另一个窗口的坐标空间。

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

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

备注

请参阅 Windows SDK 中的MapWindowPoints

此方法的第二个版本允许你转换 RECT 结构的坐标。

CWindow::MessageBox

显示消息框。

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

备注

请参阅 Windows SDK 中的MessageBox

示例

//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

修改 CWindow 对象的窗口样式。

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

参数

dwRemove
[in] 指定在样式修改期间要删除的窗口样式。

dwAdd
[in] 指定在样式修改期间要添加的窗口样式。

nFlags
[in] 窗口定位标志。 有关可能值的列表,请参阅 Windows SDK 中的 SetWindowPos 函数。

返回值

如果修改了窗口样式,则为 TRUE;否则为 FALSE

备注

可以使用按位“或”(|) 运算符组合要添加或删除的样式。 有关可用窗口样式的信息,请参阅 Windows SDK 中的 CreateWindow 函数。

如果 nFlags 为非零,则 ModifyStyle 调用 Win32 函数 SetWindowPos,并通过将 nFlags 与以下四个标志组合来重绘窗口:

  • SWP_NOSIZE 保留当前大小。

  • SWP_NOMOVE 保留当前位置。

  • SWP_NOZORDER 保留当前的 Z 顺序。

  • SWP_NOACTIVATE 不激活窗口。

要修改窗口的扩展样式,请调用 ModifyStyleEx

示例

//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

修改 CWindow 对象的扩展窗口样式。

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

参数

dwRemove
[in] 指定在样式修改期间要删除的扩展样式。

dwAdd
[in] 指定在样式修改期间要添加的扩展样式。

nFlags
[in] 窗口定位标志。 有关可能值的列表,请参阅 Windows SDK 中的 SetWindowPos 函数。

返回值

如果扩展窗口样式被修改,则为 TRUE;否则为 FALSE

备注

可以使用按位“或”(|) 运算符组合要添加或删除的样式。 有关可用扩展样式的信息,请参阅 Windows SDK 中的 CreateWindowEx 函数。

如果 nFlags 为非零,则 ModifyStyleEx 调用 Win32 函数 SetWindowPos,并通过将 nFlags 与以下四个标志组合来重绘窗口:

  • SWP_NOSIZE 保留当前大小。

  • SWP_NOMOVE 保留当前位置。

  • SWP_NOZORDER 保留当前的 Z 顺序。

  • SWP_NOACTIVATE 不激活窗口。

要使用常规窗口样式修改窗口,请调用 ModifyStyle

示例

//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

更改窗口的大小和位置。

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

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

备注

对于顶级窗口对象,xy 参数相对于屏幕的左上角。 对于子窗口对象,它们相对于父窗口工作区的左上角。

此方法的第二个版本使用一个 RECT 结构来确定窗口的新位置、宽度和高度。

CWindow::NextDlgCtrl

将键盘焦点设置为对话框中的下一个控件。

void NextDlgCtrl() const throw();

备注

请参阅 Windows SDK 中的WM_NEXTDLGCTL

CWindow::OpenClipboard

打开剪贴板。

BOOL OpenClipboard() throw();

注解

请参阅 Windows SDK 中的OpenClipboard

CWindow::operator HWND

CWindow 对象转换为 HWND

operator HWND() const throw();

CWindow::operator =

通过将 m_hWnd 成员设置为 hWnd,从而将 HWND 分配给 CWindow 对象。

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

CWindow::PostMessage

将消息放置在与创建窗口的线程关联的消息队列中。

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

备注

请参阅 Windows SDK 中的PostMessage

返回时不等待线程处理消息。

示例

//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

将键盘焦点设置为对话框中的上一个控件。

void PrevDlgCtrl() const throw();

备注

请参阅 Windows SDK 中的WM_NEXTDLGCTL

CWindow::Print

向窗口发送一条 WM_PRINT 消息,请求它在指定的设备上下文中绘制自身。

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

参数

hDC
[in] 设备上下文的图柄。

dwFlags
[in] 指定绘图选项。 你可以组合以下一个或多个标志:

  • PRF_CHECKVISIBLE 仅当窗口可见时才绘制窗口。

  • PRF_CHILDREN 绘制所有可见的子窗口。

  • PRF_CLIENT 绘制窗口的工作区。

  • PRF_ERASEBKGND 在绘制窗口之前擦除背景。

  • PRF_NONCLIENT 绘制窗口的非工作区。

  • PRF_OWNED 绘制所有拥有的窗口。

CWindow::PrintClient

向窗口发送消息 WM_PRINTCLIENT 以请求它在指定的设备上下文中绘制其工作区。

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

参数

hDC
[in] 设备上下文的图柄。

dwFlags
[in] 指定绘图选项。 你可以组合以下一个或多个标志:

  • PRF_CHECKVISIBLE 仅当窗口可见时才绘制窗口。

  • PRF_CHILDREN 绘制所有可见的子窗口。

  • PRF_CLIENT 绘制窗口的工作区。

  • PRF_ERASEBKGND 在绘制窗口之前擦除背景。

  • PRF_NONCLIENT 绘制窗口的非工作区。

  • PRF_OWNED 绘制所有拥有的窗口。

CWindow::rcDefault

包含默认窗口维度。

static RECT rcDefault;

CWindow::RedrawWindow

更新工作区中的指定矩形或区域。

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

throw()

备注

请参阅 Windows SDK 中的RedrawWindow

示例

//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

释放设备上下文。

int ReleaseDC(HDC hDC);

注解

请参阅 Windows SDK 中的ReleaseDC

示例

// 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

将窗口大小调整为指定的工作区大小。

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

参数

nWidth
窗口的新宽度(以像素为单位)。

nHeight
窗口的新高度(以像素为单位)。

bRedraw
指示是否重绘更改的标志。 默认为 FALSE,表示窗口不重绘更改。

CWindow::ScreenToClient

将屏幕坐标转换为客户端坐标。

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

备注

请参阅 Windows SDK 中的ScreenToClient

此方法的第二个版本允许你转换 RECT 结构的坐标。

CWindow::ScrollWindow

滚动指定的工作区。

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

备注

请参阅 Windows SDK 中的ScrollWindow

CWindow::ScrollWindowEx

滚动具有其他功能的指定工作区。

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

注解

请参阅 Windows SDK 中的ScrollWindowEx

CWindow::SendDlgItemMessage

向控件发送消息。

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

备注

请参阅 Windows SDK 中的SendDlgItemMessage

CWindow::SendMessage

向窗口发送消息,在窗口过程处理消息之前不会返回。

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

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

注解

请参阅 Windows SDK 中的SendMessage

示例

// 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

将指定的消息发送给 CWindow 对象的所有直接子级。

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

参数

message
[in] 要发送的消息。

wParam
[in] 其他的消息特定信息。

lParam
[in] 其他的消息特定信息。

bDeep
[in] 如果为 TRUE(默认值),消息将被发送到所有后代窗口;否则,它将仅发送到直接子窗口。

备注

如果 bDeepTRUE,则将消息另外发送到所有其他后代窗口。

CWindow::SendNotifyMessage

向窗口发送消息。

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

备注

请参阅 Windows SDK 中的SendNotifyMessage

如果窗口是由调用线程创建的,SendNotifyMessage 则在窗口过程处理消息之前不会返回。 否则,它将立即返回。

CWindow::SetActiveWindow

激活窗口。

HWND SetActiveWindow() throw();

备注

请参阅 Windows SDK 中的SetActiveWindow

示例

// 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

将所有后续鼠标输入发送到窗口。

HWND SetCapture() throw();

备注

请参阅 Windows SDK 中的SetCapture

CWindow::SetClipboardViewer

将窗口添加到剪贴板查看器链。

HWND SetClipboardViewer() throw();

注解

请参阅 Windows SDK 中的SetClipboardViewer

CWindow::SetDlgCtrlID

将窗口的标识符设置为指定的值。

int SetDlgCtrlID(int nID) throw();

参数

nID
[in] 为窗口标识符设置的新值。

返回值

如果成功,则窗口的前一个标识符;否则为 0。

CWindow::SetDlgItemInt

将控件的文本更改为整数值的字符串表示形式。

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

备注

请参阅 Windows SDK 中的SetDlgItemInt

CWindow::SetDlgItemText

更改控件的文本。

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

备注

请参阅 Windows SDK 中的SetDlgItemText

CWindow::SetFocus

将输入焦点设置到窗口。

HWND SetFocus() throw();

注解

请参阅 Windows SDK 中的SetFocus

示例

//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

通过向窗口发送 WM_SETFONT 消息来更改窗口的当前字体。

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

参数

hFont
[in] 新字体的句柄。

bRedraw
[in] 如果为 TRUE(默认值),则重绘窗口。 否则不会重绘。

CWindow::SetHotKey

通过发送 WM_SETHOTKEY 消息将热键与窗口相关联。

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

参数

wVirtualKeyCode
[in] 热键的虚拟键代码。 有关标准虚拟键代码的列表,请参阅 Winuser.h

wModifiers
[in] 热键的修饰符。 有关可能值的列表,请参阅 Windows SDK 中的 WM_SETHOTKEY

返回值

有关可能返回值的列表,请参阅 Windows SDK 中的 WM_SETHOTKEY

CWindow::SetIcon

将窗口的大图标或小图标设置为 hIcon 标识的图标。

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

参数

hIcon
[in] 新图标的句柄。

bBigIcon
[in] 如果为 TRUE(默认值),该方法设置一个大图标。 否则,它会设置一个小图标。

返回值

上一个图标的句柄。

注解

SetIcon 向窗口发送 WM_SETICON 消息。

CWindow::SetMenu

更改窗口的当前菜单。

BOOL SetMenu(HMENU hMenu) throw();

备注

请参阅 Windows SDK 中的SetMenu

CWindow::SetParent

更改父窗口。

HWND SetParent(HWND hWndNewParent) throw();

注解

请参阅 Windows SDK 中的SetParent

示例

// 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

通过向窗口发送 WM_SETREDRAW 消息来设置或清除重绘标志。

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

参数

bRedraw
[in] 指定重绘标志的状态。 如果为 TRUE(默认值),则设置重绘标志;如果为 FALSE,则清除标志。

注解

调用 SetRedraw 以允许重绘更改或防止重绘更改。

示例

//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

设置滚动条的参数。

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

注解

请参阅 Windows SDK 中的SetScrollInfo

CWindow::SetScrollPos

更改滚动框的位置。

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

注解

请参阅 Windows SDK 中的SetScrollPos

CWindow::SetScrollRange

更改滚动条范围。

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

注解

请参阅 Windows SDK 中的SetScrollRange

CWindow::SetTimer

创建计时器事件。

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

注解

请参阅 Windows SDK 中的SetTimer

CWindow::SetWindowContextHelpId

设置窗口的帮助上下文标识符。

BOOL SetWindowContextHelpId(DWORD dwContextHelpId) throw();

备注

请参阅 Windows SDK 中的SetWindowContextHelpId

CWindow::SetWindowLong

在额外窗口内存中的指定偏移处设置一个 32 位值。

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

注解

请参阅 Windows SDK 中的SetWindowLong

注意

要编写与 32 位和 64 位版本的 Windows 兼容的代码,请使用 CWindow::SetWindowLongPtr

CWindow::SetWindowLongPtr

更改指定窗口的属性,并在额外窗口内存中的指定偏移量设置一个值。

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

注解

请参阅 Windows SDK 中的SetWindowLongPtr

此功能取代 CWindow::SetWindowLong 方法。 要编写与 32 位和 64 位版本的 Windows 兼容的代码,请使用 CWindow::SetWindowLongPtr

CWindow::SetWindowPlacement

设置显示状态和位置。

BOOL SetWindowPlacement(const WINDOWPLACEMENT FAR* lpwndpl);

注解

请参阅 Windows SDK 中的SetWindowPlacement

CWindow::SetWindowPos

设置大小、位置和 Z 顺序。

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

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

备注

请参阅 Windows SDK 中的SetWindowPos

此方法的第二个版本使用一个 RECT 结构来设置窗口的新位置、宽度和高度。

CWindow::SetWindowRgn

设置窗口的窗口区域。

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

备注

请参阅 Windows SDK 中的SetWindowRgn

CWindow::SetWindowText

更改窗口的文本。

BOOL SetWindowText(LPCTSTR lpszString) throw();

注解

请参阅 Windows SDK 中的SetWindowText

示例

//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

在额外窗口内存中的指定偏移处设置一个 16 位值。

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

注解

请参阅 Windows SDK 中的SetWindowLong

CWindow::ShowCaret

显示系统脱字符。

BOOL ShowCaret() throw();

注解

请参阅 Windows SDK 中的ShowCaret

示例

//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

显示或隐藏窗口所拥有的弹出窗口。

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

备注

请参阅 Windows SDK 中的ShowOwnedPopups

CWindow::ShowScrollBar

显示或隐藏滚动条。

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

备注

请参阅 Windows SDK 中的ShowScrollBar

CWindow::ShowWindow

设置窗口的显示状态。

BOOL ShowWindow(int nCmdShow) throw();

备注

请参阅 Windows SDK 中的ShowWindow

示例

//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

设置由其他线程创建的窗口的显示状态。

BOOL ShowWindowAsync(int nCmdShow) throw();

备注

请参阅 Windows SDK 中的ShowWindowAsync

CWindow::UpdateWindow

更新工作区。

BOOL UpdateWindow() throw();

备注

请参阅 Windows SDK 中的UpdateWindow

示例

//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

验证指定矩形中的工作区。

BOOL ValidateRect(LPCRECT lpRect) throw();

注解

请参阅 Windows SDK 中的ValidateRect

CWindow::ValidateRgn

验证指定区域中的工作区。

BOOL ValidateRgn(HRGN hRgn) throw();

备注

请参阅 Windows SDK 中的ValidateRgn

CWindow::WinHelp

启动 Windows 帮助。

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

备注

请参阅 Windows SDK 中的WinHelp

另请参阅

类概述