![]() |
|
|
![]()
|
|
| zhekha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Есть проект на базе диалогового окна.
class CMainDlg : public CDialogImpl<CMainDlg>, ... Создается такой диалог функцией CreateDialogParam. Возможно ли как-нибудь сменить класс окна с #32770 на что-нибудь другое в этом случае? И если да, то как? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Вряд ли. Окно диалога ведь внутри Виндоус создается, и создается совершенно определенного типа (класса).
В принципе ты мог бы создать его ручками (CreateWindow), передав свой класс, но ведь нужно еще нашпиговать диалог полями, т.е. прочитать темплэйт, создать все поля, послать INITDIALOG и что там еще... Очень геморройно. Вопрос - зачем? -------------------- ... |
|||
|
||||
| zhekha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
При использовании MFC такое у меня получалось...
Надо для того, чтобы "быстро" найти окно приложения (приложение не имеет caption bar'a). Способ с опросом всех окон сообщением отпадает (EnumWindow), как раз он и реализован - уж очень долго работает при большем количестве открытых окон, плюс требуется достаточно большей таймаут для слабых машин... |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну, там есть PreCreateWindow, где можно что-нибудь подсунуть, а в WTL - не знаю... Быстро найти "свое" окно можно и по-другому. Скажем, всегда при запуске приложения класть хандл его окна в общую область памяти. А потом смотреть, что там. Поищи темы о запрете запуска второго экземпляра приложения. В одной из них была ссылка на статью в RSDN, где разбирались различные варианты. -------------------- ... |
|||
|
||||
| zhekha |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 19.10.2005 Репутация: нет Всего: нет |
Про общую область памяти - имел ввиду способ с GlobalFindAtom & GlobalAddAtom?
Не понятно как это может помочь, если только один уникальный параметр, который заранее неизвестен - дескриптор запомнить не получится. А, вот, статьи рсдн'а никакой, увы, не нашел... Это сообщение отредактировал(а) zhekha - 4.5.2007, 08:27 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Нет, имеется в виду создание именованных сегментов данных, которые могут разделяться разными процессами. Делается это с помощью ключей линкера (или прагмами в коде). Поищи здесь, тема точно обсуждалась, и про разделяемыю память, и про запуск второго экземпляра. -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |