Виснет Tab Control
От: _Mouse_  
Дата: 30.05.06 11:42
Оценка:
Зраствуйте, помогите решить след. проблему:

Создаю Tab Control и цепляю к ниму диалоги.
В итоге, при нажатии в любое место диалога у меня виснет программа.

Spy++ показывает что на Tab Control гуляет с дикой скоростью одно и тоже сообщение:
<47196> 00170860 S WM_GETDLGCODE
<47197> 00170860 R WM_GETDLGCODE fuDlgCode:DLGC WANTARROWS | DLGC WANTCHARS
Re: Виснет Tab Control
От: Александер Малафеев Россия http://www.meet-tech.com
Дата: 30.05.06 11:49
Оценка:
Здравствуйте, _Mouse_, Вы писали:

_M_>Зраствуйте, помогите решить след. проблему:


_M_>Создаю Tab Control и цепляю к ниму диалоги.

_M_>В итоге, при нажатии в любое место диалога у меня виснет программа.

_M_>Spy++ показывает что на Tab Control гуляет с дикой скоростью одно и тоже сообщение:

_M_><47196> 00170860 S WM_GETDLGCODE
_M_><47197> 00170860 R WM_GETDLGCODE fuDlgCode:DLGC WANTARROWS | DLGC WANTCHARS

Скорее всего ты в обработчике сообщения вызываешь метод который шлет это же сообщение — получаешь бесконечный цикл.
Выход:
1. Использовать другое сообщение.
2. Поставить флаг который запретит обработку этого сообщения если ты и так его обрабатываешь.
Re[2]: Виснет Tab Control
От: _Mouse_  
Дата: 30.05.06 12:09
Оценка:
Здравствуйте, Александер Малафеев, Вы писали:

АМ>Здравствуйте, _Mouse_, Вы писали:


_M_>>Зраствуйте, помогите решить след. проблему:


_M_>>Создаю Tab Control и цепляю к ниму диалоги.

_M_>>В итоге, при нажатии в любое место диалога у меня виснет программа.

_M_>>Spy++ показывает что на Tab Control гуляет с дикой скоростью одно и тоже сообщение:

_M_>><47196> 00170860 S WM_GETDLGCODE
_M_>><47197> 00170860 R WM_GETDLGCODE fuDlgCode:DLGC WANTARROWS | DLGC WANTCHARS

АМ>Скорее всего ты в обработчике сообщения вызываешь метод который шлет это же сообщение — получаешь бесконечный цикл.

АМ>Выход:
АМ>1. Использовать другое сообщение.
АМ>2. Поставить флаг который запретит обработку этого сообщения если ты и так его обрабатываешь.

Та в том то и дело, что я ничего не цспел еще вызвать. Кода толком нету.
Есть пустое главное окно, в котором я поместил TabControl.

А делаю так:
Создаю главное окно.
Далее я определяю hwnd TAB конткрола путем:
hwndTab = GetDlgItem(hwnd, IDC_TABCONTROL);
Далее я создаю 1 закладку с 2-мя кнопками:
CreateDialog(p_hInstance, MAKEINTRESOURCE(DLG_TAB_MAIN), hwndTab, (DLGPROC) Tab_MainProc);
И запускаю программу.
Re[3]: Виснет Tab Control
От: McQwerty Россия  
Дата: 31.05.06 13:36
Оценка:
Попробуй следующее:
— у таба должен быть расширенный стиль WS_EX_CONTROLPARENT
— у создаваемого диалога должен быть стиль DS_CONTROL
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.