문제

를 업데이트해야 합 a combobox 와 새로운 값이므로 변경이 반영된 텍스트이다.가장 깨끗한 방법은 후 combobox되었다 초기화 및 메시지와 함께.

그래서 내가 노력하는 기술 postmessage 을 포함하는 hwnd combobox.

그렇다면 내가 원하는 메시지를 보내 그것을 변경하면 현재 선택된 항목 n 항목은 것, postmessage 보입니까?

는 그것을 포함하는 것 ON_CBN_SELCHANGE, 지만,나는 할 수 있습니다.

도움이 되었습니까?

해결책

ComboBox_SetCurSel:

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top