ToolBar в диалоге
От: kaziboba  
Дата: 02.08.01 07:16
Оценка:
Хай всем. Как научить диалог получать OnUpdateCMDUI для батонов тулбара.
Есть способ хуканья диалога, но мне этот способ совсем не нравиться.
Re: ToolBar в диалоге
От: Willi  
Дата: 02.08.01 09:06
Оценка:
Здравствуйте kaziboba, вы писали:

K>Хай всем. Как научить диалог получать OnUpdateCMDUI для батонов тулбара.

K>Есть способ хуканья диалога, но мне этот способ совсем не нравиться.

попробуй вызывать апдей в ответ на WM_KICKIDLE
что именно вызывать, не помню, надо смотреть как это делает MFC
в обработчике OnIdle аппликации
\/\/i||i
Re[2]: ToolBar в диалоге
От: kaziboba  
Дата: 02.08.01 13:33
Оценка:
Здравствуйте Willi, вы писали:

W>Здравствуйте kaziboba, вы писали:


K>>Хай всем. Как научить диалог получать OnUpdateCMDUI для батонов тулбара.

K>>Есть способ хуканья диалога, но мне этот способ совсем не нравиться.

W>попробуй вызывать апдей в ответ на WM_KICKIDLE

W>что именно вызывать, не помню, надо смотреть как это делает MFC
W>в обработчике OnIdle аппликации

Получилось! В обработчике WM_KICKIDLE вызываешь
OnUpdateCmdUI((CFrameWnd*)this, (BOOL)TRUE) у тулбара. Нашел в мсдн пример, там делается
приблизительно также. Тока не понятно, почему в функции первый параметр типа CFrameWnd*, если тудыть можно и диалог сунуть???
Re[3]: ToolBar в диалоге
От: Willi  
Дата: 02.08.01 13:41
Оценка:
Здравствуйте kaziboba, вы писали:

K>Здравствуйте Willi, вы писали:


W>>Здравствуйте kaziboba, вы писали:


K>>>Хай всем. Как научить диалог получать OnUpdateCMDUI для батонов тулбара.

K>>>Есть способ хуканья диалога, но мне этот способ совсем не нравиться.

W>>попробуй вызывать апдей в ответ на WM_KICKIDLE

W>>что именно вызывать, не помню, надо смотреть как это делает MFC
W>>в обработчике OnIdle аппликации

K>Получилось! В обработчике WM_KICKIDLE вызываешь

K>OnUpdateCmdUI((CFrameWnd*)this, (BOOL)TRUE) у тулбара. Нашел в мсдн пример, там делается
K>приблизительно также. Тока не понятно, почему в функции первый параметр типа CFrameWnd*, если тудыть можно и диалог сунуть???

:)
Поздравляю

А параметр такой, я думаю, в силу исторических причин.
Никто не думал что ты будешь использовтаь эту фичу в диалоге.
Ну и понятно никто ничего не гарантирует :)

Тут есть одни грабли.
Этот способ не работает если тулбар вставлять в наследника от COlePropertyPage
Ох и намучился я с ними...
\/\/i||i
Re[4]: ToolBar в диалоге
От: kaziboba  
Дата: 02.08.01 13:45
Оценка:
Здравствуйте Willi, вы писали:

W>Здравствуйте kaziboba, вы писали:


K>>Здравствуйте Willi, вы писали:


W>>>Здравствуйте kaziboba, вы писали:


K>>>>Хай всем. Как научить диалог получать OnUpdateCMDUI для батонов тулбара.

K>>>>Есть способ хуканья диалога, но мне этот способ совсем не нравиться.

W>>>попробуй вызывать апдей в ответ на WM_KICKIDLE

W>>>что именно вызывать, не помню, надо смотреть как это делает MFC
W>>>в обработчике OnIdle аппликации

K>>Получилось! В обработчике WM_KICKIDLE вызываешь

K>>OnUpdateCmdUI((CFrameWnd*)this, (BOOL)TRUE) у тулбара. Нашел в мсдн пример, там делается
K>>приблизительно также. Тока не понятно, почему в функции первый параметр типа CFrameWnd*, если тудыть можно и диалог сунуть???

W>:)

W>Поздравляю

W>А параметр такой, я думаю, в силу исторических причин.

W>Никто не думал что ты будешь использовтаь эту фичу в диалоге.
W>Ну и понятно никто ничего не гарантирует :)

W>Тут есть одни грабли.

W>Этот способ не работает если тулбар вставлять в наследника от COlePropertyPage
W>Ох и намучился я с ними...

А почему не работает?
Re[5]: ToolBar в диалоге
От: Willi  
Дата: 02.08.01 14:00
Оценка:
Здравствуйте kaziboba, вы писали:

W>>Тут есть одни грабли.

W>>Этот способ не работает если тулбар вставлять в наследника от COlePropertyPage
W>>Ох и намучился я с ними...

K>А почему не работает?


Так я и знал :)
А не приходит WM_KICKIDLE и все тут.
По вопросам почему не приходит WM_KICKIDLE обращаться по адресу:
One Microsoft Way
Redmond, WA 98052-6399
Telephone: (425) 882-8080

:)
\/\/i||i
Re[6]: ToolBar в диалоге
От: Sasparella США  
Дата: 02.08.01 17:44
Оценка:
Здравствуйте Willi, вы писали:

W>Здравствуйте kaziboba, вы писали:


W>>>Тут есть одни грабли.

W>>>Этот способ не работает если тулбар вставлять в наследника от COlePropertyPage
W>>>Ох и намучился я с ними...

K>>А почему не работает?


W>Так я и знал :)

W>А не приходит WM_KICKIDLE и все тут.
W>По вопросам почему не приходит WM_KICKIDLE обращаться по адресу:
W>One Microsoft Way
W>Redmond, WA 98052-6399
W>Telephone: (425) 882-8080

W>:)



А я заметил такую вешь — если диалог немодальный, создается из длл, и главное окно — MFC, то при подводе мыши к тулбару все моментально летит в access viilation. если же главного окна нет (например, диалог запускается с помощью runDLL32), то все нормально работает.

Глюк воспроизводим, могу даже сорсы прислать, (если найду, ибо давно это было... но побороть так и не смог.)

Саша.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.