2014-02-08 73 views
1

嗨我創建了一個對話框,它炒作。如何獲得處理程序(HWND)的對話框

我的問題是:你如何檢查手柄?另外,如果你得到句柄,你將如何改變其中的靜態文本控制文本?

class CStatisticsDlg : public CDialogEx 
{ 
public: 
    CStatisticsDlg(); 

// Dialog Data 
    enum { IDD = IDD_STATISTICS }; 

protected: 
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 

// Implementation 
protected: 
    DECLARE_MESSAGE_MAP() 
public: 
}; 

CStatisticsDlg::CStatisticsDlg() : CDialogEx(CStatisticsDlg::IDD) 
{ 
} 

void CStatisticsDlg::DoDataExchange(CDataExchange* pDX) 
{ 
    CDialogEx::DoDataExchange(pDX); 
} 

BEGIN_MESSAGE_MAP(CStatisticsDlg, CDialogEx) 
END_MESSAGE_MAP() 
+0

發佈您的代碼。儘管這個問題很簡單,但沒有任何頭腦可以理解你想要做什麼。特別是你需要把手的地方。 –

回答

10

你使用MFC(由標籤所示)假設,那麼想必你有一個CDialog類的實例。 CDialogCWnd一個子類,這樣你就可以通過3方式之一檢索窗口句柄:

+0

thx的答覆。一個相關的問題....假設你有對話框的句柄....並且你有它的靜態文本控制....你如何在運行時更改控件中的文本....我試過了SetDlgItemText,但這似乎沒有任何效果。 – user3126297

+0

另外,說m_HWnd ==空.... – user3126297

+0

在資源編輯器中,確保您給您的靜態文本一個唯一的ID。然後我建議你將控件映射到CStatic變量或CString。無論哪種方式,您將能夠更新變量內容。請記住,默認情況下,靜態標籤具有相同的ID IDC_STATIC,因此如果要在運行時編輯它們的值,則必須爲它們提供唯一的ID值。 –

相關問題