Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Установка класса окна в диалоге WTL, Можно ли сменить #32770 
:(
    Опции темы
zhekha
Дата 27.4.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 19.10.2005

Репутация: нет
Всего: нет



Есть проект на базе диалогового окна.
class CMainDlg : public CDialogImpl<CMainDlg>, ...
Создается такой диалог функцией CreateDialogParam. Возможно ли как-нибудь сменить класс окна с #32770 на что-нибудь другое в этом случае? И если да, то как?
PM MAIL   Вверх
Earnest
Дата 27.4.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Вряд ли. Окно диалога ведь внутри Виндоус создается, и создается совершенно определенного типа (класса).
В принципе ты мог бы создать его ручками (CreateWindow), передав свой класс, но ведь нужно еще нашпиговать диалог полями, т.е. прочитать темплэйт, создать все поля, послать INITDIALOG и что там еще...
Очень геморройно. Вопрос - зачем?


--------------------
...
PM   Вверх
zhekha
Дата 28.4.2007, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 19.10.2005

Репутация: нет
Всего: нет



При использовании MFC такое у меня получалось...
Надо для того, чтобы "быстро" найти окно приложения (приложение не имеет caption bar'a).
Способ с опросом всех окон сообщением отпадает (EnumWindow), как раз он и реализован - уж очень долго работает при большем количестве открытых окон, плюс требуется достаточно большей таймаут для слабых машин...
PM MAIL   Вверх
Earnest
Дата 28.4.2007, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(zhekha @  28.4.2007,  08:59 Найти цитируемый пост)
При использовании MFC такое у меня получалось...

Ну, там есть PreCreateWindow, где можно что-нибудь подсунуть, а в WTL - не знаю...

Быстро найти "свое" окно можно и по-другому. 
Скажем, всегда при запуске приложения класть хандл его окна в общую область памяти. А потом смотреть, что там.

Поищи темы о запрете запуска второго экземпляра приложения. В одной из них была ссылка на статью в RSDN, где разбирались различные варианты.


--------------------
...
PM   Вверх
zhekha
Дата 4.5.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 19.10.2005

Репутация: нет
Всего: нет



Про общую область памяти - имел ввиду способ с GlobalFindAtom & GlobalAddAtom?
Не понятно как это может помочь, если только один уникальный параметр, который заранее неизвестен - дескриптор запомнить не получится.
А, вот, статьи рсдн'а никакой, увы, не нашел...

Это сообщение отредактировал(а) zhekha - 4.5.2007, 08:27
PM MAIL   Вверх
Earnest
Дата 8.5.2007, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(zhekha @  4.5.2007,  09:21 Найти цитируемый пост)
Про общую область памяти - имел ввиду способ с GlobalFindAtom & GlobalAddAtom?

Нет, имеется в виду создание именованных сегментов данных, которые могут разделяться разными процессами.
Делается это с помощью ключей линкера (или прагмами в коде).
Поищи здесь, тема точно обсуждалась, и про разделяемыю память, и про запуск второго экземпляра.


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.