vc++6.0中,我用下面这个句子来选择一个bmp文件并打开.如何在CFileDialog显示的时候右边多出一个区域用来显示单击选中的bmp文件的缩略图呢?
CFileDialog m_Dlg(TRUE,"bmp","*.bmp",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Bitmap Files(*.bmp)|*.bmp|All Files(*.*)|*.*||",this);本人菜鸟,请最好说的详细点,有代码最好!谢谢!!

解决方案 »

  1.   

    http://vckbase.com/article/dialog/0005.htm
      

  2.   

    http://www.vckbase.com/code/listcode.asp?mclsid=15&sclsid=1505
      

  3.   

    http://topic.csdn.net/t/20051227/13/4483914.html
      

  4.   

    那篇<用VC++定制通用对话框>写得错误太多了.看不大懂啊,哪个兄弟给发个改正过的版本吧,谢了
      

  5.   

    使用函数OpenFile函数, 
    HFILE   WINAPI   OpenFile( 
        __in       LPCSTR   lpFileName, 
        __out     LPOFSTRUCT   lpReOpenBuff, 
        __in       UINT   uStyle 
    ); 
    第三个参数指定为OF_READ 
    使用OPENFILENAME结构,将结构中的   Flags;   成员指定为OFN_ENABLEHOOK,然后为结构中的lpfnHook;   赋值,必须实现自己的挂勾过程.在过程中返回TRUE,表示接受更新.在这个挂勾过程中可以添加自己的代码从而在对话框上显示自己的控件. 
      

  6.   

    OPENFILENAME结构中的lpfnHook是一个函数指针,它是系统预定义好的,其原型如下:
    UINT_PTR CALLBACK OFNHookProcOldStyle(          HWND hdlg,
        UINT uiMsg,
        WPARAM wParam,
        LPARAM lParam
    );
    其中:
    hdlg是对话框的句柄,uiMsg是消息代码,而wParam和lParam是消息的附加信息。当uiMsg是WM_INITDIALOG消息时,lParam指定了OPENFILENAME结构的指针。在MFC中,挂勾过程必须定义成类的静态成员函数或者全局函数,以类的成员函数为例:
    在主窗体的头文件(类体里)中加入:
    static UINT_PTR CALLBACK OFNHookProcOldStyle1(          HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM lParam);
    在cpp文件中加入:
    UINT_PTR CChildFrame::OFNHookProcOldStyle1(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM lParam)
    {
        switch(uiMsg)
        {
             case WM_INITDIALOG:
              break;
         ...
        }
        return true;
    }
    对于对话框而言,它窗体初始化时,会发送 WM_INITDIALOG消息,因此这里是初始化对话框界面的好地方。
    此挂勾过程在返回值,必须指定为TRUE,然后,你将看不到对话框的背景,并且上面控件的都响应不了事件。
    在WM_INITDIALOG的case分支中,使用CreateWindow函数来创建控件,这需要点windows编程知识。
      

  7.   

    这个是完整版本的,还有全部代码下载:http://www.vckbase.com/document/viewdoc/?id=1419
      

  8.   

    CFileDialog也是一个普通的对话框,可以重载它在并在OnInitDialog里添加一个Picture框。再响应它的CBN_SELCHANGE事件获得BMP的文件名然后在Picture框里显示出来就可以了。
      

  9.   

    http://www.vckbase.com/code/winview/dialog/bitmap_preview_dialog_source.zip
      

  10.   

    http://www.codeproject.com/KB/dialog/bitmappreviewdialog.aspx
      

  11.   

    我用http://www.vckbase.com/document/viewdoc/?id=1419这里的方法试过了,加上了#include "FileDialogEx.h",把Picture.h,Picture.cpp;FileDialogEx.h,FileDialogEx.cpp添加到工程中
    ,将FileDialogEx.cpp中的包含文件改成我自己的对话框文件,但编译时总是显示
    BitmapCtrlDemoDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall CFileDialogEx::CFileDialogEx(int,char const *,char const *,unsigned long,char const *,class CWnd *)" (??0CFileDialogEx@@QAE@HPBD0K0PAVCWnd@@@Z)
    Debug/BitmapCtrlDemo.exe : fatal error LNK1120: 1 unresolved externals
    请问这是怎么回事?
      

  12.   

    百度上说这种错误可能是没有添加需要的lib文件,但是应该添加哪个lib文件呢,那篇文章里也没说啊