開発環境 |
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