2011.06.07 SimplePaint_v4.0.exe
/*
버튼 : 그리기버튼
콤보박스: 두께, 윈도우 창 이름 변경
스크롤바 : 색상
목표 : 20분
경과시간 : 50분
다이얼로그는 리소스 편집기로 했다...
*/
BOOL bDrawMode;
COLORREF coMainColor;
INT iPenWidth, iRed, iGreen, iBlue;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
static HPEN MyPen, OldPen;
static BOOL bLBdown;
static POINT poSpline;
switch (message)
{
case WM_CREATE:
bDrawMode=FALSE;
iPenWidth=1;
coMainColor=RGB(0, 0, 0);
CreateWindow(TEXT("button"), TEXT("EDIT"),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 0, 100, 30, hWnd, (HMENU)ID_BTN_DRAW, hInst, NULL);
break;
case WM_LBUTTONDOWN:
bLBdown=TRUE;
poSpline.x=LOWORD(lParam);
poSpline.y=HIWORD(lParam);
break;
case WM_MOUSEMOVE:
if(bLBdown)
{
hdc=GetDC(hWnd);
MyPen=CreatePen(PS_SOLID, iPenWidth, coMainColor);
OldPen=(HPEN)SelectObject(hdc, MyPen);
MoveToEx(hdc, poSpline.x, poSpline.y, NULL);
poSpline.x=LOWORD(lParam);
poSpline.y=HIWORD(lParam);
LineTo(hdc, poSpline.x, poSpline.y);
SelectObject(hdc, OldPen);
DeleteObject(MyPen);
ReleaseDC(hWnd, hdc);
}
break;
case WM_LBUTTONUP:
bLBdown=FALSE;
bDrawMode=FALSE;
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 메뉴의선택영역을구문분석합니다.
switch (wmId)
{
case ID_BTN_DRAW:
DialogBox(hInst, MAKEINTRESOURCE(IDD_OPTION), hWnd, Option);
break;
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 여기에그리기코드를추가합니다.
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
INT_PTR CALLBACK Option(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_INITDIALOG:
bDrawMode=TRUE;
SetDlgItemInt(hDlg, ID_RED, iRed, FALSE);
SetDlgItemInt(hDlg, ID_GREEN, iGreen, FALSE);
SetDlgItemInt(hDlg, ID_BLUE, iBlue, FALSE);
SetDlgItemInt(hDlg, ID_WIDTH, iPenWidth, FALSE);
return (INT_PTR)TRUE;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch(wmId)
{
case ID_RED:
switch(wmEvent)
{
case EN_CHANGE:
iRed=GetDlgItemInt(hDlg, ID_RED, NULL, FALSE);
if(iRed<0)
iRed=0;
else if(iRed>255)
iRed=255;
break;
}
break;
case ID_GREEN:
switch(wmEvent)
{
case EN_CHANGE:
iGreen=GetDlgItemInt(hDlg, ID_GREEN, NULL, FALSE);
if(iGreen<0)
iGreen=0;
else if(iGreen>255)
iGreen=255;
break;
}
break;
case ID_BLUE:
switch(wmEvent)
{
case EN_CHANGE:
iBlue=GetDlgItemInt(hDlg, ID_BLUE, NULL, FALSE);
if(iBlue<0)
iBlue=0;
else if(iBlue>255)
iBlue=255;
break;
}
break;
case ID_WIDTH:
switch(wmEvent)
{
case EN_CHANGE:
iPenWidth=GetDlgItemInt(hDlg, ID_WIDTH, NULL, FALSE);
if(iPenWidth<0)
iPenWidth=0;
else if(iPenWidth>4)
iPenWidth=4;
break;
}
break;
case IDOK:
case ID_OK:
case IDCANCEL:
case ID_CANCEL:
coMainColor=RGB(iRed, iGreen, iBlue);
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
break;
default:
DefWindowProc(hDlg, message, wParam, lParam);
break;
}
}
return (INT_PTR)FALSE;
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [API] 기초 코드 | simpled | 2013.06.23 | 9417 |
67 | [MFC] 한글 파일 입출력 | simpled | 2013.06.24 | 9006 |
66 | [MFC] 한글 파일 출력 | simpled | 2013.06.24 | 6985 |
65 |
[API] 발표 자료
![]() | simpled | 2013.06.23 | 6423 |
64 |
[API] Drag&Drop2
![]() | simpled | 2013.06.23 | 6350 |
63 |
[API] 기말 과제
![]() | simpled | 2013.06.23 | 6894 |
62 | [API] 프로젝트 경로 리턴 함수 (비공개) | simpled | 2013.06.23 | 6672 |
61 | [API] 파일 조작 관련된 좋은 함수들 | simpled | 2013.06.23 | 6385 |
60 |
[API] Drag&Drop
![]() | simpled | 2013.06.23 | 6623 |
59 |
[API] 로딩 화면(팝업(popup)) 완성 - 2
![]() | simpled | 2013.06.23 | 5918 |
58 |
[API] 로딩 화면(팝업(popup)) 완성 - 1
![]() | simpled | 2013.06.23 | 5934 |
57 |
[API] 로딩 화면(팝업(popup)) 기획
![]() | simpled | 2013.06.23 | 6244 |
56 |
[API] 제목 표시줄 없애기
![]() | simpled | 2013.06.23 | 6445 |
55 | [API] Alt+F4 막기 | simpled | 2013.06.23 | 7139 |
» |
[API] Project : SimplePaint v4.0
![]() | simpled | 2013.06.23 | 6064 |
53 |
[API] Project : SimplePaint v1.0
![]() | simpled | 2013.06.23 | 6578 |
52 |
[API] DialogBox
![]() | simpled | 2013.06.23 | 6775 |
51 | [API] Static | simpled | 2013.06.23 | 6204 |
50 | [API] ScrollBar | simpled | 2013.06.23 | 6171 |
49 |
[API] ComboBox
![]() | simpled | 2013.06.23 | 6654 |
48 |
[API] ListBox
![]() | simpled | 2013.06.23 | 7184 |