带有预览的标准文件打开对话框






4.24/5 (11投票s)
1999年12月29日

117827

2296
本文描述了一个完全面向对象的标准文件打开对话框,带有预览功能。
引言
没有使用自定义钩子函数,仅使用了通用的 MFC 消息映射。该对话框包含一个 CDibStatic
成员,当可用时会显示预览图像。CDibStatic
类封装了一个静态控件,用于显示图像,并在静态控件部分的文章中有描述。
对话框的外观如下所示
对话框的模板是标准的开发者工作室对话框模板。但是,请注意使用 stc32
静态控件。由于它没有文本,因此除非选中它,否则它是不可见的。此静态控件将作为标准文件对话框控件的占位符,从而确定相对于标准控件的新增控件的位置。如果在模板中没有指定 stc32
控件,则所有新控件都将放置在标准控件下方。否则,通用文件对话框会查看 stc32
控件的大小,以尝试将所有标准控件放入其中。如果它不够大,则会调整其大小以容纳标准控件,然后相对于调整大小后的 stc32
控件重新定位新控件。
对话框类中包含调色板支持。它使用 WM_QUERYNEWPALETTE
和 WM_PALETTECHANGED
Windows 消息的处理程序来实现,因此您必须确保您的程序使对话框接收这些消息。如果调色板从不更改,则图像在第一次选择正确的调色板时进行绘制。由于标准对话框是模态的,因此调色板更改仅由其他应用程序引起(除非您在另一个线程中更改它),因此在获得焦点时实现调色板应始终保持正确的颜色。您可以随时通过向 CDibStatic
控件发送 WM_QUERYNEWPALETTE
消息来实现调色板,例如。
该类已被用于(除其他外)实现一个完全面向对象的 DIBLOOK
。
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。