MFCShellList控件,双击文件能打开,怎么让它不能打开文件,变为选中文件?

短暂幻影 2020-10-10 12:00:20
...全文
205 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
短暂幻影 2020-10-12
  • 打赏
  • 举报
回复
引用 6 楼 zgl7903 的回复:
可以重载 OnNotify 处理

BOOL CDlg2Dlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
  // TODO: 在此添加专用代码和/或调用基类
  NMHDR *pNMHDR = (NMHDR *)lParam;
  if(pNMHDR->hwndFrom == m_wndShellList.m_hWnd
    && pNMHDR->code == NM_DBLCLK)
  {
    LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

    //Add your code here

    *pResult = 0;
    return TRUE;
  }

  return CDialog::OnNotify(wParam, lParam, pResult);
}
多谢,我试试
短暂幻影 2020-10-12
  • 打赏
  • 举报
回复
引用 8 楼 schlafenhamster 的回复:
BOOL Cxxxx::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class if(pMsg->message==WM_LBUTTONDOWN) { ......
好的,我试试
schlafenhamster 2020-10-11
  • 打赏
  • 举报
回复
BOOL Cxxxx::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_LBUTTONDOWN)
{
......
schlafenhamster 2020-10-11
  • 打赏
  • 举报
回复
因为所有子窗口消息发到主窗口,所以在
BOOL CDIDlg::PreTranslateMessage(MSG* pMsg)
处理
如果 在子 窗口处理, 需要 派生 新的 子类
zgl7903 2020-10-10
  • 打赏
  • 举报
回复
可以重载 OnNotify 处理

BOOL CDlg2Dlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
// TODO: 在此添加专用代码和/或调用基类
NMHDR *pNMHDR = (NMHDR *)lParam;
if(pNMHDR->hwndFrom == m_wndShellList.m_hWnd
&& pNMHDR->code == NM_DBLCLK)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

//Add your code here

*pResult = 0;
return TRUE;
}

return CDialog::OnNotify(wParam, lParam, pResult);
}



短暂幻影 2020-10-10
  • 打赏
  • 举报
回复
响应的这个NM_DBLCLK消息,函数体里面暂时没写,就是一个测试语句,现在就是这个消息都没进去 ON_NOTIFY(NM_DBLCLK, IDC_MFCSHELLLIST1, &chrome_dialog::OnDblclkMfcshelllist1) void chrome_dialog::OnDblclkMfcshelllist1(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 NM_LISTVIEW *pNMListView = (NM_LISTVIEW *)pNMHDR; int nItem = pNMListView->iItem; if (nItem >= 0 && nItem<m_mfcshelllist.GetItemCount())//判断双击位置是否在有数据的列表项上面 { int i = 0; } *pResult = 0; }
schlafenhamster 2020-10-10
  • 打赏
  • 举报
回复
但是没得反应
上代码
短暂幻影 2020-10-10
  • 打赏
  • 举报
回复
引用 2 楼 schlafenhamster 的回复:
响应双击 消息
响应了双击,但是没得反应
schlafenhamster 2020-10-10
  • 打赏
  • 举报
回复
响应双击 消息
短暂幻影 2020-10-10
  • 打赏
  • 举报
回复
求助各位大佬

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧