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

  • Data is the foundation of the digital economy, but managing data growth poses a big challenge as organizations ramp up cloud adoption. Whether your organization is adopting a hybrid cloud strategy or building modern apps in the cloud, there are many challenges that can limit your effectiveness. With Isilon CloudPools and ECS, you can take advantage of cloud capabilities without a disruptive time-consuming migration of your data. In this webinar, we'll discuss how Dell EMC puts you in control with a flexible …

  • You know that visibility is critical to security. You simply can't secure what you can't see. Read this Gartner research note to learn why visibility through a continuous adaptive risk and trust assessment (CARTA) approach is key to securing digital business. Download now to learn eight ways this approach can be deployed to optimize the visibility into your organization's cloud services, mobile endpoints, and digital ecosystems.

Most Popular Programming Stories

More for Developers

RSS Feeds

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