소스는 기본적인 윗부분은 똑같기에 콜백함수만.
LRESULT CALLBACK WndProc(HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
static int iSw=1;
static HWND hEdit,hButtPrint, hButtExit;
char szText1[]="First";
char szText2[]="마지막";
switch(uMsg){
case WM_CREATE:
hEdit=CreateWindow("Edit", //에디트 박스 클래스
"Edit",
WS_CHILD|WS_VISIBLE|WS_BORDER,
100,
20,
90,
30,
hWnd,
(HMENU)3,
NULL,
NULL);
hButtPrint=CreateWindow("BUTTON", //버튼 클래스
"Edit Box 내용변화", //버튼 캡션
WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
//버튼 스타일
20, //x좌표
60, //y좌표
160, //넓이
30, //높이
hWnd,
(HMENU)1, //버튼의 아이디
NULL,
NULL);
hButtExit=CreateWindow("BUTTON",
"종료",
WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
200,
60,
90,
30,
hWnd,
(HMENU)2,
NULL,
NULL);
return false;
case WM_COMMAND:
switch(LOWORD(wParam)){
//버튼의 아이디는 wParam 값에 저장되어 있다
case 1:
switch(iSw){
case 1:
iSw=2;
SetWindowText(hEdit,szText1);
return false;
case 2:
iSw=1;
SetWindowText(hEdit,szText2);
return false;
}
return false;
case 2:
PostQuitMessage(0);
}
return false;
case WM_DESTROY:
PostQuitMessage(0);
return false;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
|