win32 combobox 예제

이 예제에서는 세로 스크롤 막대가 있는 콤보 상자 컨트롤을 정의합니다. 특히 함께 제공되는 코드 예제에서는 다음 함수를 수행하는 방법을 보여 줍니다. 대화 상자 템플릿IDD_SQMEAL은 콤보 상자에 대한 창 스타일, 단추 및 제어 식별자를 정의합니다. 이 예제의 콤보 상자는 CBS_드롭다운 목록, CBS_OWNERDRAWFIXED, CBS_SORT, CBS_HASSTRINGS, WS_VSCROLL 및 WS_TABSTOP 스타일을 사용합니다. 대화 상자 컨트롤에서 이벤트가 발생하면 컨트롤은 WM_COMMAND 메시지를 통해 대화 상자 프로시저를 통보합니다. 이 예제에서는 콤보 상자, 목록 상자 및 확인 단추에서 알림 메시지를 처리합니다. 컨트롤 식별자는 wParam의 낮은 순서 단어에 있으며 알림 코드는 wParam의 높은 순서 단어에 있습니다. 대화 상자에 콤보 상자 컨트롤을 배치한 후 Ctrl + W 키 또는 메뉴 -> 보기 –> 클래스 마법사를 눌러 클래스 마법사를 엽니다. 멤버 변수 탭에서 CComboBox 클래스에 대한 변수를 추가합니다.

이 CComboBox 예제에서는 변수 이름이 위의 CComboBox 예제 코드에서 값이 검색되고 strCBText 변수에 저장된다고 가정합니다. GetLBText에 대한 또 다른 오버로드 된 버전이 있습니다. 그러나 CString을 사용하는 버전이 가장 쉽습니다. 2 단계 – 정적 텍스트 컨트롤에 대한 콤보 박스 및 값 변수 m_strTextCtrl에 대한 컨트롤 변수 m_comboBoxCtrl을 추가합니다. 이 예제에서 소유자가 그린 콤보 상자는 네 개의 식품 그룹 각각의 이름을 포함하는 드롭다운 목록 상자입니다. InitGroupList각 식품 그룹의 이름을 추가 하 고 CB_SETITEMDATA 메시지를 사용 하 여 비트 맵 핸들 을 식품 그룹을 식별 하는 각 목록 항목과 연결 합니다. 이 항목에서는 소유자가 그린 콤보 상자를 사용하는 방법을 보여 줍니다. C++ 코드 예제에서는 소유자가 그린 드롭다운 목록 상자를 사용하여 각각 비트맵과 이름으로 표시되는 네 개의 음식 그룹을 표시합니다. 음식 그룹을 선택하면 해당 그룹의 음식이 목록에 나타납니다. 예제의 목록 상자에는 선택한 식품 그룹의 식품 이름이 포함되어 있습니다. InitFoodList 목록 상자의 내용을 재설정 한 다음 현재 식품 그룹 드롭 다운 목록 상자에 현재 음식 선택의 이름을 추가 합니다. 소유자가 그린 콤보 상자는 응용 프로그램이 각 목록 항목의 크기를 설정할 수 있도록 WM_MEASUREITEM 메시지를 부모 창 또는 대화 상자 프로시저로 보냅니다.

예제 콤보 상자에 는 CBS_OWNERDRAWFIXED 스타일이 있으므로 시스템은 WM_MEASUREITEM 메시지를 한 번만 보냅니다. CBS_OWNERDRAW변수 스타일이 있는 콤보 상자는 각 목록 항목에 대해 WM_MEASUREITEM 메시지를 보냅니다.