ファイル名:tokei.dlg
tokei DIALOG 6, 13, 80, 30
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "時計"
FONT 12, "System"
BEGIN
END
ファイル名:tokei.rc
#include <windows.h>
#include "tokei.dlg"
ファイル名:tokei.c
#define STRICT
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#ifdef __cplusplus
extern "C"
#endif
BOOL FAR PASCAL tokei(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam){
PAINTSTRUCT ps;
HDC hdc;
HFONT hfont, hfontOld;
char buf[260];
time_t t;
struct tm *ptm;
LOGFONT lf;
switch(msg){
case WM_TIMER:
InvalidateRect(hDlg, NULL, TRUE);
break;
case WM_COMMAND:
switch((WORD)wParam) {
case IDCANCEL: /* システムメニューの「クローズ」 */
KillTimer(hDlg, 1);
EndDialog( hDlg, wParam );
break;
}
break;
case WM_PAINT:
hdc = BeginPaint(hDlg, &ps);
hfont=GetStockObject(OEM_FIXED_FONT);/*固定ピッチフォント*/
hfontOld=SelectObject(hdc, hfont);
SetTextColor(hdc, RGB( 0, 0, 0)); /*文字色*/
SetBkColor (hdc, RGB(255, 255, 255)); /*背景色*/
//SetBkMode(hdc, OPAQUE); /*背景色を不透明にする*/
SetBkMode(hdc, TRANSPARENT); /*背景色を透明にする*/
time(&t);
ptm=localtime(&t);
sprintf(buf, "%04d 年 %02d 月 %02d 日", ptm->tm_year+1900, ptm->tm_mon+1, ptm->tm_mday);
TextOut(hdc, 3, 3, buf, strlen(buf));
sprintf(buf, "%02d : %02d : %02d ", ptm->tm_hour, ptm->tm_min, ptm->tm_sec);
memset(&lf, 0, sizeof(lf));
lf.lfHeight=35;
hfont=CreateFontIndirect(&lf);
SelectObject(hdc, hfont);
TextOut(hdc, 3, 30, buf, strlen(buf));
SelectObject(hdc, hfontOld);
DeleteObject(hfont);
EndPaint(hDlg, &ps);
break;
case WM_INITDIALOG:
SetTimer(hDlg, 1, 1000, NULL);
return TRUE;/* SetFocusしたらfalse */
default:
return FALSE;
}
return TRUE;
}
int PASCAL WinMain(HINSTANCE hinst, HINSTANCE hprev, LPSTR cmdline, int cmdshow){
DLGPROC lpProc = (DLGPROC)MakeProcInstance((FARPROC)tokei, hinst);
DialogBox(hinst, "tokei", NULL, lpProc);
FreeProcInstance((FARPROC)lpProc);
return 0;
}
ファイル名:tokei.def
NAME TOKEI
DESCRIPTION 'TOKEI'
EXETYPE WINDOWS
STUB 'WINSTUB.EXE'
CODE PRELOAD MOVEABLE
DATA MOVEABLE PRELOAD MULTIPLE
HEAPSIZE 4096
STACKSIZE 8192
EXPORTS
TOKEI @1
完成!
戻る