我有一个来自TTreeView的自定义控件。当用户在控件聚焦时按下ENTER时,我试图给它一个特殊的行为,给它一个响应VK_RETURN的WM_CHAR处理程序,但它永远不会被调用。
我尝试通过添加一个说msg.Result := msg.Result or DLGC_WANTALLKEYS;
的WM_GETDLGCODE处理程序来确保它接受所有键盘输入。现在它接收到ENTER键,但箭头键不再有效!
任何人都知道如何正确解决这个问题?
答案 0 :(得分:4)
我总是这样做
WM_GETDLGCODE: Message.Result := Message.Result or DLGC_WANTCHARS or
DLGC_WANTARROWS or DLGC_WANTTAB or
DLGC_WANTALLKEYS;
编写文本编辑器时。也许你刚忘了DLGC_WANTARROWS
?