CComboBox中使用附加数据

来源:互联网 发布:黑产数据买卖网站 编辑:程序博客网 时间:2024/05/22 17:43

 

CComboBox中使用附加数据

 

在使用CComboBox时有时候我们不仅仅需要显示给用户的数据,同时还需要一些用户看不到的数据,比如当用户选择了特定的选项时我们还需要根据选项来得到一些附加的数据,这时我们就需要用到CComboBox中的附加数据。

为了使用CComboBox中的附加数据我们可以用其SetItemDataGetItemData来设置与获取选项中的附加数据,使用例子如下:

void CTestcomboboxDlg::OnButton1()

{

    // TODO: Add your control notification handler code here

    CComboBox* p = (CComboBox*)GetDlgItem( IDC_COMBO1 );

    char sbuf[100];

    char* pData;

    int nIndex;

    for( int i=0; i<100; i++ )

    {

        sprintf( sbuf, "TestData[%06d]", i );

        nIndex = p->AddString( sbuf );

        pData = (char*)malloc( 100 );

        memset( pData, 0x00, 100 );

        sprintf( pData, "IndexData[%06d]", i );

        p->SetItemData( nIndex, (int)pData );

    }

}                                    

//CComboBox(IDC_COMBO1)中的选择变化事件

void CTestcomboboxDlg::OnSelchangeCombo1()

{

    // TODO: Add your control notification handler code here

    CComboBox* p = (CComboBox*)GetDlgItem( IDC_COMBO1 );

    int nIndex = p->GetCurSel( );

    if ( nIndex == CB_ERR )

    {

        return ;

    }

    char* pData = (char*)p->GetItemData( nIndex );

    CEdit* pEdit = (CEdit*)(CComboBox*)GetDlgItem( IDC_EDIT1 );

    pEdit->SetWindowText( pData );

}

 

上面的代码很简单,在这里就不做解释了。如需看本文例子代码请下载本文例子代码。

原创粉丝点击