Witam wszystkich mam taki problemi otóż chodzi mi o sformatowanie przez was do minimum kodu tego wygaszacza. Część już zrobiłem i się dobrze kompiluje na razie powinien się wyświetlić czarny napis (programk kompilowany w dev c++ z dodaniem bibliotek libscrnsave.a libcomctl32.a i libscrnsavw.a) . Proszę o pomoc co i gdzie mam wpisać aby misię wyświetlił jakiś napis np : printf("Witaj"); gdzie mam to wpisać?????

// Wygaszacz, Padaśnieg
// Autor Adam Kowalczyk.

#include <windows.h>
#include <commctrl.h>
#include <scrnsave.h>

long IleStar; // Liczba gwiazdek
long RozneKolory; // nie zero to gwiazdki w roznych koloryach
#define IleStarMax 500

#define NazwaKlucza "SOFTWARE\ProgramyAdama\WygaszaczPadaSnieg"

long predkosc, iSzerokosc, iWysokosc;
long lIleJest;
BOOL bUsuwamy;

UINT uTimer;

void RysujWygaszacz();

void Odczytaj();
void Zapisz();

// Procedura dialogu konfiguracyjnego
BOOL WINAPI ScreenSaverConfigureDialog(HWND dialog,
UINT komunikat, WPARAM wParam, LPARAM lParam)
{
switch(komunikat)
{
case WM_INITDIALOG:

  // Odczytaj prędkość z rejestru
  Odczytaj();

  // Ustaw zakres paska przesuwnego na 0-20
  SendDlgItemMessage(dialog, 110, TBM_SETRANGE, TRUE, MAKELONG(1,20));
  // Ustaw pozycję suwaka zależnie od prędkości
  SendDlgItemMessage(dialog, 110, TBM_SETPOS, (WPARAM)TRUE, predkosc);

  // Ustaw zakres paska przesuwnego na 5-500
  SendDlgItemMessage(dialog, 111, TBM_SETRANGE, TRUE, MAKELONG(5,500));
  // Ustaw pozycję suwaka zależnie od prędkości
  SendDlgItemMessage(dialog, 111, TBM_SETPOS, (WPARAM)TRUE, IleStar);

  if (RozneKolory!=0) CheckDlgButton(dialog, 113, BST_CHECKED);
  				else CheckDlgButton(dialog, 113, BST_UNCHECKED);

  return TRUE;
case WM_COMMAND:
  switch(LOWORD(wParam))
  {
    case IDOK:
      predkosc = SendDlgItemMessage(dialog, 110, TBM_GETPOS, 0, 0);
	  IleStar  = SendDlgItemMessage(dialog, 111, TBM_GETPOS, 0, 0);

	  if (IsDlgButtonChecked(dialog, 113)==BST_CHECKED) RozneKolory=1;
	  											else	RozneKolory=0;
      // Zapisz prędkość do rejestru
      Zapisz();
      EndDialog(dialog, TRUE);
    case IDCANCEL:
      EndDialog(dialog, FALSE);
      return TRUE;
	case 112:
		MessageBox(dialog,"Ten program jest prostym wygaszaczem ekranu. \n Może być w dowolny sposób kopiowany i rozpowszechniany.\n Autor: Adam Kowalczyk. [email protected]", "Lelas", 0);
	return FALSE;
  }

}
return FALSE;
}

BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
{
InitCommonControls();
return TRUE;
}

LONG WINAPI ScreenSaverProc(HWND okno, UINT komunikat, WPARAM wParam, LPARAM lParam)
{
HDC kont;
RECT prost;
int i;

switch(komunikat)
{
case WM_CREATE:
{

  Odczytaj();
  /* Włącz zegar generujący komunikaty WM_TIMER co okres czasu = prędkość*1/10 [sek] */
  iSzerokosc=GetSystemMetrics(SM_CXSCREEN);
  iWysokosc=GetSystemMetrics(SM_CYSCREEN);
  lIleJest=0;
  bUsuwamy=0;
  uTimer = SetTimer(okno, 1, 50, NULL);
  break;
}

case WM_TIMER:
{
  HPEN poppioro, pioro;
  int x,y;
  kont = GetDC(okno);
  // Tu rysujemy gwiazdki
  RysujWygaszacz(kont);
  ReleaseDC(okno,kont);
  break;
}

case WM_DESTROY:
  if (uTimer)     KillTimer(okno, uTimer);
  break;

}
return DefScreenSaverProc(okno, komunikat, wParam, lParam);
}

// Funkcja odczytuje prędkość wygaszacza z rejestru
void Odczytaj()
{
HKEY klucz;
DWORD rozm = 4;

// Otwórz odpowiedni klucz rejestru
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, NazwaKlucza, 0,
KEY_QUERY_VALUE, &klucz) == ERROR_SUCCESS)
{

// Odczytaj prędkość
RegQueryValueEx(klucz, "Prędkość", 0, NULL, (BYTE *)&predkosc, &rozm);
if(predkosc<0 || predkosc>20) predkosc = 2;


// Odczytaj liczbe gwiazd
RegQueryValueEx(klucz, "LiczbaGwiazd", 0, NULL, (LONG *)&IleStar, &rozm);
if (IleStar<5)		IleStar=5;
if (IleStar>IleStarMax) IleStar=IleStarMax;

// Odczytaj czy zmiana kolorow
RegQueryValueEx(klucz, "RozneKolory", 0, NULL, (LONG *)&RozneKolory, &rozm);


// Zamknij otwarty klucz rejestru
RegCloseKey(klucz);

} else
{
IleStar=20;
predkosc = 5;
RozneKolory=1;
}

}

// Funkcja zapisuje prędkość wygaszacza do rejestru
void Zapisz()
{
HKEY klucz;
DWORD akcja;
// Otwórz odpowiedni klucz rejestru
RegCreateKeyEx(HKEY_LOCAL_MACHINE, NazwaKlucza , 0, NULL,
REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &klucz, &akcja);

// Zapisz informacje o prędkości
RegSetValueEx(klucz, "Prędkość", 0, REG_DWORD, (CONST BYTE *)&predkosc, 4);
// Zapisz informacje o liczbe gwiazd
RegSetValueEx(klucz, "LiczbaGwiazd", 0, REG_DWORD, (CONST BYTE *)&IleStar, 4);
RegSetValueEx(klucz, "RozneKolory", 0, REG_DWORD, (CONST BYTE *)&RozneKolory, 4);
// Zamknij otwarty klucz rejestru
RegCloseKey(klucz);
}

void RysujWygaszacz()
{

return(0);

}

// rozdwojenie jaźni, czy co? asiunia, heh :-8 - ŁF