gpt4 book ai didi

c++ - 在CListCtrl上设置排序指示器正在清除列标题

转载 作者:行者123 更新时间:2023-12-02 10:21:28 25 4
gpt4 key购买 nike

enter image description here在特定列上设置排序指示器时,将清除该列的标题。

程式码片段

HDITEM headerInfo = {0};

for (int colindex = 0; colindex < n; colindex++)
{
if (TRUE == pHDR->GetItem(colindex, &headerInfo))
{

headerInfo.mask = HDI_FORMAT;
// column match?
if (colindex == column)
{
if (ascending)
{
headerInfo.fmt |= HDF_SORTUP;
headerInfo.fmt &= ~HDF_SORTDOWN;
}
else
{
headerInfo.fmt |= HDF_SORTDOWN;
headerInfo.fmt &= ~HDF_SORTUP;
}
}
// switch off sort arrows
else
{
headerInfo.fmt &= ~HDF_SORTDOWN & ~HDF_SORTUP;
}
pHDR->SetItem(colindex, &headerInfo);
}
}

如果我删除了 headerInfo初始化,它在 Debug模式下可以正常工作,但是在 Release模式下会崩溃。 HDITEM headerInfo;

标题标题是名字。单击后清除

最佳答案

最后我得到了答案,我们必须在HDI_FORMAT之前应用GetItem。如果我们在GetItem之后申请,它将清除被屏蔽的标志。我测试了,它按预期工作。

HDITEM headerInfo = {0};
headerInfo.mask = HDI_FORMAT;

for (int colindex = 0; colindex < n; colindex++)
{
if (TRUE == pHDR->GetItem(colindex, &headerInfo))
{
// column match?
if (colindex == column)
{
if (ascending)
{
headerInfo.fmt |= HDF_SORTUP;
headerInfo.fmt &= ~HDF_SORTDOWN;
}
else
{
headerInfo.fmt |= HDF_SORTDOWN;
headerInfo.fmt &= ~HDF_SORTUP;
}
}
// switch off sort arrows
else
{
headerInfo.fmt &= ~HDF_SORTDOWN & ~HDF_SORTUP;
}
pHDR->SetItem(colindex, &headerInfo);
}
}

谢谢大家的建议和意见。

关于c++ - 在CListCtrl上设置排序指示器正在清除列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59925859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com