根据msdn,http://msdn.microsoft.com/en-us/library/bb774798%28VS.85%29.aspx, 返回TRUE将阻止用户编辑标签。我无法阻止用户在ListView中编辑标签
所以我写了下面的代码: 主营:
WinMain(...)
{
DialogBox(..., DlgProc)
}
DLGPROC:
DlgProc(...)
{
switch(message) {
case WM_NOTIFY:
if((NMHDR *)lParam->code == LVN_BEGINLABELEDIT) {
return TRUE;
return FALSE;
...
}
尽管如此,标签可以编辑。我不想取消样式LVS_EDITLABELS,因为有时我想允许用户编辑标签。
有谁知道这个问题?谢谢。
从'LVN_BEGINLABELEDIT'返回'TRUE'确实有效。必须有其他事情正在发生干扰。 –
发布一些更多的代码,问题肯定在其他地方。你可以制作一个非常小的应用程序,可以在这里发布它显示的问题? – Skizz
是的,我做到了,谢谢大家。 我在返回TRUE之前添加了一行。 SetWindowLongPtr(hwndDlg,DWLP_MSGRESULT,TRUE); 和一切工作正常。微软在他们的架构中有一些肮脏的工作,哈哈 – jay