【发布时间】:2020-07-17 12:35:18
【问题描述】:
以下是取自https://docs.microsoft.com/en-us/cpp/mfc/reference/clistctrl-class?view=vs-2019 的一些示例代码。在我看到的所有示例中,它都没有检查 NMHDR* 是否为空。可以为null还是保证不为null?
void CListCtrlDlg::OnDblClk(NMHDR* pNMHDR, LRESULT* pResult)
{
UNREFERENCED_PARAMETER(pResult);
LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
LVHITTESTINFO lvhti;
// Clear the subitem text the user clicked on.
lvhti.pt = pia->ptAction;
m_myListCtrl.SubItemHitTest(&lvhti);
if (lvhti.flags & LVHT_ONITEMLABEL)
{
m_myListCtrl.SetItemText(lvhti.iItem, lvhti.iSubItem, NULL);
}
}
【问题讨论】:
-
我猜不可能吧?我不确定它是否为空是否有意义。但是显式测试它的开销很小,而且您始终可以安装 MFC 源代码并检查调用它的代码,看看是否会生成 null。
标签: c++ visual-c++ mfc