共用方式為


從標準控件衍生控件

如同任何 CWnd 衍生類別,您可以從現有的控件類別衍生新類別來修改控件的行為。

建立衍生控件類別

  1. 從現有的控制項類別衍生類別,並選擇性地覆寫 Create 成員函式,以便提供基類 Create 函式所需的參數。

  2. 提供訊息處理常式成員函式和訊息映射項目,以在回應特定 Windows 訊息時修改控制項的行為。 請參閱 將訊息對應至函式

  3. 提供新的成員函式來擴充控件的功能(選擇性)。

在對話框中使用衍生控件需要額外的工作。 對話框中控件的類型和位置通常會在對話框範本資源中指定。 如果您建立衍生控件類別,就無法在對話範本中指定它,因為資源編譯程式對衍生類別一無所知。

將衍生控制項置於對話框中

  1. 在衍生對話類別的宣告中內嵌衍生控件類別的物件。

  2. 在你的對話框類別中覆寫OnInitDialog成員函數,來呼叫衍生控件的SubclassDlgItem成員函數。

SubclassDlgItem 將從對話框範本建立的控制項進行動態子類化。 當控件動態子類別化時,您可以連結至 Windows,在自己的應用程式中處理一些訊息,然後將其餘的訊息傳遞至 Windows。 如需詳細資訊,請參閱 MFC 參考中 類別CWndSubclassDlgItem 成員函式。 下列範例示範如何撰寫一個覆寫以呼叫 OnInitDialogSubclassDlgItem

BOOL CSubDialog::OnInitDialog()
{
   CDialog::OnInitDialog();

   m_wndMyBtn.SubclassDlgItem(IDC_MYBTN, this);

   return TRUE;
}

因為衍生控件內嵌在對話框類別中,所以會在建構對話框時加以建構,而且會在對話框終結時終結。 比較此程式代碼與依 手新增控件中的範例。

另請參閱

製作和使用控件
控制項