共用方式為


AfxRegisterWndClass

可讓您註冊您的視窗類別。

LPCTSTR AFXAPI AfxRegisterWndClass( 
   UINT nClassStyle, 
   HCURSOR hCursor = 0, 
   HBRUSH hbrBackground = 0, 
   HICON hIcon = 0  
);

參數

  • nClassStyle
    指定樣式之視窗類別樣式或組合,建立使用位元 OR (|) 運算子,為該視窗類別的。 如需類別樣式清單,請參閱 Windows SDK 中的 WNDCLASS 結構。 如果 NULL,預設設定如下:

    • 當使用者按兩下滑鼠時,設定滑鼠樣式為按兩下傳送訊息至視窗程序套用至 CS_DBLCLKS

    • 設定箭號游標樣式為 Windows 標準 IDC_ARROW

    • 設定背景筆刷為 NULL,因此,視窗不會清除它的背景。

    • 設定圖示指派給這個準則,旗標 Windows 標誌圖示。

  • hCursor
    指定一個對於要被安裝在從視窗類別建立的視窗中的資料指標資源的控制代碼。 如果您使用 0預設,您會取得標準 IDC_ARROW 游標。

  • hbrBackground
    指定一個對於要被安裝在從視窗類別建立的視窗的筆刷指標資源的控制代碼。 如果您使用 0預設,您會有一個 NULL 背景筆刷,因此,您的視窗根據預設,在處理 WM_ERASEBKGND 時,不會清除它的背景。

  • hIcon
    指定一個對於要被安裝在從視窗類別建立的視窗中的圖示指標資源的控制代碼。 如果您使用 0預設,您會得到這個準則,才會用旗標 Windows 標誌圖示。

傳回值

包含類別名稱的 NULL 結尾字串。 您可以傳遞這個類別名稱給 CWndCWnd- 衍生類別中的 Create 成員函式來建立視窗。 名稱是由 MFC 程式庫所產生。

注意事項注意事項

傳回值是指向靜態緩衝區。若要儲存此資料,請將它指派給 CString 變數。

備註

MFC 程式庫會自動註冊多個標準視窗類別。 如果您要註冊您自己的視窗類別,請呼叫這個函式。

AfxRegisterWndClass 註冊類別名稱取決於參數。 如果您呼叫 AfxRegisterWndClass 以相同參數多次,它只會註冊第一次呼叫的類別。 以相同參數對 AfxRegisterWndClass 的後續呼叫傳回已註冊的類別名稱。

如果您呼叫 AfxRegisterWndClass 以相同參數對多個 CWnd 衍生類別,不是對每個類別得到分開的視窗類別,而是每個類別共用同一個視窗類別。 如果使用 CS_CLASSDC 類別樣式,這可能會造成問題。 而非多個 CS_CLASSDC 視窗類別,您最終使用一個 CS_CLASSDC 視窗類別,且所有使用該類別的 C++ 視窗共用相同的 DC。 若要避免這個問題,請呼叫 AfxRegisterClass 註冊類別。

請參閱技術提示 TN001:視窗類別註冊 有關視窗類別註冊和 AfxRegisterWndClass 函式的詳細資訊。

範例

CString strMyClass;

// load stock cursor, brush, and icon for 
// my own window class 

try
{
   strMyClass = AfxRegisterWndClass(
      CS_VREDRAW | CS_HREDRAW,
      ::LoadCursor(NULL, IDC_ARROW),
      (HBRUSH) ::GetStockObject(WHITE_BRUSH),
      ::LoadIcon(NULL, IDI_APPLICATION));
}
catch (CResourceException* pEx)
{
   AfxMessageBox(_T("Couldn't register class! (Already registered?)"));
   pEx->Delete();
}

需求

標題: afxwin.h

請參閱

參考

CWnd::Create

CWnd::PreCreateWindow

WNDCLASS

AfxRegisterClass

概念

MFC 巨集和全域