CWindow
类
此类提供用于操作窗口的方法。
重要
无法在 Windows 运行时中执行的应用程序中使用此类及其成员。
语法
class CWindow
成员
公共构造函数
名称 | 描述 |
---|---|
CWindow::CWindow |
构造函数。 |
公共方法
公共运算符
“属性” | 描述 |
---|---|
CWindow::operator HWND |
将 CWindow 对象转换为 HWND 。 |
CWindow::operator = |
将 HWND 分配给 CWindow 对象。 |
公共数据成员
“属性” | 描述 |
---|---|
CWindow::m_hWnd |
与 CWindow 对象关联的窗口的句柄。 |
CWindow::rcDefault |
包含默认窗口维度。 |
注解
CWindow
提供在 ATL 中操作窗口的基本功能。 许多 CWindow
方法只是简单地包装了其中一个 Win32 API 函数。 例如,比较 CWindow::ShowWindow
和 ShowWindow
的原型:
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
。使用
CWindow
的operator =
。使用从
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
不会创建窗口。 类 CWindowImpl
、CContainedWindow
和 CDialogImpl
(都派生自 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
中,因为 CSimpleString
是 CString
的基类。
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
。
备注
如果 bLock
是 TRUE
,则此方法将 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();
备注
对于顶级窗口对象,x
和 y
参数相对于屏幕的左上角。 对于子窗口对象,它们相对于父窗口工作区的左上角。
此方法的第二个版本使用一个 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
(默认值),消息将被发送到所有后代窗口;否则,它将仅发送到直接子窗口。
备注
如果 bDeep
为 TRUE
,则将消息另外发送到所有其他后代窗口。
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
。