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.



Comments

  • 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

    Reply
  • 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
    flicker.

    Reply
  • 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.


    Reply
  • 24bit RGB bitmap problem

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

    Originally posted by: Igor Rosenberg

    Hi,
    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.

    Reply
  • 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

    Reply
  • 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

    Reply
  • 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.

    ttd
    Acep Sumarna

    Reply
  • 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

    Reply
  • 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?

    Reply
  • 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?

    Reply
  • Loading, Please Wait ...

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

Top White Papers and Webcasts

  • Today's agile organizations pose operations teams with a tremendous challenge: to deploy new releases to production immediately after development and testing is completed. To ensure that applications are deployed successfully, an automatic and transparent process is required. We refer to this process as Zero Touch Deployment™. This white paper reviews two approaches to Zero Touch Deployment--a script-based solution and a release automation platform. The article discusses how each can solve the key …

  • Learn How A Global Entertainment Company Saw a 448% ROI Every business today uses software to manage systems, deliver products, and empower employees to do their jobs. But software inevitably breaks, and when it does, businesses lose money -- in the form of dissatisfied customers, missed SLAs or lost productivity. PagerDuty, an operations performance platform, solves this problem by helping operations engineers and developers more effectively manage and resolve incidents across a company's global operations. …

Most Popular Programming Stories

More for Developers

RSS Feeds