我需要在MFC中构建一个控件,以显示某些文件的预览。这些文件是3D模型,因此我需要使用OpenGL绘制它们并让用户与其进行交互(平移,缩放等)。
我想扩展CFileDialog类,因为这将浪费时间再次在文件系统中进行导航,并且结果肯定不会相同。
我设法修改了CFileDialog资源,添加了我的子对话框:
SetTemplate( 0, MAKEINTRESOURCE( IDD_MYPREVIEWDLG ) )
但是孩子是附加在底部的,而我想在右侧看到预览。
那可能吗?
最佳答案
从MSDN(重点是我):
为了为新控件腾出空间,系统会通过自定义对话框的宽度和高度来扩展默认对话框。默认情况下,自定义对话框中的所有控件都位于默认对话框中的控件下方。但是,您可以通过在自定义对话框模板中包括静态文本控件并为它分配stc32的控件标识符值来覆盖此默认位置。 (此值在Dlgs.h头文件中定义。)在这种情况下,系统将控件用作确定新控件的放置位置的参考点。在默认对话框中,stc32控件上方和左侧的所有新控件都位于控件上方和左侧相同的位置。 stc32控件下方和右侧的新控件位于默认控件的下方和右侧。通常,每个新控件的位置都应使其相对于默认控件的位置与对stc32控件的位置相同。为了为这些新控件腾出空间,系统会根据需要在默认对话框的左侧,右侧,底部和顶部添加空间。