동적으로 생성 된 CComboBox에서 CBN_SELCHANGE를 얻는 방법 ??. 나는 CComboBoxes 배열을 사용했습니다. 메시지에서동적으로 생성 된 콤보 상자의 CBN_SELCHANGE
MyCComboBox * p_ComboBoxes = new MyCComboBox[numberOcComboBoxes]; //numberOcComboBoxes determined at rumtime
지도 MyCComboBox의 p_ComboBoxes 배열의
BEGIN_MESSAGE_MAP(MyCComboBox , CComboBox)
ON_CONTROL_REFLECT(CBN_SELCHANGE, &CTestDlg::OnCbnSelchange)
END_MESSAGE_MAP()
void CTestDlg::OnCbnSelchange()
{
this->GetDlgCtrlID(); // Get The ComboBox ID;
CString sText;
p_ComboBoxes[0].GetLBText(p_ComboBoxes[0].GetCurSel() , sText); // I can't access like this
}
// 초기화 ..
for (int i = 0 ;i < iNumber ; i++)
{
p_ComboBoxes[i].Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWN,
CRect(10 + MY_PIC_ADDITIONAL_WIDTH,iItemDrawHeight,10 + MY_PIC_ADDITIONAL_WIDTH +MY_PIC_PROPERTY_WIDTH
,iItemDrawHeight +MY_PIC_HEIGHT), this, pImageControlPropertyID[i]);
iItemDrawHeight += MY_PIC_PROPERTY_ADDITIONAL_HEIGHT;
}
가 나는 그것이 나에게주는 선택한 텍스트를 액세스 할 수 없습니다 "액세스 위반 읽는 위치 0x00000020 "오류 ..
'GetCurSel'은 (는)'CB_ERR'을 반환하지 않습니까? –
CComboBox 배열에 액세스 할 수 없다는 것은 문제가되지 않습니다. –
'p_ComboBoxes '는 언제 초기화합니까? –