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 函式。 例如,比較 和 ShowWindow
的CWindow::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
:
HWND
在建構函式中CWindow
指定 。呼叫
CWindow::Attach
。使用
CWindow
'soperator =
。使用衍生自
CWindow
的下列其中一個類別建立或子類別:
CWindowImpl
可讓您建立新的視窗或子類別現有的視窗。
CContainedWindow
實作包含在另一個 物件內的視窗。 您可以建立新的視窗或子類別現有的視窗。
CDialogImpl
可讓您建立強制回應或無模式對話框。
如需 Windows 的詳細資訊,請參閱 Windows SDK 中的 Windows 和後續主題。 如需在 ATL 中使用視窗的詳細資訊,請參閱 ATL 視窗類別一文。
需求
標頭: atlwin.h
CWindow::ArrangeIconicWindows
排列所有最小化的子視窗。
UINT ArrangeIconicWindows() throw();
備註
請參閱 ArrangeIconicWindows
Windows SDK。
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();
備註
請參閱 BeginPaint
Windows SDK。
範例
//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();
備註
請參閱 BringWindowToTop
Windows SDK。
範例
//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();
備註
請參閱 ChangeClipboardChain
Windows SDK。
CWindow::CheckDlgButton
變更指定按鈕的檢查狀態。
BOOL CheckDlgButton(int nIDButton, UINT nCheck) throw();
備註
請參閱 CheckDlgButton
Windows SDK。
CWindow::CheckRadioButton
檢查指定的單選按鈕。
BOOL CheckRadioButton(
int nIDFirstButton,
int nIDLastButton,
int nIDCheckButton) throw();
備註
請參閱 CheckRadioButton
Windows SDK。
CWindow::ChildWindowFromPoint
擷取包含指定點的子視窗。
HWND ChildWindowFromPoint(POINT point) const throw();
備註
請參閱 ChildWindowFromPoint
Windows SDK。
CWindow::ChildWindowFromPointEx
擷取包含指定點的特定子窗口類型。
HWND ChildWindowFromPoint(POINT point, UINT uFlags) const throw();
備註
請參閱 ChildWindowFromPointEx
Windows SDK。
CWindow::ClientToScreen
將用戶端座標轉換為螢幕座標。
BOOL ClientToScreen(LPPOINT lpPoint) const throw();
BOOL ClientToScreen(LPRECT lpRect) const throw();
備註
請參閱 ClientToScreen
Windows SDK。
此方法的第二個版本可讓您轉換 結構的座標 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,表示未指定任何樣式。 如需可能值的清單,請參閱 CreateWindow
Windows SDK 中的 。
dwExStyle
[in]延伸窗口樣式。 默認值為 0,表示未指定任何擴充樣式。 如需可能值的清單,請參閱 CreateWindowEx
Windows SDK 中的 。
MenuOrID
[in]型 _U_MENUorID
別的變數,指定功能表或視窗標識碼的句柄。 預設值是 0U
。
lpCreateParam
結構中包含的 CREATESTRUCT
視窗建立數據的指標。
傳回值
如果成功,則為 所指定新建立視窗的 m_hWnd
句柄。 否則為 NULL
。
備註
CWindow::rcDefault
已定義為 __declspec(selectany) RECT CWindow::rcDefault = {CW_USEDEFAULT, CW_USEDEFAULT, 0, 0};
。
如需詳細資訊,請參閱 CreateWindow
Windows SDK。
注意 :如果使用 0 做為 參數的值 MenuOrID
,則必須將它指定為 0U
(預設值),以避免編譯程序錯誤。
CWindow::CreateCaret
建立系統插入號的新圖形。
BOOL CreateCaret(HBITMAP pBitmap) throw();
備註
請參閱 CreateCaret
Windows SDK。
CWindow::CreateGrayCaret
建立系統插入號的灰色矩形。
BOOL CreateGrayCaret(int nWidth, int nHeight) throw();
備註
請參閱 CreateCaret
Windows SDK。
將點陣圖句柄參數傳遞 (HBITMAP) 1
至 Win32 函式。
CWindow::CreateSolidCaret
建立系統插入號的實心矩形。
BOOL CreateSolidCaret(int nWidth, int nHeight) throw();
備註
請參閱 CreateCaret
Windows SDK。
將點陣圖句柄參數傳遞 (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();
備註
請參閱 DeferWindowPos
Windows SDK。
CWindow::DestroyWindow
終結與物件相關聯的視窗, CWindow
並將 設定 m_hWnd
為 NULL
。
BOOL DestroyWindow() throw();
備註
請參閱 DestroyWindow
Windows SDK。
它不會終結 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
m_hWnd
從物件中斷連結,CWindow
並將設定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();
備註
請參閱 DlgDirList
Windows SDK。
CWindow::DlgDirListComboBox
以符合指定路徑或檔名的所有檔名填入下拉式方塊。
int DlgDirListComboBox(
LPTSTR lpPathSpec,
int nIDComboBox,
int nIDStaticPath,
UINT nFileType) throw();
備註
請參閱 DlgDirListComboBox
Windows SDK。
CWindow::DlgDirSelect
從清單方塊擷取目前的選取範圍。
BOOL DlgDirSelect(
LPTSTR lpString,
int nCount,
int nIDListBox) throw();
備註
請參閱 DlgDirSelectEx
Windows SDK。
CWindow::DlgDirSelectComboBox
從下拉式方塊擷取目前的選取範圍。
BOOL DlgDirSelectComboBox(
LPTSTR lpString,
int nCount,
int nIDComboBox) throw();
備註
請參閱 DlgDirSelectComboBoxEx
Windows SDK。
CWindow::DragAcceptFiles
註冊視窗是否接受拖曳的檔案。
void DragAcceptFiles(BOOL bAccept = TRUE);
備註
請參閱 DragAcceptFiles
Windows SDK。
CWindow::DrawMenuBar
重新繪製視窗的功能表列。
BOOL DrawMenuBar() throw();
備註
請參閱 DrawMenuBar
Windows SDK。
CWindow::EnableScrollBar
啟用或停用滾動條箭號。
BOOL EnableScrollBar(UINT uSBFlags, UINT uArrowFlags = ESB_ENABLE_BOTH) throw();
備註
請參閱 EnableScrollBar
Windows SDK。
CWindow::EnableWindow
啟用或停用輸入。
BOOL EnableWindow(BOOL bEnable = TRUE) throw();
備註
請參閱 EnableWindow
Windows SDK。
範例
//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();
備註
請參閱 EndPaint
Windows SDK。
範例
//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();
備註
請參閱 FlashWindow
Windows SDK。
CWindow::GetClientRect
擷取工作區的座標。
BOOL GetClientRect(LPRECT lpRect) const throw();
備註
請參閱 GetClientRect
Windows SDK。
範例
//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();
備註
請參閱 GetDC
Windows SDK。
範例
// 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();
備註
請參閱 GetDCEx
Windows SDK。
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]要擷取之控件的資源標識碼。
iid
[in]您想要從控制項取得之介面的識別碼。
ppCtrl
[out]介面的指標。
傳回值
在成功或任何有效的錯誤 HRESULT
時傳S_OK
回 。 例如,如果找不到 所nID
指定的控件,則函式會傳回 E_FAIL
,如果找不到控件,則會傳回 E_NOINTERFACE
,但不支援 所iid
指定的介面。
備註
您可以使用這個指標,在 介面上呼叫方法。
CWindow::GetDlgCtrlID
擷取視窗的標識碼(僅適用於子視窗)。
int GetDlgCtrlID() const throw();
備註
請參閱 GetDlgCtrlID
Windows SDK。
CWindow::GetDlgHost
擷取 ATL 控制件裝載容器之介面的指標。
HRESULT GetDlgHost(
int nID,
REFIID iid,
void** ppHost) throw();
參數
nID
[in]要擷取之控件的資源標識碼。
iid
[in]您想要從控制項取得之介面的識別碼。
ppHost
[out]介面的指標。
傳回值
S_OK
如果 指定的iid
視窗是控制件容器,而且可以擷取要求的介面,則傳回 。 E_FAIL
如果視窗不是控制項容器,或無法擷取要求的介面,則傳回 。 如果找不到有指定識別碼的視窗,則傳回值等於 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();
備註
請參閱 GetDlgItemInt
Windows SDK。
CWindow::GetDlgItemText
擷取控件的文字。
UINT GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount) const throw();
BOOL GetDlgItemText(
int nID,
BSTR& bstrText) const throw();
備註
如需詳細資訊,請參閱 GetDlgItemText
Windows SDK 中的 。
這個方法的第二個版本可讓您將控制檔的文字 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();
傳回值
與窗口相關聯之作用鍵的虛擬密鑰程式代碼和修飾詞。 如需可能的修飾詞清單,請參閱 WM_GETHOTKEY
Windows SDK 中的 。 如需標準虛擬金鑰碼的清單,請參閱 Winuser.h
。
CWindow::GetIcon
擷取視窗大或小圖示的句柄。
HICON GetIcon(BOOL bBigIcon = TRUE) const;
參數
bBigIcon
[in]如果 TRUE
(預設值) 方法會傳回大型圖示。 否則,它會傳回小型圖示。
傳回值
圖示句柄。
備註
GetIcon
將 WM_GETICON
訊息傳送至視窗。
CWindow::GetLastActivePopup
擷取最近作用中的彈出視窗。
HWND GetLastActivePopup() const throw();
備註
請參閱 GetLastActivePopup
Windows SDK。
CWindow::GetMenu
擷取視窗的功能表。
HMENU GetMenu() const throw();
備註
請參閱 GetMenu
Windows SDK。
CWindow::GetNextDlgGroupItem
擷取控件群組內的上一個或下一個控件。
HWND GetNextDlgGroupItem(HWND hWndCtl, BOOL bPrevious = FALSE) const throw();
備註
請參閱 GetNextDlgGroupItem
Windows SDK。
CWindow::GetNextDlgTabItem
擷取具有 WS_TABSTOP
樣式的上一個或下一個控件。
HWND GetNextDlgTabItem(HWND hWndCtl, BOOL bPrevious = FALSE) const throw();
備註
請參閱 GetNextDlgTabItem
Windows SDK。
CWindow::GetParent
擷取即時父視窗。
HWND GetParent() const throw();
備註
請參閱 GetParent
Windows SDK。
範例
// 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();
備註
請參閱 GetScrollInfo
Windows SDK。
CWindow::GetScrollPos
擷取滾動盒的位置。
int GetScrollPos(int nBar) const throw();
備註
請參閱 GetScrollPos
Windows SDK。
CWindow::GetScrollRange
擷取滾動條範圍。
BOOL GetScrollRange(
int nBar,
LPINT lpMinPos,
LPINT lpMaxPos) const throw();
備註
請參閱 GetScrollRange
Windows SDK。
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();
備註
請參閱 GetSystemMenu
Windows SDK。
CWindow::GetTopLevelParent
擷取視窗的最上層父視窗。
HWND GetTopLevelParent() const throw();
傳回值
最上層父視窗的句柄。
CWindow::GetTopLevelWindow
擷取視窗的最上層父視窗或擁有者視窗。
HWND GetTopLevelWindow() const throw();
傳回值
最上層擁有者視窗的句柄。
CWindow::GetTopWindow
擷取最上層子視窗。
HWND GetTopWindow() const throw();
備註
請參閱 GetTopWindow
Windows SDK。
範例
//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();
備註
請參閱 GetUpdateRect
Windows SDK。
CWindow::GetUpdateRgn
擷取更新區域,並將它複製到指定的區域。
int GetUpdateRgn(HRGN hRgn, BOOL bErase = FALSE) throw();
備註
請參閱 GetUpdateRgn
Windows SDK。
CWindow::GetWindow
擷取指定的視窗。
HWND GetWindow(UINT nCmd) const throw();
備註
請參閱 GetWindow
Windows SDK。
CWindow::GetWindowContextHelpId
擷取視窗的說明內容標識碼。
DWORD GetWindowContextHelpId() const throw();
備註
請參閱 GetWindowContextHelpId
Windows SDK。
CWindow::GetWindowDC
擷取整個視窗的裝置內容。
HDC GetWindowDC() throw();
備註
請參閱 GetWindowDC
Windows SDK。
範例
//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();
備註
請參閱 GetWindowLong
Windows SDK。
注意
若要撰寫與 32 位和 64 位版本的 Windows 相容的程式代碼,請使用 CWindow::GetWindowLongPtr
。
CWindow::GetWindowLongPtr
擷取指定視窗的相關信息,包括位於指定位移的值到額外的視窗記憶體中。
LONG_PTR GetWindowLongPtr(int nIndex) const throw();
備註
如需詳細資訊,請參閱 GetWindowLongPtr
Windows SDK 中的 。
如果您要擷取指標或句柄,此函式會取代 CWindow::GetWindowLong
方法。
注意
指標和句柄是 32 位 Windows 上的 32 位,而 64 位 Windows 上的 64 位則為 64 位。
若要撰寫與 32 位和 64 位版本的 Windows 相容的程式代碼,請使用 CWindow::GetWindowLongPtr
。
CWindow::GetWindowPlacement
擷取顯示狀態和位置。
BOOL GetWindowPlacement(WINDOWPLACEMENT FAR* lpwndpl) const throw();
備註
請參閱 GetWindowPlacement
Windows SDK。
CWindow::GetWindowProcessID
擷取建立視窗之進程的標識碼。
DWORD GetWindowProcessID() throw();
備註
請參閱 GetWindowThreadProcessID
Windows SDK。
範例
//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();
備註
請參閱 GetWindowRect
Windows SDK。
CWindow::GetWindowRgn
取得視窗視窗區域的複本。
int GetWindowRgn(HRGN hRgn) throw();
備註
請參閱 GetWindowRgn
Windows SDK。
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
。
備註
請參閱 GetWindowText
Windows SDK。
此方法的第二個版本可讓您將文字儲存在 中 BSTR
;第三個版本可讓您將結果儲存在 CString
中,因為 CSimpleString
是 的 CString
基類。
CWindow::GetWindowTextLength
擷取視窗文字的長度。
int GetWindowTextLength() const throw();
備註
請參閱 GetWindowTextLength
Windows SDK。
CWindow::GetWindowThreadID
擷取建立指定視窗之線程的標識碼。
DWORD GetWindowThreadID() throw();
備註
請參閱 GetWindowThreadProcessID
Windows SDK。
範例
//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();
備註
請參閱 GetWindowLong
Windows SDK。
CWindow::GotoDlgCtrl
將鍵盤焦點設定為對話框中的控制件。
void GotoDlgCtrl(HWND hWndCtrl) const throw();
備註
請參閱 WM_NEXTDLGCTL
Windows SDK。
CWindow::HideCaret
隱藏系統插入號。
BOOL HideCaret() throw();
備註
請參閱 HideCaret
Windows SDK。
範例
//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();
備註
請參閱 HiliteMenuItem
Windows SDK。
CWindow::Invalidate
使整個工作區失效。
BOOL Invalidate(BOOL bErase = TRUE) throw();
備註
請參閱 InvalidateRect
Windows SDK。
將參數傳遞NULL
RECT
至 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();
備註
請參閱 InvalidateRect
Windows SDK。
CWindow::InvalidateRgn
使指定區域內的工作區失效。
void InvalidateRgn(HRGN hRgn, BOOL bErase = TRUE) throw();
備註
如需詳細資訊,請參閱 InvalidateRgn
Windows SDK 中的 。
指定傳 void
回型別,而 InvalidateRgn
Win32 函式一律會傳 TRUE
回 。
CWindow::IsChild
判斷指定的視窗是否為子視窗。
BOOL IsChild(const HWND hWnd) const throw();
備註
請參閱 IsChild
Windows SDK。
CWindow::IsDialogMessage
判斷訊息是否適用於指定的對話框。
BOOL IsDialogMessage(LPMSG lpMsg) throw();
備註
請參閱 IsDialogMessage
Windows SDK。
CWindow::IsDlgButtonChecked
決定按鈕的檢查狀態。
UINT IsDlgButtonChecked(int nIDButton) const throw();
備註
請參閱 IsDlgButtonChecked
Windows SDK。
CWindow::IsIconic
判斷視窗是否最小化。
BOOL IsIconic() const throw();
備註
請參閱 IsIconic
Windows SDK。
範例
//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();
備註
請參閱 IsWindow
Windows SDK。
範例
//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();
備註
請參閱 IsWindowEnabled
Windows SDK。
範例
//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();
備註
請參閱 IsWindowVisible
Windows SDK。
範例
//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();
備註
請參閱 IsWindowUnicode
Windows SDK。
範例
//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();
備註
請參閱 IsZoomed
Windows SDK。
CWindow::KillTimer
終結 由 建立的 CWindow::SetTimer
定時器事件。
BOOL KillTimer(UINT nIDEvent) throw();
備註
請參閱 KillTimer
Windows SDK。
CWindow::LockWindowUpdate
藉由呼叫 Win32 函式,停用或啟用視窗中的 LockWindowUpdate
繪圖。
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();
備註
請參閱 MapWindowPoints
Windows SDK。
此方法的第二個版本可讓您轉換 結構的座標 RECT
。
CWindow::MessageBox
顯示訊息方塊。
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK) throw();
備註
請參閱 MessageBox
Windows SDK。
範例
//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]視窗定位旗標。 如需可能值的清單,請參閱 SetWindowPos
Windows SDK 中的 函式。
傳回值
TRUE
如果修改視窗樣式,則為 ;否則為 FALSE
。
備註
要加入或移除的樣式可以使用位 「or」 (|
) 運算符來結合。 CreateWindow
如需可用窗口樣式的相關信息,請參閱 Windows SDK 中的 函式。
如果 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]視窗定位旗標。 如需可能值的清單,請參閱 SetWindowPos
Windows SDK 中的 函式。
傳回值
TRUE
如果修改延伸視窗樣式,則為 ;否則為 FALSE
。
備註
要加入或移除的樣式可以使用位 「or」 (|
) 運算符來結合。 CreateWindowEx
如需可用擴充樣式的相關信息,請參閱 Windows SDK 中的 函式。
如果 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();
備註
請參閱 WM_NEXTDLGCTL
Windows SDK。
CWindow::OpenClipboard
開啟剪貼簿。
BOOL OpenClipboard() throw();
備註
請參閱 OpenClipboard
Windows SDK。
CWindow::operator HWND
將 CWindow
物件轉換成 HWND
。
operator HWND() const throw();
CWindow::operator =
HWND
將成員設定m_hWnd
為 ,CWindow
將物件指派給 hWnd
。
CWindow& operator= (HWND hWnd) throw();
CWindow::PostMessage
將訊息放在與建立視窗之線程相關聯的消息佇列中。
BOOL PostMessage(
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0) throw();
備註
請參閱 PostMessage
Windows SDK。
傳回 ,而不等待線程處理訊息。
範例
//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();
備註
請參閱 WM_NEXTDLGCTL
Windows SDK。
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()
備註
請參閱 RedrawWindow
Windows SDK。
範例
//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);
備註
請參閱 ReleaseDC
Windows SDK。
範例
// 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();
備註
請參閱 ScreenToClient
Windows SDK。
此方法的第二個版本可讓您轉換 結構的座標 RECT
。
CWindow::ScrollWindow
捲動指定的工作區。
BOOL ScrollWindow(
int xAmount,
int yAmount,
LPCRECT lpRect = NULL,
LPCRECT lpClipRect = NULL) throw();
備註
請參閱 ScrollWindow
Windows SDK。
CWindow::ScrollWindowEx
使用其他功能捲動指定的工作區。
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
HRGN hRgnUpdate,
LPRECT lpRectUpdate,
UINT flags) throw();
備註
請參閱 ScrollWindowEx
Windows SDK。
CWindow::SendDlgItemMessage
將訊息傳送至控件。
LRESULT SendDlgItemMessage(
int nID,
UINT message,
WPARAM wParam = 0,
LPARAM lParam = 0) throw();
備註
請參閱 SendDlgItemMessage
Windows SDK。
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();
備註
請參閱 SendMessage
Windows SDK。
範例
// 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();
備註
請參閱 SendNotifyMessage
Windows SDK。
如果視窗是由呼叫的線程所建立, SendNotifyMessage
在視窗程式處理訊息之前,不會傳回 。 否則,它會立即傳回。
CWindow::SetActiveWindow
啟用視窗。
HWND SetActiveWindow() throw();
備註
請參閱 SetActiveWindow
Windows SDK。
範例
// 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();
備註
請參閱 SetCapture
Windows SDK。
CWindow::SetClipboardViewer
將視窗新增至剪貼簿查看器鏈結。
HWND SetClipboardViewer() throw();
備註
請參閱 SetClipboardViewer
Windows SDK。
CWindow::SetDlgCtrlID
將視窗的識別碼設定為指定的值。
int SetDlgCtrlID(int nID) throw();
參數
nID
[in]要為視窗識別碼設定的新值。
傳回值
如果成功,則為視窗的上一個標識符;否則為 0。
CWindow::SetDlgItemInt
將控件的文字變更為整數值的字串表示。
BOOL SetDlgItemInt(
int nID,
UINT nValue,
BOOL bSigned = TRUE) throw();
備註
請參閱 SetDlgItemInt
Windows SDK。
CWindow::SetDlgItemText
變更控件的文字。
BOOL SetDlgItemText(int nID, LPCTSTR lpszString) throw();
備註
請參閱 SetDlgItemText
Windows SDK。
CWindow::SetFocus
將輸入焦點設定為視窗。
HWND SetFocus() throw();
備註
請參閱 SetFocus
Windows SDK。
範例
//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]作用鍵的修飾詞。 如需可能值的清單,請參閱 WM_SETHOTKEY
Windows SDK 中的 。
傳回值
如需可能的傳回值清單,請參閱 WM_SETHOTKEY
Windows SDK 中的 。
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();
備註
請參閱 SetMenu
Windows SDK。
CWindow::SetParent
變更父視窗。
HWND SetParent(HWND hWndNewParent) throw();
備註
請參閱 SetParent
Windows SDK。
範例
// 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();
備註
請參閱 SetScrollInfo
Windows SDK。
CWindow::SetScrollPos
變更滾動盒的位置。
int SetScrollPos(
int nBar,
int nPos,
BOOL bRedraw = TRUE) throw();
備註
請參閱 SetScrollPos
Windows SDK。
CWindow::SetScrollRange
變更滾動條範圍。
BOOL SetScrollRange(
int nBar,
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE) throw();
備註
請參閱 SetScrollRange
Windows SDK。
CWindow::SetTimer
建立定時器事件。
UINT SetTimer(
UINT nIDEvent,
UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND, UINT, UINT, DWORD) = NULL) throw();
備註
請參閱 SetTimer
Windows SDK。
CWindow::SetWindowContextHelpId
設定視窗的說明內容識別碼。
BOOL SetWindowContextHelpId(DWORD dwContextHelpId) throw();
備註
請參閱 SetWindowContextHelpId
Windows SDK。
CWindow::SetWindowLong
將位於指定位移的32位值設定為額外的視窗記憶體。
LONG SetWindowLong(int nIndex, LONG dwNewLong) throw();
備註
請參閱 SetWindowLong
Windows SDK。
注意
若要撰寫與 32 位和 64 位版本的 Windows 相容的程式代碼,請使用 CWindow::SetWindowLongPtr
。
CWindow::SetWindowLongPtr
變更指定視窗的屬性,也會在額外的視窗記憶體中設定位於指定位移的值。
LONG_PTR SetWindowLongPtr(int nIndex, LONG_PTR dwNewLong) throw();
備註
請參閱 SetWindowLongPtr
Windows SDK。
此函式會取代 CWindow::SetWindowLong
方法。 若要撰寫與 32 位和 64 位版本的 Windows 相容的程式代碼,請使用 CWindow::SetWindowLongPtr
。
CWindow::SetWindowPlacement
設定顯示狀態和位置。
BOOL SetWindowPlacement(const WINDOWPLACEMENT FAR* lpwndpl);
備註
請參閱 SetWindowPlacement
Windows SDK。
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();
備註
請參閱 SetWindowPos
Windows SDK。
此方法的第二個 RECT
版本會使用 結構來設定視窗的新位置、寬度和高度。
CWindow::SetWindowRgn
設定視窗的視窗區域。
int SetWindowRgn(HRGN hRgn, BOOL bRedraw = FALSE) throw();
備註
請參閱 SetWindowRgn
Windows SDK。
CWindow::SetWindowText
變更視窗的文字。
BOOL SetWindowText(LPCTSTR lpszString) throw();
備註
請參閱 SetWindowText
Windows SDK。
範例
//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();
備註
請參閱 SetWindowLong
Windows SDK。
CWindow::ShowCaret
顯示系統插入號。
BOOL ShowCaret() throw();
備註
請參閱 ShowCaret
Windows SDK。
範例
//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();
備註
請參閱 ShowOwnedPopups
Windows SDK。
CWindow::ShowScrollBar
顯示或隱藏滾動條。
BOOL ShowScrollBar(UINT nBar, BOOL bShow = TRUE) throw();
備註
請參閱 ShowScrollBar
Windows SDK。
CWindow::ShowWindow
設定視窗的顯示狀態。
BOOL ShowWindow(int nCmdShow) throw();
備註
請參閱 ShowWindow
Windows SDK。
範例
//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();
備註
請參閱 ShowWindowAsync
Windows SDK。
CWindow::UpdateWindow
更新工作區。
BOOL UpdateWindow() throw();
備註
請參閱 UpdateWindow
Windows SDK。
範例
//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();
備註
請參閱 ValidateRect
Windows SDK。
CWindow::ValidateRgn
驗證指定區域內的工作區。
BOOL ValidateRgn(HRGN hRgn) throw();
備註
請參閱 ValidateRgn
Windows SDK。
CWindow::WinHelp
啟動 Windows 說明。
BOOL WinHelp(
LPCTSTR lpszHelp,
UINT nCmd = HELP_CONTEXT,
DWORD dwData = 0) throw();
備註
請參閱 WinHelp
Windows SDK。