Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mfc 具有UINT32值的CListCtrl SetItemData_Mfc_Clistctrl - Fatal编程技术网

Mfc 具有UINT32值的CListCtrl SetItemData

Mfc 具有UINT32值的CListCtrl SetItemData,mfc,clistctrl,Mfc,Clistctrl,我有一个CListCtrl,我想存储一个UINT32值,但当我使用GetItemData 我有以下代码: UINT CMyDialog::MyThread(LPVOID pArg) for (int nItem=0; nItem<50; nItem++) { UINT32 nNum=100; pDlg->m_listCtrl.InsertItem(0, _T("text")); // this works pDlg->m_listCtrl.Set

我有一个
CListCtrl
,我想存储一个UINT32值,但当我使用
GetItemData

我有以下代码:

UINT CMyDialog::MyThread(LPVOID pArg)
  for (int nItem=0; nItem<50; nItem++)
  {
    UINT32 nNum=100;
    pDlg->m_listCtrl.InsertItem(0, _T("text")); // this works
    pDlg->m_listCtrl.SetItemData(nItem, nNum); // this not
   }
 }

/// this is called from a Dialog member function when a button is pressed

void CMyDialog::OnBtnClicked()
{
  UINT32 nRead=0;
  nRead=m_listCtrl.GetItemData(5);

  // nRead always returns 0
 }
UINT CMyDialog::MyThread(LPVOID pArg) for(int nItem=0;nItemm_listCtrl.InsertItem(0,_T(“text”);//这很有效 pDlg->m_listCtrl.SetItemData(nItem,nNum);//这不是 } } ///当按下按钮时,从对话框成员函数调用此函数 void CMyDialog::OnBtnClicked() { UINT32 nRead=0; nRead=m_listCtrl.GetItemData(5); //nRead始终返回0 }
即使我使用int或DWORD而不是UINT,我也会得到同样的结果。

请更加小心地发布您的代码。使用剪切和粘贴非常简单,没有理由一个接一个地出错。帮助您非常困难,也不值得,因为您不接受很多答案

无论如何,我确实看到您的循环有问题。您应该使用
InsertItem()
中的返回值,如下所示:

UINT CMyDialog::MyThread(LPVOID pArg)
{
    for (int nItem=0; nItem<50; nItem++)
    {
        UINT32 nNum=100;
        int nIndex = pDlg->m_listCtrl.InsertItem(0, _T("text"));
        pDlg->m_listCtrl.SetItemData(nIndex, nNum);
    }
}
UINT CMyDialog::MyThread(LPVOID pArg) { 对于(int nItem=0;nItemm_listCtrl.InsertItem(0,_T(“文本”)); pDlg->m_listCtrl.SetItemData(nIndex,nNum); } }
请更加小心地发布您的代码。使用剪切粘贴非常简单,没有理由一个接一个地出错。因为您不接受很多答案,所以很难帮助您,也不值得

无论如何,我确实看到您的循环有问题。您应该使用
InsertItem()
中的返回值,如下所示:

UINT CMyDialog::MyThread(LPVOID pArg)
{
    for (int nItem=0; nItem<50; nItem++)
    {
        UINT32 nNum=100;
        int nIndex = pDlg->m_listCtrl.InsertItem(0, _T("text"));
        pDlg->m_listCtrl.SetItemData(nIndex, nNum);
    }
}
UINT CMyDialog::MyThread(LPVOID pArg) { 对于(int nItem=0;nItemm_listCtrl.InsertItem(0,_T(“文本”)); pDlg->m_listCtrl.SetItemData(nIndex,nNum); } }
请发布更多的代码,因为我知道这是有效的——我已经使用过了。而您现有的许多代码都毫无意义。例如:
m\u ListCtrl=GetItemData(nItem)
,如何为控件分配整数??(如果需要帮助,请开始接受更多答案。)这是我的代码中的样子我不这么认为。请看我之前的评论。很抱歉,这是文章中的一个打字错误,但不是在代码中。那么它不应该是
nRead=m_ListCtrl.GetItemData(5)
?请发布更多的代码,因为我知道这是有效的——我已经使用过了。而您现有的许多代码都毫无意义。例如:
m\u ListCtrl=GetItemData(nItem)
,如何为控件分配整数??(如果需要帮助,请开始接受更多答案。)这是我的代码中的外观。我不这么认为。请查看我以前的评论。很抱歉,这是文章中的一个打字错误,但不是在代码中。那么它不应该是
nRead=m_ListCtrl.GetItemData(5)