c/c++语言开发共享我无法阻止用户在ListView中编辑标签

根据msdn, http://msdn.microsoft.com/en-us/library/bb774798%28VS.85%29.aspx ,返回TRUE会阻止用户编辑标签。

所以我写了下面的代码:主要:

WinMain(...) { DialogBox(..., DlgProc) } 

DLGPROC:

 DlgProc(...) { switch(message) { case WM_NOTIFY: if((NMHDR *)lParam->code == LVN_BEGINLABELEDIT) { return TRUE; return FALSE; ... } 

仍然可以编辑标签。 我不想取消LVS_EDITLABELS的样式,因为有时候我想允许用户编辑标签。

有谁知道这个问题? 谢谢。

    从DialogProc()返回TRUE并不意味着你的想法。 引用MSDN库文章:

    通常,对话框过程在处理消息时应返回TRUE,如果不处理则返回FALSE。 如果对话框过程返回FALSE,则对话框管理器将执行默认对话框操作以响应该消息。

    如果对话框过程处理需要特定返回值的消息,则对话框过程应通过在返回TRUE之前立即调用SetWindowLong(hwndDlg,DWL_MSGRESULT,lResult)来设置所需的返回值。 请注意,您必须在返回TRUE之前立即调用SetWindowLong; 之前这样做可能会导致DWL_MSGRESULT值被嵌套的对话框消息覆盖。

      以上就是c/c++开发分享我无法阻止用户在ListView中编辑标签相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/549303.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐