Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Объесняю в чом проблема 02.06.01 11:41 Число просмотров: 796
Автор: myrmidon Статус: Незарегистрированный пользователь
|
Я имею класс , порождённый от CCtrlView
У меня нету в ресурсах лист контрола, я его создаю в окне с помощью этого класса. Но окно не простое, а со сплиттерами, тоесть есть ещё пару окон,
Для получения доступа к лист контролу есть функция GetListCtrl(()
которая работает с учетом this - ну тоесть CWnd *wnd
В проге активным может быть только одно окно. а я вызываю функцию обработки для другого окна, в результате this , необходимый для функции GetListCtrl() получается другого окна, и соответственно все методы для лист контрола не выполняются
Пр отладке, можно заметить что при активном окне в котором лист контрол this имеет значение CMyListCtrl hWnd = 0x00000ccc
А при активном другом окне this имеет значение COtherWindow hWnd = ???
COtherWindow - класс другого окна
Видно что при активизации разных окон происходит бред с this
И ещо, можно написать так: CMyListCtrl *ptr = (CMyListCtrl *)GetActiveWindow();
ptr->Вызов любого метода для лист контрола(); - рабатает хорошо, но только если окно CMyListCtrl активировано
GetActiveWindow() возвращет указатель на класс CWnd
Короче в итоге надо получить указатель на CWnd для окна CMyListCtrl и все проблемы решатся!
|
|
|