'버튼'에 해당되는 글 1건

  1. 2007.10.17 Button

Button

API Reference 2007. 10. 17. 10:58

CreateWindow( TEXT( "button" ), TEXT( "Click Me" ), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,

        20, 20, 100, 25, hWnd, ( HMENU )0, g_hInst, NULL );


컨트롤은 윈도우이기는 하지만 홀로 사용될 수 없으며 반드시 부모 윈도우의 차일드로 존재해야 한다.

차일드 컨트롤은 보통 부모 윈도우가 만들어질 때 즉, WM_CREATE 메시지가 발생했을 때 만든다.



button

만들고자 하는 윈도우의 윈도우 클래스이며 컨트롤은 운영체제에 의해 윈도우 클래스가 미리 등록되어 있으므로 별도로 등록할 필요없이 이 인수에 만들고자 하는 컨트롤의 윈도우 클래스명을 적어주면 된다.

대소문자는 구분하지 않는다.


Click Me

윈도우의 타이틀 바에 나타날 윈도우의 제목이되 컨트롤에 따라 캡션이 나타날 위치가 달라진다.

리스트 박스나 스크롤 바처럼 캡션이 필요없고 내용만 있는 컨트롤은 NULL 을 지정하면 된다.

단순한 문자열일 뿐이므로 한글도 사용할 수 있다.


WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON( 스타일 )

윈도우의 속성값이다. 컨트롤은 차일드 윈도우이므로 예외없이 WS_CHILD 스타일은 반드시 주어야 한다.

또한 WS_VISIBLE 스타일을 주어야 ShowWindow 함수를 호출하지 않아도 컨트롤이 화면에 나타나므로 컨트롤의 경우 이 두 스타일값은 거의 예외없이 지정하는 것이 정석이다.


그 외 컨트롤에 따른 고유한 스타일을 추가로 지정하는데 버튼의 경우 다음과 같은 스타일을 사용하며

BS_ 접두어로 시작된다.


BS_PUSHBUTTON

푸시 버튼


BS_DEFPUSHBUTTON

디폴트 푸시 버튼


BS_CHECKBOX

체크 박스


BS_3STATE

3가지 상태를 가지는 체크 박스


BS_AUTOCHECKBOX

자동 체크 박스


BS_AUTO3STATE

3가지 상태를 가지는 자동 체크 박스


BS_RADIOBUTTON

라디오 버튼


BS_AUTORADIOBUTTON

자동 라디오 버튼


BS_GROUPBOX

그룹 박스



20, 20, 100, 25( 위치 )

윈도우의 위치와 크기를 지정한다. 컨트롤의 경우는 부모 윈도우의 작업영역을 기준으로 한 좌표가 사용된다.


hWnd

컨트롤의 부모 윈도우를 지정하는데 컨트롤은 차일드이므로 반드시 부모 윈도우가 있어야 한다.


( HMENU )0 : ID

윈도우에서 사용할 메뉴의 핸들이다. 단 차일드 컨트롤은 메뉴를 가지지 않으므로 이 인수를 컨트롤의 ID 지정 용도로 사용한다.


g_hInst

이 윈도우를 만드는 인스턴스의 핸들


NULL

사용자 정의 데이터이며 MDI 에서 사용하는 구조체인데 일단 무시하고 NULL 로 지정하면 된다.



CreateWindow 함수는 생성된 차일드 컨트롤의 윈도우 핸들을 리턴하는데 핸들이 필요할 경우 별도의 변수에 핸들값을 저장해 두면 된다.

생성한 컨트롤은 부모 윈도우가 파괴되면 자동으로 파괴된다.

Posted by 명혀니
,