缩略图视图中的通用文件对话框

介绍 那里有所有这些图像预览文件对话框。自Windows 2000缩略图视图模式以来,它们都已被弃用。(我的两个美分)。但是如何使对话框默认缩略视图?还有其他的观点吗? 背景 我张贴这个,因为它是我需要的东西。唯一的信息,我可以找到一些搜索是VB。感谢VBnet。这就是我对c++的采用。我使用的是WTL,但是MFC或任何其他C/ c++都可以从filedialog . h复制粘贴代码。 使用的代码 在ATL/WTL中,只需要包含filedialog . h并使用CFileDialogEx类,在此之前使用CFileDialog类。注意,最后添加的参数是一个枚举,表示需要的初始列表视图。它默认为SHVIEW_Default,意思是什么都不要做,让Windows顺其自然。在MFC和其他框架中,你应该钩住GetOpen/SaveFileDialog,并且在钩子例程中,覆盖WM_NOTIFY消息。在这里,执行CFileDialogEx::OnNotify所做的操作。确保链回默认处理,以免破坏文件对话框的功能。隐藏,Code

//
// Any Example of an open Handler
//

Hide副本,复制Code

LRESULT OnOpen(WORD /*wNotifyCode*/, WORD /*wID*/, 
             HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
    CMyFileDialog fileDlg(
        true ,          // TRUE for FileOpen, FALSE for FileSaveAs
        "*.*" ,         // LPCTSTR lpszDefExt = NULL,
        NULL ,          //,LPCTSTR lpszFileName = NULL,
        0 ,             //dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
        "Images\0*.bmp;*.dib;*.jpg;*.gif;*.png;*.ico\0" 
        "All Files\0*.*",//LPCTSTR lpszFilter = NULL,
        m_hWnd ,         //HWND hWndParent = NULL
        SHVIEW_THUMBNAIL // which initial view 
    ) ;

    fileDlg.DoModal() ;
    return 0 ;
}

的兴趣点 Windows通用文件对话框代码对文件列表“SHELLDLL_DefView”(OCX)做了一些有趣的事情。它会在文件对话框的生命周期内多次破坏和重建它。通常,该列表在CDN_INITDONE通知代码中是不可用的。这就是为什么代码会检查所有WM_NOTIFY列表的存在,直到找到它,然后它就不再存在了。发送到列表的WM_COMMAND代码是由spy++提取的,是可以在Windows的未来版本中被更改的魔法数字。好吧,我希望微软能够监视CodeProject站点,并保持它的正常运行。 最后,这个和前面在Code-Project上的文件对话框定制可以给用户高度的控制她/他的文件对话框。所以,下次当我看到一个具有64x64图像预览和默认图标视图的绘图程序时,我个人会对它们感到不满。现在他们没有什么好借口了。 本文转载于:http://www.diyabc.com/frontweb/news438.html

posted @ 2020-08-07 01:30  Dincat  阅读(127)  评论(0编辑  收藏  举报