そこでボタンを押す処理でカウントアップ・ダウンが上手く機能してくれません。
エラーなども出てない為どの処理に不都合が生じているか教えてください。
wとtの変数をボタンにより変動させてその数字を表示したいと考えて設計しました。
// ウィンドウプロシージャ
LRESULT CALLBACK WndProc(HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
static HWND hWndEdit1;
static HWND hWndEdit2;
static HWND hWndEdit3;
static HWND hWndEdit4;
static HWND hWndBtn1;
static HWND hWndBtn2;
static HWND hWndBtn3;
static HWND hWndBtn4;
static HWND hWndBtn5;
HDC hDC; // デバイスコンテキストのハンドル
PAINTSTRUCT ps; // PAINTSTRUCT構造体
int t = 0; // 時間カウンター
int w = 0; // 人数カウンター
static TCHAR sBuff[999]; // 文字列制御
static TCHAR hBuff[999];
static TCHAR wBuff[999];
static TCHAR tBuff[999];
// メッセージの種類に応じて処理を分岐します。
switch (message)
{
case WM_CREATE:
// ウィンドウが作成されたときの処理
hWndEdit1 = CreateWindow("EDIT",
"",
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER,
70,
5,
200,
25,
hWnd,
(HMENU)EDIT1,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndEdit2 = CreateWindow("EDIT",
"",
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_MULTILINE,
70,
35,
500,
150,
hWnd,
(HMENU)EDIT2,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndEdit3 = CreateWindow("EDIT",
"",
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_CENTER,
70,
190,
250,
25,
hWnd,
(HMENU)EDIT3,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndEdit4 = CreateWindow("EDIT",
"",
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_MULTILINE,
70,
245,
500,
180,
hWnd,
(HMENU)EDIT4,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndBtn1 = CreateWindow("BUTTON",
"+",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
410,
8,
15,
20,
hWnd,
(HMENU)BTN1,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndBtn2 = CreateWindow("BUTTON",
"-",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
430,
8,
15,
20,
hWnd,
(HMENU)BTN2,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndBtn3 = CreateWindow("BUTTON",
"凸終了",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
330,
190,
60,
25,
hWnd,
(HMENU)BTN3,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndBtn4 = CreateWindow("BUTTON",
"+",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
130,
220,
15,
20,
hWnd,
(HMENU)BTN4,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
hWndBtn5 = CreateWindow("BUTTON",
"-",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
150,
220,
15,
20,
hWnd,
(HMENU)BTN5,
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE),
NULL);
return 0;
case WM_PAINT:
// クライアント領域の再描画処理
hDC = BeginPaint(hWnd, &ps);
TextOut(hDC, 5, 8, "SkypeID", 7);
TextOut(hDC, 280, 8, "凸時間", 6);
wsprintf(tBuff, "%d分位", t);
TextOut(hDC, 335, 8, tBuff, lstrlen(tBuff));
TextOut(hDC, 5, 38, "テーマ", 6);
TextOut(hDC, 5, 195, "凸者", 4);
TextOut(hDC, 5, 220, "待ち", 4);
wsprintf(wBuff, "%d人", w);
TextOut(hDC, 70, 220, wBuff, lstrlen(wBuff));
TextOut(hDC, 5, 245, "過去凸者", 8);
EndPaint(hWnd, &ps);
return 0;
case WM_COMMAND:
// ボタンがクリックされた時の処理
if (LOWORD(wParam) == BTN1)
{
t = t + 5;
}
if (LOWORD(wParam) == BTN2)
{
if (t > 0)
{
t = t - 5;
}
}
if (LOWORD(wParam) == BTN3)
{
GetWindowText(hWndEdit3, sBuff, 999);
GetWindowText(hWndEdit4, hBuff, 999);
lstrcat(hBuff, sBuff);
lstrcat(hBuff, "、");
SetWindowText(hWndEdit4, hBuff);
SetWindowText(hWndEdit3, "");
if (w > 0)
{
w--;
}
}
if (LOWORD(wParam) == BTN4)
{
w++;
}
if (LOWORD(wParam) == BTN5)
{
if (w > 0)
{
w--;
}
}
return 0;