BCB中有没有这样的键盘消息拦截方法?

imhappyboy 2002-12-18 11:03:22
在DELPHI中可以声明如下过程进行键盘拦截(比ONKEYPRESS还要好),但不知BCB中怎样写?有高手知道吗?

(该过程可以将 ENTER 模拟 TAB 而且效果非常好,就算碰上COMBOBOX控件也没问题.)

procedure CMDialogKey(var Msg:TWMKey); message CM_DIALOGKEY;

procedure TForm1.CMDialogKey(var Msg: TWMKey);
begin
if not (ActiveControl is TButton) Then
if Msg.Charcode = 13 then
Msg.Charcode := 9;
inherited;
end;
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jishiping 2002-12-18
  • 打赏
  • 举报
回复
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TButton *Button2;
private: // User declarations
void __fastcall CMDialogKey(TWMKey&);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(CM_DIALOGKEY,TWMKey,CMDialogKey)
END_MESSAGE_MAP(TForm)
};

void __fastcall TForm1::CMDialogKey(TWMKey& Msg)
{
if (ActiveControl->ClassNameIs("TButton")) {
if (Msg.CharCode == 13)
Msg.CharCode = 9;
}
TForm::Dispatch(&Msg);
}
qin_wei 2002-12-18
  • 打赏
  • 举报
回复
重载TForm的WndProc函数,所有的消息都能截获.
然后在case WM_CHAR:中写代码。
woainihaha 2002-12-18
  • 打赏
  • 举报
回复
好,季老大说的对.

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧