2014-01-19 1 views
0

Я использую управление BCG Pro CBCGPTabWnd, которое содержит несколько окон вкладок, когда вызывается родительский Dialog's OnOK(), я не знаю, как уведомить окна вкладок для очистки и сохранения работы.Как уведомить TabCtrl, когда закрывается его родительское окно?

И я не могу добавить общедоступные интерфейсы для этих окон табуляции, чтобы позвонить для этого.

Теперь я использую TabWnd->SendMessage(WM_COMMAND, IDOK) в обработчике родителя OnOK, чтобы стимулировать сообщение OnOK для этих окон дочерних вкладок, поскольку они фактически являются окнами на основе диалогов.

Я делаю это правильно?

PS: Вообще, было бы лучше, если я могу предупредить их явно, WM_DESTROY вариант, но он может быть использован только в Закрытия и трудно контролировать время

+1

Почему вы не обрабатываете WM_DESTROY? Ребенок Windows по крайней мере получит эти Сообщения, когда родительский объект будет уничтожен. Также у вас есть WM_PARENTNOTIFY, где родитель информирован об уничтожении ребенка. – xMRi

+0

Спасибо. Я это рассмотрел. Но было бы лучше, если бы был более явный способ, потому что иногда я хочу, чтобы окна вкладок сохраняли работу в других ситуациях, кроме закрытия. Итак, что еще я могу сделать, это определить мое собственное сообщение? – haohaolee

+1

Добавьте сообщение WM_APP + n и отправьте его всем потомкам. – xMRi

ответ

1

Просто Отправить личное/cursom сообщение с внутренней стороны WM_APP + п. Обращайтесь с ON_MESSAGE.

Это позволяет реагировать на каждый случай, когда ваш родитель должен информировать встроенные дочерние окна. И вы можете реализовать его в разных типах окон.