Здравствуйте LAPD, Вы писали:
LAPD>Как получить hwnd элемента диалога с другого класса?
LAPD>Допустим, сижу в другом классе диалоге LAPD>и при одном событии сделать недоступной некоторую кнопку другого диалога класса:
LAPD>void MyClass::MyFucntion() LAPD>{ LAPD>... LAPD>CButton *myButton; LAPD>COtherDialog *otherDlg;
LAPD>myButton=(CButton*)GetDlgItem(otherDlg, IDC_BUTTON)
myButton->>EnableWindow(FALSE) LAPD>... LAPD>} LAPD>при компиляции не получается, Ошибка памяти (не туда read).
Сначала компилятор выдает предупреждение: warning C4700: local variable 'page3' used without having been initialized.
При запуске та же самая ошибка!
Может проблема в выделении памяти?!?!?!? Как решить проблему? Срочно нужен фрагмент поправки кода...
/LAPD/
Re[3]: Как получить hwnd контрола диалога с др. класса???
LAPD>Сначала компилятор выдает предупреждение: LAPD>warning C4700: local variable 'page3' used without having been initialized. LAPD>При запуске та же самая ошибка! LAPD>Может проблема в выделении памяти?!?!?!? Как решить проблему? Срочно нужен фрагмент поправки кода...
Так надо же присвоить указателю что-то
CPage3 *page3 = ???
Если я правильно тебя понял это у тебя PropertySheet и тебе надо закрыть кнопку на третьей странице ?
CButton *myButton; // = new не надо
CPropertySheet *pSheet = (CPropertySheet *) GetParent();
CPage3 *page3 = (CPage3 *) GetPage(2); // 0, 1, 2
myButton=(CButton*)page3->>GetDlgItem(IDC_APPLY);
!0xDEAD
Re: Как получить hwnd контрола диалога с др. класса???
Проблема в том, что это как раз не CPropertyPage,
а простой CTabCtrl (имитация CPropertyPage)
а в качестве вкладок используется отдельные классы — диалоги: CPage1,CPage2,Cpage3 — все порождены от CDialog.
Как и все нормальные диалоги они имеют свои эленменты — кнопки и пр.
Так вот.
На первой странице (CPage1) надо сделать одну проверку, если вдруг так и случиться, то в третьей странице отключить возможность нажатия кнопки "APPLY", которая само собой находится в другом классе и в другом диалоге.
Проблема имеет глобальный смысл. Я до сих пор не умею передавать и получать hwnd элементов и выделять под них память...Научите плз...
/LAPD/
Re[5]: Как получить hwnd контрола диалога с др. класса???
Здравствуйте LAPD, Вы писали:
LAPD>Здравствуйте Кирпа В.А., Вы писали:
LAPD>Проблема в том, что это как раз не CPropertyPage, LAPD>а простой CTabCtrl (имитация CPropertyPage) LAPD>а в качестве вкладок используется отдельные классы — диалоги: CPage1,CPage2,Cpage3 — все порождены от CDialog. LAPD>Как и все нормальные диалоги они имеют свои эленменты — кнопки и пр. LAPD>Так вот. LAPD>На первой странице (CPage1) надо сделать одну проверку, если вдруг так и случиться, то в третьей странице отключить возможность нажатия кнопки "APPLY", которая само собой находится в другом классе и в другом диалоге.
LAPD>Проблема имеет глобальный смысл. Я до сих пор не умею передавать и получать hwnd элементов и выделять под них память...Научите плз...
Судя по всему ты пользуеься каким то левым класом (неизвестным мне)
Но идея таже что и в PropertySheet
Поищи где этот класс хранит указатели на Dialogи
Ты же наверняка делаешь что то типа AddPage()
А значит должен быть метод GetPage()
Хочешь брось на моё мыло этот класс и я тебе отвечу как решить твою проблему
!0xDEAD
Re[6]: Как получить hwnd контрола диалога с др. класса???
Хмм.... CTabCtrl — это же обычный элемент везде и всюду встроенный (по крайней мере в VC6.0)
Он похож на CPropertyPage но гораздо проще, но зато ограничен в в своих фунцкиях. И никакого AddPage и GetPage там вроде нету.
Если намекнешь, то прямо сейчас кину. Сам увидешь там все просто. Ну так кинуть тебе на мыло?
/LAPD/
Re[7]: Как получить hwnd контрола диалога с др. класса???
Здравствуйте LAPD, Вы писали:
LAPD>Хмм.... CTabCtrl — это же обычный элемент везде и всюду встроенный (по крайней мере в VC6.0) LAPD>Он похож на CPropertyPage но гораздо проще, но зато ограничен в в своих фунцкиях. И никакого AddPage и GetPage там вроде нету.
LAPD>Если намекнешь, то прямо сейчас кину. Сам увидешь там все просто. Ну так кинуть тебе на мыло?
LAPD>
!0xDEAD
Re[6]: Как получить hwnd контрола диалога с др. класса???
!!!!!! Так много надо писать чтобы получить контроль над одной кнопкой??? !!!!!! А проще никак?
Допустим что так оно и есть. А если я буду производить много разлчных операций над этой кнопкой, и не только кнопкой, а скажем CListBox ом или чем нибудь другим?
/LAPD/
Re[9]: Как получить hwnd контрола диалога с др. класса???
Здравствуйте LAPD, Вы писали:
LAPD>!!!!!! Так много надо писать чтобы получить контроль над одной кнопкой??? !!!!!! А проще никак? LAPD> Допустим что так оно и есть. А если я буду производить много разлчных операций над этой кнопкой, и не только кнопкой, а скажем CListBox ом или чем нибудь другим?
Ты не любишь кошек? Просто ты не умеешь их готовить!
!0xDEAD
Re[10]: Как получить hwnd контрола диалога с др. класса???
Я так и предполагал что так ответишь.
Но все же...
/LAPD/
Re[9]: Как получить hwnd контрола диалога с др. класса???
От:
Аноним
Дата:
23.04.02 12:42
Оценка:
Здравствуйте LAPD, Вы писали:
LAPD>!!!!!! Так много надо писать чтобы получить контроль над одной кнопкой??? !!!!!! А проще никак? LAPD> Допустим что так оно и есть. А если я буду производить много разлчных операций над этой кнопкой, и не только кнопкой, а скажем CListBox ом или чем нибудь другим?
а кто мешает добавить переменную в тот диалог где кнопка
ассоциировать ее с кнопкой один раз при инициализации диалога
а потом дергать каждый раз когда надо