2014-02-08 3 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 класса. CDialog подкласс CWnd, так что вы можете получить дескриптор окна одним из 3 способов:

+0

thx для ответа. Связанный с этим вопрос .... предполагая, что у вас есть дескриптор диалогового окна .... и у вас есть статический текстовый контроль в нем .... как вы меняете текст в элементе управления во время выполнения .... я пробовал SetDlgItemText, но это, похоже, не имеет никакого эффекта. – user3126297

+0

Кроме того, говорит m_HWnd == null .... – user3126297

+0

В редакторе ресурсов убедитесь, что ваш статический текст предоставил уникальный идентификатор. Затем я предлагаю вам сопоставить элемент управления с переменной CStatic или CString. В любом случае вы сможете обновить содержимое переменной. Пожалуйста, имейте в виду, что по умолчанию статические метки имеют одинаковый идентификатор IDC_STATIC, поэтому вы должны указать им уникальные идентификационные значения, если вы хотите редактировать их значения во время выполнения. –

Смежные вопросы