[win32 api] EditBox, ListBoc Control에디트 박스 컨트롤 (Editbox Control)다이얼로그에 있는 에디트 박스 컨트롤에 사용자가 입력을 해주거나 변화를 준다면, 에디트 박스는 통보메세지를 wParam(word paramiter)의 HIWORD(상위 2byte)에 EN_CHANGE 메세지를 보내준다. 에디트 박스가 변할 때, 처리를 해주고 싶다면 switch문이나 if문을 이용해서 처리해준다. 스위치 문을 사용해서 처리해주는 것이 일반적인데 학습을 위해 if문을 사용해서 처리해준 모습이다.GetDlgItemText() 함수를 사용해서 buf에 해당 에디트 박스에 있는 텍스트를 읽어올 수 있다.SetDlgItemText() 함수를 사용해서 해당 에디트 박스에 buf에 있는 ..
[Win32] Modal dialog Modeless 대화상자(생성 및 사용법) 윈도우에서 생성할 수 있는 다이얼로그(대화상자) 종류에는 모달 다이얼로그와 모달리스 다이얼로그가 있다.모달 다이얼로그는 다른 곳으로 포커스가 가지 않으며 예시로는 메모장에서 다른이름으로 저장하기를 눌렀을때, 포커스가 다른이름으로저장하는 윈도우에 맞추어지며 메모장으로 포커스를 돌릴 수 없다. 반드시 저장이나 취소를 해주어야 다시 부모윈도우로 돌아온다.Modal dialog 생성방법 모달 다이얼로그는 DialogBox 함수로 생성할 수 있다.첫번째 인자 : 커널이 윈메인에 부여해준 hInstance 두번째 인자 : 생성하려는 다이얼로그의 ID를 MAKEINTRESOURCE로 생성해준다. 세번째 인자 : 부모 핸들 네번째 인자 :..
wsprintf 로 buf에 문자열 복사하기 (Win32 Api)포멧된 데이터를 특정 버퍼에 넘겨준다. 모든 인수는 해당포멧에따른 스트링으로 변환된다.복사가 끝나면 마지막에 널문자를 추가해준다. 하지만, 반환되는 값에는 널문자를 카운트 하지 않는다.형식int wsprintf( 수신할 LPSTR타입의 버퍼, 규격에 따른 문자열, 하나 이상의 인자(선택));사용예시버퍼에 사각형의 정보를 위와 같이 출력하고 싶을때. TCHAR를 이용해서 출력하고 싶을때 사용했습니다. %d에 넣어줄 정수를 3번째 인자부터 차례대로 넣어주며, %02d의 뜻은 출력 정수를 2자리로 하겠다는 것이고 빈 공간은 0으로 채운다는 뜻입니다.
LB_SETCURSEL (win32 api)필요한 경우 문자열을 선택하고 스크롤하여 뷰로 나타낸다.새 문자열을 선택한다면, 리스트박스가 이전에 선택된 문자열에서 선택푯를 제거한다. 파라미터wParam : 선택한 문자열의 0기반 인덱스를 설정한다. -1인 경우에 목록에서 선택한 항목이 없게함.lParam : 사용하지 않음. 사용예리스트박스에 어느 백터를 출력하는 경우에, 벡터에 자료가 추가될 때마다 리스트 박스가 업데이트 되며 리스트박스의 크기를 넘어가면서 추가가 되는경우에 스크롤을 함께 내리며 출력되게 하고 싶을 때 사용했다.추가적으로 만약에 스크롤 되어질때 강조표시(파란배경)이 뜨는 것을 보기 싫다면 추가적으로 호출하고SendMessage(GetDlgItem(hwnd, IDC_LIST1), LB_SET..