https://github.com/ManSung-Kim/Win32Study/blob/master/StudyWin32/MyButton.cpp
Button의 생성
Android에서 xml말고 source상에서 Button(혹은 다른 component)을 추가할때 onCreate에서 component를 추가하는 코드를 넣는다.
마찬가지로 Win32에서는 WM_CREATE에서 Button을 추가하면 된다.
switch(iMessage) { case WM_CREATE: // 이곳에 BN_CLICKED 날라옴 CreateWindow( TEXT("button"), // class name TEXT("Hello"), // btn label WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, // pushbtn으로 사용함을 알림 20,20,100,25, // x,y,w,h hWnd, // parent window (HMENU)BTN_1, // btn id g_hInst, NULL );
위의 소스와 같이 Button을 추가하면 된다.
style위치에서 BS_PUSHBUTTON이라는 옵션을 마스킹하는데 사용하고싶은 component 종류로 입력해주면 된다.
(HMENU)BTN_1은 Button이 눌렸을때 어떤 Button이 눌렸는지 확인을 하기위한 unique한 id이다.
소스상에서 #define 0x0e를 매핑해줬다.
Button Message 처리
case WM_COMMAND: switch(LOWORD(wParam)) { // wParam의 word low에 id날라옴 //case menu1_id: /*do*/ break; //case menu2_id: /*do*/ break; //case accel_id: /*do*/ break; case BTN_1: switch(HIWORD(wParam)) { case BN_CLICKED: // push MessageBox(hWnd,TEXT("Hello"),TEXT("Button"),MB_OK); break; } break;
위의 소스는 Button이 눌렸을때 Event를 처리하는 부분이다.(==Message를 처리하는)
Button이 눌렸을때 부모 Window와의 통신은 아래와 같은 Message로 이루어진다.
|
설명 |
HIWORD(wParam) |
통지코드(Button Click시 BN_CLICKED) |
LOWORD(wParam) |
Component ID |
lParam |
Msg를 보낸 child의 handle. Checkbox의 상태 확인들을 위해 사용됨. Button은 큰 고려를 안해도 됨 |
자세한 소스는 git을 확인
https://github.com/ManSung-Kim/Win32Study/blob/master/StudyWin32/MyButton.cpp
실행 결과
'소프트웨어 > Win32' 카테고리의 다른 글
Win32] Edit (0) | 2016.01.17 |
---|---|
Win32] CheckBox (0) | 2016.01.17 |
Win32] Bitmap Bitblt, StretchBlt (0) | 2016.01.17 |
Win32 공부를 시작하면서.. (0) | 2016.01.06 |
Win32] Menu 만들기 (0) | 2016.01.06 |
Win32 첫 소스(기본소스) (0) | 2016.01.06 |
VS2010] Resource .rc 다른편집기에서 열려있습니다. (0) | 2016.01.06 |