MFC Combox SetItemData与GetItemData使用实例

例1:使用结构体

定义全局变量(本文件中)

struct PartType
{
int KeyIndex;  
CString KeyValue;
};
int arrAllValue[]={1,2,3};
CString arrAllKey[]={L"4",L"5",L"6"};


BOOL CComBoxTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
for (int i = 0; i<3; i++)
{
int iAddString = m_Combox.AddString(str[i]);
m_Combox.SetItemData(iAddString ,(DWORD)(&str[i]));
}


CComboBox* pay = (CComboBox*)(this->GetDlgItem(IDC_COMBO1));  
CString p = *((CString*)pay->GetItemData(1)); 


return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}


在本文件中

void CComBoxTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CComboBox* pay = (CComboBox*)(this->GetDlgItem(IDC_COMBO1));  
PartType *p = ((PartType*)pay->GetItemData(1));
int y1 = p->KeyIndex;
CString str = p->KeyValue;
int y2 = 0;
}


例2:一般使用方法

CString str[] = {L"a",L"b",L"c"};

BOOL CComBoxTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
for (int i = 0; i<3; i++)
{
int iAddString = m_Combox.AddString(str[i]);
m_Combox.SetItemData(iAddString ,(DWORD)(&str[i]));
}

return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}


在本文件中

void CComBoxTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CComboBox* pay = (CComboBox*)(this->GetDlgItem(IDC_COMBO1));  
CString p = *((CString*)pay->GetItemData(1)); 
}







你可能感兴趣的:(MFC,MFC,Combox)