본문내용
DEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//
// FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
// PURPOSE: Processes messages for the main window.
//
// WM_COMMAND- process the application menu
// WM_PAINT- Paint the main window
// WM_DESTROY- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
static int mouse = 0;
/*마우스 왼쪽버튼이 클릭되었는지 구분하기 위한 변수 선언
이 변수가 0이면 클릭되어있지 않은 상태이고
이 변수가 1이면 클릭되어있는 상태이다*/
switch (message)
{
case WM_LBUTTONDOWN://마우스를 클릭했을 경우
paint = (CControl*)malloc(sizeof(CControl));//동적할당
paint->Setx(lParam);
paint->Sety(lParam);
paint->Setstart(1);
pp.LBUTTONDOWN();
mouse=1;
return 0;
case WM_MOUSEMOVE://마우스 드래그
if(mouse == 1)//마우스를 클릭한 상태일 경우
{
hdc=GetDC(hWnd);
paint=((CControl*)malloc(sizeof(CControl)));//동적할당
paint->Setx(lParam);
paint->Sety(lParam);
paint->Setstart(0);
pp.MOUSEMOVE(hdc);
ReleaseDC(hWnd,hdc);
}
return 0;
case WM_LBUTTONUP://클릭과 드래그가 끝난상태
pp.LBUTTONUP(mouse);
mouse=0;
return 0;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
pp.PAINT(hdc);
RECT rt;
GetClientRect(hWnd, &rt);
DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//
// FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
// PURPOSE: Processes messages for the main window.
//
// WM_COMMAND- process the application menu
// WM_PAINT- Paint the main window
// WM_DESTROY- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);
static int mouse = 0;
/*마우스 왼쪽버튼이 클릭되었는지 구분하기 위한 변수 선언
이 변수가 0이면 클릭되어있지 않은 상태이고
이 변수가 1이면 클릭되어있는 상태이다*/
switch (message)
{
case WM_LBUTTONDOWN://마우스를 클릭했을 경우
paint = (CControl*)malloc(sizeof(CControl));//동적할당
paint->Setx(lParam);
paint->Sety(lParam);
paint->Setstart(1);
pp.LBUTTONDOWN();
mouse=1;
return 0;
case WM_MOUSEMOVE://마우스 드래그
if(mouse == 1)//마우스를 클릭한 상태일 경우
{
hdc=GetDC(hWnd);
paint=((CControl*)malloc(sizeof(CControl)));//동적할당
paint->Setx(lParam);
paint->Sety(lParam);
paint->Setstart(0);
pp.MOUSEMOVE(hdc);
ReleaseDC(hWnd,hdc);
}
return 0;
case WM_LBUTTONUP://클릭과 드래그가 끝난상태
pp.LBUTTONUP(mouse);
mouse=0;
return 0;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
pp.PAINT(hdc);
RECT rt;
GetClientRect(hWnd, &rt);
DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
추천자료
v/b도서대여프로그램
객체지향프로그램_자판기프로그램
라디오 프로그램 기획안 - 프로그램 개요, 제목, 기획의도, 방송시간과 시각, 제작 내용
[클리퍼][프로그래밍언어][프로그램언어][프로그래밍]프로그래밍언어(프로그램언어)의 발전 ...
[동영상][동영상 촬영기법][동영상 저장][편집][타이틀제작]동영상의 포맷, 동영상의 촬영기...
[동영상][동영상의 종류][동영상의 장단점][동영상의 입력장치][동영상의 제작][동영상 편집...
오목프로그램 C#
계산서프로그램(식당)입니다.
진수변환프로그램
프로그램 언어
[윈도우프로그래밍] 데이터베이스응용 관리프로그램 - 음원관리 프로그램 : 음악관리,데이터...
[졸업작품] MFC 주소록 관리 프로그램 (Visual C++(MFC), MS SQL Server Compact 3.5 (파일DB...
AVR을 이용하여 적외선센서(수,발광) 제어하기 (IR센서제어,라인트레이서,적외선 ADC,센서값 ...
AVR을 이용한 블루투스 통신 실험 (블루투스 제어,시리얼 통신,UART,atmega128,안드로이드,소...
소개글