#include <windows.h>
#include "resource.h"
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK Dlg1Proc(HWND hwnd, UINT iMSg, WPARAM wParam, LPARAM lParam);
HINSTANCE hInst;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS WndClass;
hInst = hInstance;
WndClass.style = CS_HREDRAW | CS_VREDRAW;
WndClass.lpfnWndProc = WndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = hInstance;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
WndClass.lpszClassName = "Window Class Name";
RegisterClass(&WndClass);
hwnd = CreateWindow( "Window Class Name",
"API Project",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
500,
500,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
switch (iMsg)
{
case WM_CREATE:
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_ABC:
DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, Dlg1Proc);
break;
}
break;
case WM_DESTROY:
PostQuitMessage (0) ;
break;
}
return DefWindowProc (hwnd, iMsg, wParam, lParam);
}
BOOL CALLBACK Dlg1Proc(HWND hDlg, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
HWND hButton;
static int x,y;
PAINTSTRUCT ps;
static RECT rectView;
switch(iMsg)
{
case WM_INITDIALOG:
hButton = GetDlgItem(hDlg, ID_PAUSE);
EnableWindow(hButton, FALSE);
x = 20; y = 20;
return 1;
case WM_PAINT:
hdc = BeginPaint(hDlg, &ps);
Ellipse(hdc, x-20, y-20, x+20, y+20);
EndPaint(hDlg, &ps);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_START:
hButton = GetDlgItem(hDlg, ID_START);
EnableWindow(hButton, FALSE);
hButton = GetDlgItem(hDlg, ID_PAUSE);
EnableWindow(hButton, TRUE);
SetTimer(hDlg,1,70,NULL);
break;
case ID_PAUSE:
hButton = GetDlgItem(hDlg, ID_START);
EnableWindow(hButton, TRUE);
hButton = GetDlgItem(hDlg, ID_PAUSE);
EnableWindow(hButton, FALSE);
KillTimer(hDlg,1);
break;
case ID_CLOSE:
EndDialog(hDlg,0);
break;
case IDCANCEL:
EndDialog(hDlg, 0);
break;
}
case WM_TIMER:
x += 40;
if (x+20 > rectView.right) x -=40;
InvalidateRgn(hDlg, NULL, TRUE);
break;
}
return 0;
}
여기서 홀수 시간이 되면 오른쪽으로 가야합니다 저 동그라미가 ㅠㅠㅠ 근데 동그라미가 안움직이네요
뭐가 잘못된건가요
시작버튼을 눌르면 움직이여야합니다.
WM_TIMER 다음줄에 GetClientRect(hDlg, &rectView;); 빠졌음
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.