Поиск:

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


Шустрый
*


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

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



В родительском окне создал обработчик для кнопки:
Код

void CNewNote::OnBnClickedJacket()
{
    // TODO: Add your control notification handler code here
    CFileDialog fileDlg(TRUE);
    fileDlg.m_ofn.lpstrFilter = "Файлы обложек *.gif,*.jpg\0*.gif;*.jpg\0\0";
    if (IDOK == fileDlg.DoModal())
    {
        if (IsValidPictFilename(fileDlg.GetFileName()))
        {
            m_RouteJacket = fileDlg.GetPathName();
            
            //CJacket* jacket = new CJacket;
            ASSERT(&jacket);
            //jacket->m_Jacket = m_RouteJacket;
            if(&jacket != NULL)
            {
                
                if (!(&jacket)->GetSafeHwnd())
                {
                    jacket.m_Jacket = m_RouteJacket;
                    BOOL ret = jacket.Create(IDD_JACKET,this);
                    if(!ret)   //Create failed.
                        AfxMessageBox("Error creating Dialog");
                    jacket.ShowWindow(SW_SHOW);
                }
                else
                {
                    
                    jacket.SetFocus();
                }
            }
            else
                 AfxMessageBox("Error Creating Dialog Object");
            

        
        }
        else
            AfxMessageBox("Не верное имя файла");
    }
}

Сначала вызываю моальный диалог с выбором файла с картинкой затем передаю путь к файлу в создаваемое немодальное окно класса CJacket. Если жму второй раз на кнопку вызова и если окно открыто то просто передается фокус и должна обновиться картинка которая будет на этом окне. Если закрываю окно кресликом и пытаюсь вызвать его снова оно не появляется smile я так понял к крестику надо привязать дестрой тока в каком месте недогоняю smile


Это сообщение отредактировал(а) Earnest - 25.1.2007, 09:19
PM MAIL   Вверх
Greeen
Дата 23.1.2007, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Чтобы правильно удалить немодальный диалог нужно родителю отправить сообщение, сигнализируещее об этом (например WM_CLOSEDIALOG = WM_APP + 1). Родителем его ловишь и вызываешь DestroyWindow();


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Gremlin
Дата 26.1.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


 




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


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

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