为什么TMemo可以拦截复制粘贴消息而TRichEdit不能

我需要一个不能复制、粘贴、剪切的输入框,以前用的是从TMemo继承出来的:
TArcanMemo=class(TMemo)
procedure WndProc(var Message : TMessage); override;
end;

procedure TArcanMemo.WndProc(var Message: TMessage);
begin
if (message.Msg =WM_RBUTTONUP) or (message.Msg =WM_RBUTTONDOWN) then
exit;
if (message.Msg =wm_copy) or (message.Msg =wm_cut) then
exit;
if message.Msg =wm_paste then
exit;
inherited WndProc(Message);
end;
能够满足我的要求,后来我又想增加点显示效果,就想改用TRichEdit,于是改成如下的代码:
TArcanRichEdit=class(TRichEdit)
procedure WndProc(var Message : TMessage); override;
end;

procedure TArcanRichEdit.WndProc(var Message: TMessage);
begin
if (message.Msg =WM_RBUTTONUP) or (message.Msg =WM_RBUTTONDOWN) then
exit;
if (message.Msg =wm_copy) or (message.Msg =wm_cut) then
exit;
if message.Msg =wm_paste then
exit;
inherited WndProc(Message);
end;

这时候我发现,在这个文本框中,可以进行复制、粘贴等操作。为什么呢?为什么TMemo可以TRichedit不可以?

这个问题我发在了大富翁,好几个人回复了,不过都没有很好的解决这个问题。

posted on 2012-04-24 11:40  java课程设计例子  阅读(208)  评论(0编辑  收藏  举报