Click here to Skip to main content
15,891,744 members
Articles / Programming Languages / C++

Clock Screen Saver

Rate me:
Please Sign up or sign in to vote.
4.73/5 (42 votes)
27 Jun 2004CPOL4 min read 154.8K   4.5K   48  
A mouse trailing clock screen saver written in MFC
This project is a screen saver application that I originally started as a way to pick up C++/MFC. In the years since, I’ve added some features to it like Outlook Calendar and MAPI support for signaling when new mail arrives while the screen saver is active.
// CircularSprite.cpp : implementation file
//

#include "stdafx.h"
#include "CircularSprite.h"
#include "Glyph.h"

#include <cmath>

extern double pi;

#define STATIC_TICK -1.0471		//this places the start of the cicle at the top

// CCircularSprite
CCircularSprite::CCircularSprite(const double height, const double width, COLORREF color) : CSprite(color)
{
	m_rHeight = height;
	m_rWidth = width;
}

CCircularSprite::CCircularSprite(const double height, 
								 const double width, 
								 const CString strText, 	
								 COLORREF color, 
								 const CString delimiter):CSprite(strText, color, delimiter)
{
	m_rHeight = height;
	m_rWidth = width;
	m_rSplit = 360.0 / (double)this->GetGlyphCount();
}

CCircularSprite::~CCircularSprite()
{
}


// CCircularSprite member functions
double CCircularSprite::GetTickX()
{
	return STATIC_TICK;
}

double CCircularSprite::GetTickY()
{
	return STATIC_TICK;
}

int CCircularSprite::CalcX(CGlyph* pGlyph)
{
	return (int)(m_rHeight * ::cos( GetTickX() + pGlyph->GetIndex() * m_rSplit * pi / 180.0 ));
}

int CCircularSprite::CalcY(CGlyph* pGlyph)
{
	return (int)(m_rWidth * ::sin( GetTickY() + pGlyph->GetIndex() * m_rSplit * pi / 180.0 ));
}


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Team Leader Starkey Laboratories
United States United States
The first computer program I ever wrote was in BASIC on a TRS-80 Model I and it looked something like:
10 PRINT "Don is cool"
20 GOTO 10

It only went downhill from there.

Hey look, I've got a blog

Comments and Discussions