我的程序只有一个主窗口和一个TEdit控件,
1.在程序中:定义了处理WM_KEYDOWN消息的消息处理函数Test(),Form1->KeyPreview = true;
但在Edit1中输入字符时,Test()并未响应,而我去掉TEdit控件只下主窗口时,程序可以响应
WM_KEYDOWN消息,调用Test()进行处理
2.我重截WndProc()代码如下
{
if(Message.Msg == WM_KEYDOWN)
ShowMessage("ok"); //代码1
TForm::Dispatch(&Message);
}
Form1->KeyPreview = true;
在Edit1中还是不能响应WM_KEYDOWN消息(代码1不执行),而我去掉TEdit控件只下主窗口时,代码1可执行不知该如何截获TEdit控件的消息,望高手指点
1.在程序中:定义了处理WM_KEYDOWN消息的消息处理函数Test(),Form1->KeyPreview = true;
但在Edit1中输入字符时,Test()并未响应,而我去掉TEdit控件只下主窗口时,程序可以响应
WM_KEYDOWN消息,调用Test()进行处理
2.我重截WndProc()代码如下
{
if(Message.Msg == WM_KEYDOWN)
ShowMessage("ok"); //代码1
TForm::Dispatch(&Message);
}
Form1->KeyPreview = true;
在Edit1中还是不能响应WM_KEYDOWN消息(代码1不执行),而我去掉TEdit控件只下主窗口时,代码1可执行不知该如何截获TEdit控件的消息,望高手指点
解决方案 »
- 播放语音 在“Service Application”中不行?
- Java写的WebService如附件所示例
- 第一次用Clientdataset遇到的问题
- Timer的问题(或者是多线程的问题),解决得200分,合理建议100分,先给100
- 入门级简单问题:如何判断对象为null
- 有没有象C#里面ArrayList类似可以存放对象的类
- 急救!关于SQL语句,大鸟们帮帮忙!
- zzheaptech(风的往事) 请进,接分
- 新手的问题,为什么下面的程序运行时,只能见到一个窗体,看不到运行结果???
- arcgis矢量化
- 简单问题,分数不多,在线等待,在线给分~
- 很菜的打印问题:怎么使title不在第二页及以后打出来?
procedure tedit.wndproc(var message:tmessage);
begin
if(message.msg=wm_keydown)then
showmessage('ok');
dispatch(message);
end;
procedure tform.vmessages(var message:tagmsg; var handled:boolean);
begin
if message.hwnd=edit1.handle then
if(message.msg=wm_keydown)then
begin
{处理函数}
end;
end;在FORM的FORMCREATE中加入
application.onmessage=vmessages;
以后再专门贴个讨论贴,望各位赏光。现还有一个直接的问题需要解决,还请各位看看
在C++Builder论坛,题目是“CBC事件研究(2)——如何向TEdit控件发送Windwos事件”