TODAY : / TOTAL :

120628_API :: BUTTON , EDIT

  • Share this:
반응형

BUTTON

 
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
 switch (iMessage) {
 case WM_CREATE:
  CreateWindow(TEXT("button"),      // 클래스 이름
   TEXT("Click Me"),        // 캡션 이름 :: 버튼은 캡션이 없으므로 버튼 위에 표시될 이름.
   WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,   // WS_CHILD : 윈도우 종속(자식윈도우) / WS_VISIBLE : 윈도우 함께 보이기  / BS_PUSHBUTTON : 버튼 종류
   20,            //Left xPos
   20,            //Top yPos
   100,           //Right xPos
   25,            //Bottom yPos
   hWnd,           // 부모 윈도우 핸들
   (HMENU)0,          // 원래라면 메뉴가 들어가지만, 여기선 해당 컨트롤 윈도우의 식별번호로 사용. 형식은 유지되야하므로 (HMENU) 로 캐스팅.
   g_hInst,
   NULL);
  CreateWindow(TEXT("button"),TEXT("Me Two"),WS_CHILD | WS_VISIBLE |
   BS_PUSHBUTTON,20,50,100,25,hWnd,(HMENU)1,g_hInst,NULL);
  return 0;
 case WM_COMMAND:
  switch (LOWORD(wParam)) {
  case 0:            // 위에서 생성한 윈도우 - 메뉴 설정 부분에 넣은 숫자 0. (버튼도 메뉴처럼 사용하면 됨)
   MessageBox(hWnd,TEXT("First Button Clicked"),TEXT("Button"),MB_OK);
   break;
  case 1:            // 위에서 생성한 윈도우 - 메뉴 설정 부분에 넣은 숫자 1.
   MessageBox(hWnd,TEXT("Second Button Clicked"),TEXT("Button"),MB_OK);
   break;
  }
  return 0;
 case WM_DESTROY :
  PostQuitMessage(0);
  return 0;
 }
 return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}



EDIT

 #define ID_EDIT 100     // 100 을 ID_EDIT 으로 표시
HWND hEdit;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
 TCHAR str[128];
 switch (iMessage) {
 case WM_CREATE:
  hEdit=CreateWindow(TEXT("edit"),       // 클래스 이름
   TEXT("edit"),           // 캡션 내용 - edit 은 캡션이 없으므로 미리 글자가 적혀있는 형식으로 나옴.
   WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL,  
   10,              // 크기
   10,
   200,
   25,
   hWnd,             // 윈도우 핸들 지정
   (HMENU)ID_EDIT,           // 식별 번호 100
   g_hInst,            
   NULL);
  return 0;

 case WM_COMMAND:
  switch (LOWORD(wParam)) {
   case ID_EDIT:
    switch (HIWORD(wParam)) {        // 기본적으로 LOWORD 에 가고 부가된 추가정보가 HIWORD로 옴
     case EN_CHANGE:           // 바뀌는 순간...(화면 출력 전(EN_CHANGE) 후(EN_UPDATE) 로...) 당장엔 별 차이 없으나, 후에 서브클래스 구현시 차이 발생.
      GetWindowText(hEdit,str,128);      // 캡션의 내용을 가져옴.
      SetWindowText(hWnd,str);       // 캡션의 내용을 변경.
    }
  }
  return 0;

 case WM_DESTROY:
  PostQuitMessage(0);
  return 0;
 }
 return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}





반응형

SEARCH

태그로 찾아보기