Расширение MFC CFileDialog

Мне нужно создать элемент управления в MFC, который показывает предварительный просмотр некоторых файлов. Эти файлы являются 3D-моделями, поэтому мне нужно использовать OpenGL, чтобы нарисовать их и позволить пользователю взаимодействовать с ними (панорамирование, масштабирование и т. Д.).

Я хотел бы расширить класс CFileDialog, потому что было бы пустой тратой времени на повторную навигацию в файловой системе, и результаты точно не будут такими же.
Мне удалось изменить ресурс CFileDialog, добавив мой дочерний диалог:

SetTemplate( 0, MAKEINTRESOURCE( IDD_MYPREVIEWDLG ) )

но ребенок добавляется в нижней части, а я хотел бы видеть мой предварительный просмотр на правой стороне.

Это возможно?

0

Решение

От MSDN (выделение мое):

Чтобы освободить место для новых элементов управления, система расширяет диалоговое окно по умолчанию на ширину и высоту настраиваемого диалогового окна. По умолчанию все элементы управления из пользовательского диалогового окна расположены под элементами управления в диалоговом окне по умолчанию.. Тем не мение, Вы можете переопределить это позиционирование по умолчанию включив статический текстовый элемент управления в шаблон пользовательского диалогового окна и присвоив ему значение идентификатора элемента управления stc32. (Это значение определено в заголовочном файле Dlgs.h.) В этом случае система использует элемент управления в качестве точки отсчета для определения места расположения новых элементов управления. Все новые элементы управления выше и слева от элемента управления stc32 расположены на одинаковом уровне выше и слева от элементов управления в диалоговом окне по умолчанию. Новые элементы управления ниже и справа от элемента управления stc32 расположены ниже и справа от элементов управления по умолчанию. В общем, каждый новый элемент управления располагается так, что он имеет ту же позицию относительно элементов управления по умолчанию, что и элемент управления stc32. Чтобы освободить место для этих новых элементов управления, система добавляет пространство слева, справа, снизу и вверху диалогового окна по умолчанию по мере необходимости.

4

Другие решения