Здравствуйте, Alecard, Вы писали:
A>Ссылку на родительское окно сохраняем в конструкторе, нам она понадобится в вызове метода InitModalIndirect. Ну, а теперь переопределяем метод DoModal, например, так:
A>A>int CMyDialog::DoModal()
A>{
A> if (!InitModalIndirect((LPDLGTEMPLATE)LoadResourceLang(RT_DIALOG, this->IDD), m_pParentWnd))
A> return IDCANCEL;
A> return CDialog::DoModal();
A>}
A>
К сожалению, InitModalIndirect() отказывается создавать
модальный диалог на основе указанного шаблона. Порывшись в Google, я обнаружил такое решение: подменить всю функцию DoModal(). См.
http://www.developpez.net/forums/viewtopic.php?p=768010.
Единственное, что я поменял — вместо:
hInst = AfxFindResourceHandle(m_lpszTemplateName, RT_DIALOG);
HRSRC hResource = ::FindResource(hInst, m_lpszTemplateName, RT_DIALOG);
hDialogTemplate = LoadResource(hInst, hResource);
поставил:
hInst = AfxFindResourceHandle(MAKEINTRESOURCE(IDD_MYDIALOG), RT_DIALOG);
HRSRC hResource = FindResourceEx(hInst, RT_DIALOG, MAKEINTRESOURCE(IDD_MYDIALOG),
MAKELANGID(LANG_RUSSIAN, SUBLANG_DEFAULT));
hDialogTemplate = LoadResource(hInst, hResource);
И вроде бы работает...