Screen Saver which Displays Pictures

This is a simple screen saver, which display sequentially all pictures in a directory (bitmaps, metafiles, GIF's, JPEG's, PNG's). The default directory is the directory of the screen saver, but you can change it.

Some problems there are still with that screen saver:

  1. The "Configure"-button in the "Screen saver"-property sheet does not work correctly. To configure you must call the .scr file directly without parameters (or right click in explorer and choose "Configure").
  2. The screen saver is not able to display other graphics like PCX, TIFF and so on.
  3. Win95 could crash when trying to display bitmaps with too high resolution, WinNT has no problem there.

If anybody knows how to fix the problems please send me a mail, so that everybody can benefit from it.

Thanks Oliver Reuther for the idea, Alejandro Auilar Sierra for the CImage-class, Robert Caldecott for his Metafile class and Zafir Anjum for some bitmap related routines.

When you have some nice pictures like Error-MessageBoxes or Warnings, please feel free to send me these pictures as e-mail. I will include them in my project (by adding a copyright-notice of the author), and you will get newest versions of the screen saver per e-mail.

Download demo project & source - 756KB



Comments

  • another fix for config problem

    Posted by Legacy on 05/04/1999 12:00am

    Originally posted by: Jon Tanner

    On Microsoft's website, they have a fix for the config problem, because the way Win98 handles command strings
    is different than 95.
    
    

    so here is the code they recommend ( i've tested it on 95,98,and NT)

    BOOL MatchOption(LPTSTR lpsz, TCHAR ch)
    {
    if (lpsz[0] == '-' || lpsz[0] == '/')
    lpsz++;
    if (lpsz[0] == ch)
    return TRUE;
    return FALSE;
    }

    and in InitInstance()

    if ( __argc == 1 || MatchOption(__argv[1], _T('c')))
    DoConfig();

    else if (MatchOption(__argv[1], _T('s')) || MatchOption(__argv[1], _T('S')))
    {
    CSaverWnd* pWnd = new CSaverWnd;
    pWnd->Create();
    m_pMainWnd = pWnd;
    return TRUE;
    }

    -note, you have to add the capital 'S' because 98 and 95 return different cases, and the new version doesn't reduce all to lower case

    Reply
  • Fixing problem 1

    Posted by Legacy on 10/05/1998 12:00am

    Originally posted by: Nguyen Duc Dung

    I' m developing a screen saver engine basing on the MFC Screen Saver
    sample. I had the same problem (problem 1). I don't know much about
    promble 2&3, I think that depends on the image library. The Configure
    button works well in Windows95 but doesn't in Windows98 and WindowsNT.
    I think that because the way Windows invokes screen saver has changed.
    The problem here is the MatchOption() function. I have the following
    solution:

    At line 66 of DlgScrSaver.cpp (function CSaverApp::InitInstance())

    if (__argc == 1 || MatchOption(__argv[1], _T("c")))

    should be replaced by

    if (__argc == 1 || __argv[1][1]=='c'||__argv[1][0]=='c')

    Now it works in both Windows9x and WindowsNT.

    NDD


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

Top White Papers and Webcasts

  • Live Event Date: December 11, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Market pressures to move more quickly and develop innovative applications are forcing organizations to rethink how they develop and release applications. The combination of public clouds and physical back-end infrastructures are a means to get applications out faster. However, these hybrid solutions complicate DevOps adoption, with application delivery pipelines that span across complex hybrid cloud and non-cloud environments. Check out this …

  • CentreCorp is a fully integrated and diversified property management and real estate service company, specializing in the "shopping center" segment, and is one of the premier retail service providers in North America. Company executives travel a great deal, carrying a number of traveling laptops with critical current business data, and no easy way to back up to the network outside the office. Read this case study to learn how CentreCorp implemented a suite of business continuity services that included …

Most Popular Programming Stories

More for Developers

RSS Feeds