開発環境 Microsoft Visual Studio Community 2019
実行環境 Microsoft Windows 10 Home (64bit)
プロジェクト テンプレート C++ 空のプロジェクト
プロジェクト名 scrsav

プロジェクトにscrsav.cppを追加する。
ソリューション構成をReleaseにする。

プロジェクトの構成プロパティ
詳細/ターゲット ファイルの拡張子 .scr
C/C++/コード生成/ランタイム ライブラリ マルチスレッド (/MT)
リンカ―/システム/サブシステム Windows (/SUBSYSTEM:WINDOWS)

参考

scrsav.cpp
#include <Windows.h>
#include <ScrnSave.h>
 
#pragma comment(lib, "scrnsavw")
#pragma comment(lib, "comctl32")
 
int count = 0;
 
void OnTimer(HWND hWnd);
 
LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg) {
	case WM_TIMER:
		OnTimer(hWnd);
		break;
	case WM_CREATE:
		SetTimer(hWnd, 1, 1000 / 30, NULL);
		break;
	}
	return DefScreenSaverProc(hWnd, msg, wParam, lParam);
}
 
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
	return TRUE;
}
 
BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
{
	return TRUE;
}
 
void OnTimer(HWND hWnd)
{
	RECT rc;
	GetClientRect(hWnd, &rc);
 
	TCHAR buf[256];
	wsprintf(buf, L"%d", count);
	count++;
 
	HDC hdc = GetDC(hWnd);
	TextOut(hdc, rc.right / 2, rc.bottom / 2, buf, lstrlen(buf));
	ReleaseDC(hWnd, hdc);
}
 
最終更新:2019年12月05日 21:22