当我尝试使用右键单击选择项目时,我希望不允许选择列表控件项目,如果左键单击该项目,则应显示选择.
我尝试在NM_RCLICK事件中处理它以防止右键单击选择如下:
void CTestDlg::OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
if((pNMItemActivate->uChanged & LVIF_STATE) &&
(pNMItemActivate->uNewState & LVNI_SELECTED))
{
*pResult = 1;
}
else
{
*pResult = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅屏幕截图
如果我右键单击该项目,则不应该出现蓝色突出显示,因为该突出显示应该仅用于左键单击.
但如果是右键,我仍然可以选择该项目.
有谁可以帮我解决这个问题.
您正在处理右键单击事件的通知 ; 在此时阻止任何事情为时已晚,因为选择已更改且之前的选择已丢失.
您应该处理WM_RBUTTONDOWN/UP消息并在那里执行任何操作,而不将其传递给默认窗口过程.
| 归档时间: |
|
| 查看次数: |
513 次 |
| 最近记录: |