Re: Я их породил, я их и...
От: old Dutchman Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.10.02 12:17
Оценка:
Здравствуйте Мыкола, Вы писали:

М>Здравствуйте, уважаемые!

М>Мне тут понадобилась возможность принудительно позакрывать все диалоги в моем приложении. Покопался в форумах, что-то по этому поводу было, но проблемма так и не была решена. Набросал такую функцию:

Делай так


#define WM_KILLDIALOG (WM_APP+1)


{
    AfxGetMainWnd()->PostMessage(WM_KILLDIALOG); // сообщение должно разойтись по всем окнам

}



И в каждый диаложек добавляешь


BEGIN_MESSAGE_MAP( CDialog, CMyDialogN102 )
    //{{AFX_MSG_MAP( CMyWnd
    // ... Possibly more entries to handle additional messages

    ON_MESSAGE(WM_KILLDIALOG,OnKillDialog)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP( )



afx_msg LRESULT CMyDialogN102::OnKillDialog(WPARAM, LPARAM)
{
    if(m_bModal)
    {
    // Тут его прибиваем

    }
}



Еще нужно переопределить метод DoModal — он виртуальный

int CMyDialogN102::DoModal()
{
    int iRet; // это чтоб можно было диалог юзать и модально, и немодально

    m_bModal = TRUE;
    CDialog::DoModal();

    return iRet;
}


Ну и в заголовочный файл добавить соответствующие описания методов и BOOL m_bModal;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.