프로그래밍 방식으로 변경 combobox
-
09-06-2019 - |
문제
를 업데이트해야 합 a combobox
와 새로운 값이므로 변경이 반영된 텍스트이다.가장 깨끗한 방법은 후 combobox
되었다 초기화 및 메시지와 함께.
그래서 내가 노력하는 기술 postmessage
을 포함하는 hwnd combobox
.
그렇다면 내가 원하는 메시지를 보내 그것을 변경하면 현재 선택된 항목 n 항목은 것, postmessage
보입니까?
는 그것을 포함하는 것 ON_CBN_SELCHANGE
, 지만,나는 할 수 있습니다.
해결책
ComboBox_SetCurSel(hWndCombo, n);
의 경우 MFC 하 여 ccombobox 제어할 수 있습 마:
m_combo.SetCurSel(2);
내가 상상을 하고 있다면 그것은 수동으로 당신은 또한 원하는 SendMessage 보다 PostMessage.CBN_SELCHANGE 는 알림 통제 전송 신 선택 영역이 변경되었습니다.
마지막으로 추가할 수 있습 c++태그를 이 질문입니다.
다른 팁
간결한 버전:
const int index = 0;
m_comboBox.PostMessage(CBN_SELCHANGE, index);
무엇이 있는지 잘못된 것은 선택이 변경되는 내부에서 선택 변경 메시지 처리기있는 결과에서 다른 선택이 변경 메시지입니다.
을 얻을 수있는 방법 중 하나 이 원치 않는 피드백 루프 를 추가하는 것입 sentinel 을 선택 변경 메시지를 핸들러는 아래와 같:
void onSelectChangeHandler(HWND hwnd)
{
static bool fInsideSelectChange = 0;
//-- ignore the change message if this function generated it
if (fInsideSelectChange == 0)
{
//-- turn on the sentinel
fInsideSelectChange = 1;
//-- make the selection changes as required
.....
//-- we are done so turn off the sentinel
fInsideSelectChange = 0;
}
}
는 경우 fx 제목을 변경하고-라인은 다음과 같 때 콤보 상자콤보 상자 는 폐쇄 다음을 할 수 있는 다음과 같다:
m_ComboBox.DeleteString(0);//삭제하려면 먼저 이전의 어떤 경우에,0=visual 문자열 m_ComboBox.AddString(_T("안녕하세요"));
이 효과를 얻을 수 있습니다.에 OnCloseupCombo-할 때 이벤트 닫 dropdownbox 불
ON_CBN_CLOSEUP(IDC_COMBO1, OnCloseupCombo)
이 변경은 새로운 문자열이지의 선택에 이미 지정 요소 combobox