根據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