分享方式:


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 函式。 例如,比較 和 ShowWindowCWindow::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's operator =

  • 使用衍生自 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類別 、 CContainedWindowCDialogImpl (所有衍生自 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_hWndNULL

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_hWndNULL

HWND Detach() throw();

傳回值

HWNDCWindow 物件相關聯的 。

範例

//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 (預設值) 方法會傳回大型圖示。 否則,它會傳回小型圖示。

傳回值

圖示句柄。

備註

GetIconWM_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。

將參數傳遞NULLRECTInvalidateRect 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

備註

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

備註

請參閱 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();

備註

對於最上層視窗物件, xy 參數會相對於畫面左上角。 對於子視窗對象,它們相對於父視窗工作區左上角。

此方法的第二個 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 為 (預設值),訊息將會傳送至所有子系視窗,否則只會傳送至立即子視窗。

備註

如果 bDeepTRUE,則訊息會額外傳送至所有其他子代視窗。

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 為 (預設值),則方法會設定大型圖示。 否則,它會設定小型圖示。

傳回值

上一個圖示的句柄。

備註

SetIconWM_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。

另請參閱

類別概觀