Как получить hwnd элемента диалога с другого класса?

Как получить hwnd элемента диалога с другого класса?Допустим, сижу в другом классе диалоге и при одном событии сделать недоступной некоторую кнопку другого диалога класса:
void MyClass::MyFucntion()
{
...
CButton *myButton;
COtherDialog *otherDlg;
 
myButton=(CButton*)GetDlgItem(otherDlg, IDC_BUTTON)
myButton->EnableWindow(FALSE)
...
}
при компиляции не получается, Ошибка памяти (не туда read).
3 ответа

myButton = (CButton*)otherDlg->GetDlgItem(IDC_BUTTON);


Привет !Ну и логично, что ты хотел ... передай своей функции вначале этот otherDlg, а потом юзай ... Как hwnd диалога(CDialog::m_hwnd) получить, это и в Msdn написано, но разницы что передавать: hWnd или указатель на второй диалог ... это не важно ...
void MyClass::MyFunction(CDialog *pOtherDlg)
{
...
CButton *pMyBtn;
pMyBtn=(CButton*)GetDlgItem(otherDlg, IDC_BUTTON);
pMyBtn->EnableWindow(FALSE);
...
}
А лучше поучись программировать на WINAPI и тогда ТАКИХ вопросов и задавать не станешь ... :-( Извини, если задел. ;-)Удачи, Andir !


Ая яй ... Про WINAPI я оказывается зря сказал, запутал народ с HWND ... только когда запостил, дошло что вопрос совсем не про HWND ... Вопрос некорректно поставлен ...
void MyClass::MyFunction(CDialog *pOtherDlg)
{
...
CButton *pMyBtn;
// ---> Извиняй пропёрся немножко ... --->
pMyBtn=(CButton*)pOtherDlg->GetDlgItem(IDC_BUTTON);
// <--- <---
pMyBtn->EnableWindow(FALSE);
...
}
Извиняюсь ...