Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Dll и модальный диалог 
:(
    Опции темы
dmitro88
Дата 23.1.2010, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Столкнулся с такой проблемой. 
Написал универсальную функцию для вызова стандартных 
диалогов (поместил её в dll).  
Dll к моей программе подключается неявно. Суть проблемы:
Не получается запустить диалог именно как МОДАЛЬНЫЙ.
Т.е., диалог запускается,DoModal() вызывается , но работает как 
будто бы он создан при помощи Create() (в немодальном режиме). 
То есть,скорее всего,  он запускается в другом потоке.


Кто-нибудь может подсказать,как решить проблему?

Фрагмент кода Dll:
Код

STANDART_API bool OpenStdDialog(int type_dialog, void * pIniParam,  void * pResultParam)
{
    CCommonDialog * dialog;

    switch(type_dialog)
    {
    case 0:
        dialog = new CFileDialog(true);
        dialog->DoModal() ;
        {
            //
            //    
            delete dialog;
            return true;
        }
        
        delete dialog;    
        return false;
    }
    return false;
}


Это сообщение отредактировал(а) dmitro88 - 23.1.2010, 22:10
PM MAIL   Вверх
Earnest
Дата 25.1.2010, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вряд ли в отдельном потоке. Сам собой поток не запустится, а написать код и не знать об этом довольно сложно.
Под "немодальной" работой ты имеешь в виду, что остается доступным главное окно? Скорее всего, дело в том, что твоя DLL - не Extension, поэтому автоматом найти главное окно она не может, поэтому и не дизэблит при создании... Модальный-то цикл MFC эмулирует. Короче, нужно в твою Open... передавать указатель на главное окно. И, скорее всего, в виде HWND. Ну и передавать его во все конструируемые диалоги. А если хочешь, чтобы "само" работало, сделй Extension DLL.


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


 




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


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

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