Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.248.255] |
|
Сообщ.
#1
,
|
|
|
Я пытаюсь использовать FindWindow(...),
но в нем надо указать имя зарегистрированного класса окна. так вот, как задать имя класса окна для dialog-based приложений? я пробовал через PreCreateWindow(), но CDialog его не наследует от CWnd. А в других методах - уже поздно, класс зарегистрирован. Подскажите, пожалуйста. |
Сообщ.
#2
,
|
|
|
1. А зачем задавать класс? Если достаточно уникальное... как это по-русски... Caption окна, задаешь класс=NULL - и нет проблем.
2. Если нужна ЖЕЛЕЗНАЯ уверенность - используй глобальные атомы или семафоры. |
Сообщ.
#3
,
|
|
|
мне нужно искать по классу окна, т.к. caption меняется ;(
использование семафоров дает ответ: есть приложение или его нет, а мне надо при нахождении запущенного моего приложения передать на него упраление. вот так-с. |
Сообщ.
#4
,
|
|
|
Ну, тогда у меня 2 предложения:
1. Используя файл-маппинги, создаем именованный маппинг куска своп-файла первым экземпляром, и суем туда HWND его диалога. 2. А кто мешает зарегистрировать класс окна (и создать само окно в первом экземпляре приложения со стилем WS_VISIBLE=0), которое не будет нифига делать, а только отвечать на сообщение типа WM_USER_GET_MAIN_HWND (или как тебе его захочется обозвать)? |
Сообщ.
#5
,
|
|
|
Не проще ли использовать Mutex ???
в InitInstance() например HANDLE m_Mutex = NULL; m_Mutex = OpenMutex(MUTEX_ALL_ACCESS,TRUE,_T("MutexID")); /// Если существует то выход иначе создаем if(m_Mutex) return FALSE; m_Mutex = CreateMutex(NULL,TRUE,_T("MutexID")); |