windows消息

茹果伱在 2011-07-20 10:24:50
怎么屏蔽控件的消息哦,
不懂,有没有什么好书,网上看都不太系统
...全文
83 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
茹果伱在 2011-07-21
  • 打赏
  • 举报
回复
我知道了 输入产生的消息是WM_CHAR。。。
茹果伱在 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ccrun 的回复:]

意思是不想让Chart响应鼠标滚轮?这个好办,子类化可以搞定。
[/Quote]

FARPROC oldproc;
LRESULT CALLBACK MemoProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg){
case WM_LBUTTONDOWN:
case WM_LBUTTONDBLCLK:
return 0;
case WM_KEYDOWN:
wParam = NULL;
return 0;
default:
return CallWindowProc(oldproc, hWnd, uMsg, wParam, lParam);
}
}

//---------------------------------------------------------------------------


void __fastcall TForm1::FormShow(TObject *Sender)
{
oldproc = (FARPROC)SetWindowLong(this->Memo1->Handle, GWL_WNDPROC, (long)MemoProc);
}
查了好多资料多是WNDPROC 为什么BCB里是FARPROC 这里的keydown也屏蔽不了啊 怎么回事啊
茹果伱在 2011-07-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ccrun 的回复:]

意思是不想让Chart响应鼠标滚轮?这个好办,子类化可以搞定。
[/Quote]

void __fastcall TForm1::OnWindowMethod(TMessage& msg)
{
switch(msg.Msg)
{
case WM_RBUTTONDOWN:
case WM_LBUTTONDBLCLK:
case WM_LBUTTONDOWN:
case WM_RBUTTONDBLCLK:
return;
case WM_KEYDOWN:
msg.WParam = NULL;
return;
default:
Memo1->Dispatch(&msg);
break;
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->WindowProc = OnWindowMethod;
}

妖哥 这样算不算子类化? 但是鼠标的时间被屏蔽掉了 可是keydown的事件怎么没屏蔽还是能够打出来
ccrun.com 2011-07-20
  • 打赏
  • 举报
回复
意思是不想让Chart响应鼠标滚轮?这个好办,子类化可以搞定。
茹果伱在 2011-07-20
  • 打赏
  • 举报
回复
我想屏蔽chart的滚轮,是不是可以用windowProc来实现啊
ccrun.com 2011-07-20
  • 打赏
  • 举报
回复
还是说说你的需求吧,想实现什么效果呢?
茹果伱在 2011-07-20
  • 打赏
  • 举报
回复
妖哥的回答 我们这些初学者都不太听得懂。。
ccrun.com 2011-07-20
  • 打赏
  • 举报
回复
子类化窗口,也就是接管窗口过程,对想屏蔽的消息不响应即可。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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