Open Dialog with Bitmap Preview

Here is how the dialog looks like:

How to include in your project

  1. Copy BmpDlg.cpp and BmpDlg.h into your project directory.
  2. Copy BmpDlg.rc into your res directory
  3. Add this line to your project's rc2 file:
    #include "BmpDlg.rc"
  4. Add BmpDlg.cpp to your project.

How to use

The dialog is used just as a regular FileOpen dialog.

It has one additional member variable m_showpreview that you can store in the registry to make the "Show Preview" setting persistent.

Some notes

This class illustrates the use of Hook procedures and additional templates for this kind of dialogs. It can be used as a template to create dialogs with other, more specific, previews.

Download Source.


  • Anyone can help me how to add this Source Code?

    Posted by nhat72 on 03/01/2006 07:55pm

    I have try to add this Source Code to my project in Visual Studio, but it seem like it doesn't recognize the new source code added! So, please show me somethings

  • Has anyone fixed the flicker problem yet?

    Posted by Legacy on 02/15/2003 12:00am

    Originally posted by: Bruce

    Such a wonderful class, I simply love it for displaying
    bitmaps, and it is highly expandable. However it has an
    annoying flicker while blitting the bitmaps. If anyone has
    fixed this problem, will you please share the code. Thank
    you Luis Ortega and thank you to the person who stops the

  • RE: 24bit RGB bitmap problem

    Posted by Legacy on 11/11/2002 12:00am

    Originally posted by: wang

    the problem is:
    when we use:
    CBmpDialog::hpreview = (HBITMAP)LoadImage(AfxGetInstanceHandle(), filename, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);

    Here we use default size(real size) of the bitmap, so the StretchBlt function will stretch the bitmap. On most of display adapter, the pixels will be extruded as your discription.
    My method is: before you call LoadImage, you caclulate the bitmap size, and scale to suitable size. and then use the scale size instead the "0, 0". it'll be more beautiful.
    Remember: we cann't use StretchBlt anymore. choose BitBlt instead.

  • 24bit RGB bitmap problem

    Posted by Legacy on 11/05/2002 12:00am

    Originally posted by: Igor Rosenberg

    your code work fine (thanks), but I have a problem with 24bit RGB bitmap. It's displyed, but the colors are wrong.
    Especialy, if I use a picture with lots of colors.
    Thanks for help.

  • Changing Color of Common Dialog boxes

    Posted by Legacy on 01/22/2002 12:00am

    Originally posted by: Ravinder Bassi

    how to change color of open and save as dialog boxes

  • Changing Color of Common Dialog boxes

    Posted by Legacy on 01/22/2002 12:00am

    Originally posted by: Ravinder Bassi

    how to change color of open and save as dialog boxes

  • Terima kasih

    Posted by Legacy on 08/13/2001 12:00am

    Originally posted by: Acep Sumarna

    Saya hanya dapat mengucapkan terima banyak kasih kepada Anda yang telah memberikan sebuah pelajaran yang berharga ini. 
    Saya harap Anda senantiasa dapat membantu saya.

    Acep Sumarna

  • Could you include a demo project

    Posted by Legacy on 01/30/2001 12:00am

    Originally posted by: fgt cubed

    Could you include a demo project

  • How to put the dialog in the center of the window?

    Posted by Legacy on 07/25/2000 12:00am

    Originally posted by: risingsun

    The dialog is not in the center, isn't it?

  • The normal OpenFile Dialog is still appear.

    Posted by Legacy on 02/11/2000 12:00am

    Originally posted by: Virasak

    I did follow the step to add those file to my project. However, I saw only normal OpenFile Dialog appear whenever I clicked Open on toolbar. Is there any advice for me?

  • Loading, Please Wait ...

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Power and Automation Equipment makers face constrained CAPEX, equipment interoperability issues, and process inefficiencies. However, they can take advantage of secure Internet of Things (IoT) intelligent devices and systems to make better business decisions around asset utilization and performance, while simultaneously optimizing equipment interoperability and services efficiency. Watch this brief video to see how you can unlock the full potential of your assets and value chain.

  • Moving from an on-premises environment to Office 365 does not remove the need to plan for disruptions or reduce the business risk requirements for protecting email services. If anything, some risks increase with a move to the cloud. Read how to ease the transition every business faces if considering or already migrating to cloud email. This white paper discusses: Setting expectations when migrating to Office 365 Understanding the implications of relying solely on Exchange Online security Necessary archiving …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date