关于消息

roc 2002-03-09 07:59:12
当我们右键点出菜单后,只要点击非菜单区域,菜单就会消失。不知道,此时会产生什么消息?
在C++Builder中用消息映射如何捕捉?
...全文
58 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
belief888 2002-03-10
: westfly(西翔) ( 的方法很好。很通用。。
  • 打赏
  • 举报
回复
lwd2k 2002-03-10
应该是重画窗体了。
  • 打赏
  • 举报
回复
CCLIS 2002-03-10
看一下这段代码:

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
popup = false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormClick(TObject *Sender)
{
if(popup)
{
Application->MessageBox(
"Popuped",
"",0);

popup = false;
}
else
Application->MessageBox(
"UnPopuped",
"",0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PopupMenu1Popup(TObject *Sender)
{
popup = true;
}
//---------------------------------------------------------------------------

Form1的POPUPMENU设为POPUPMENU1,在FORM1的定义中添加一个BOOL型变量POPUP,这段程序对左键点在该程序中而弹出菜单消失有效,对点击其他窗口无效。
  • 打赏
  • 举报
回复
CCLIS 2002-03-10
在POPUPMENU的ONPOPUP里设定变量进行跟踪试试看。
  • 打赏
  • 举报
回复
NowCan 2002-03-10
捕捉消息很简单,直接重载WndProc就行了。就是你说的这个消息不知道。
  • 打赏
  • 举报
回复
luo73 2002-03-10
不好意思,上错厕所了!
  • 打赏
  • 举报
回复
CyberUFO 2002-03-10
我只记得 BOOL AnyPopup(VOID);可以判断当前屏幕上是否有 Popup Windows

另外,GetLastActivePopup(HWND hWnd);可以获得 最近激活过的 Popup Windows, 但好像也没有多大用处啊 :-(

等待……
  • 打赏
  • 举报
回复
CyberUFO 2002-03-10
不对吧,怎么都答非所问啊? :-)

CM_MOUSEENTER 和 CM_MOUSELEAVE 是鼠标进入和离开的消息啊……

估计提问者是想获得 右键菜单 消失的消息。
  • 打赏
  • 举报
回复
大大怪老张 2002-03-10
当我们右键点出菜单后,只要点击非菜单区域,菜单就会消失
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


应该是非菜单区域的左键单击消息吧,也许它什么都不做。
  • 打赏
  • 举报
回复
invalid 2002-03-10
OnExit?
  • 打赏
  • 举报
回复
ThinkX 2002-03-09
SPY++看看
  • 打赏
  • 举报
回复
luo73 2002-03-09
My code is Ready here:
//-----------------------------------------------------------------
protected:
void __fastcall Enter_Me(TMessage& Mesg)
{
//Your code goes here.
}
void __fastcall Leave_Me(TMessage& Mesg)
{
//Your code goes here.
}
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(CM_MOUSEENTER,TMessage,Enter_Me)
MESSAGE_HANDLER(CM_MOUSELEAVE,TMessage,Leave_Me)
END_MESSAGE_MAP(TMainMenu)
//-----------------------------------------------------------------
  • 打赏
  • 举报
回复
luo73 2002-03-09
斗胆猜一下,是不是:
CM_MOUSEENTER

CM_MOUSELEAVE
???,您试试看,告诉我们,好吗?
  • 打赏
  • 举报
回复
三杯倒 2002-03-09
右键单击的消息吧
  • 打赏
  • 举报
回复
westfly 2002-03-09
在Application的OnMessage里截取鼠标右键消息试试。
  • 打赏
  • 举报
回复
纪俊 2002-03-09
呵呵,帮你up一下吧,我刚刚开始学CB,不太懂。
  • 打赏
  • 举报
回复
相关推荐
发帖
茶馆
加入

538

社区成员

C++ Builder 茶馆
社区管理员
  • 茶馆
申请成为版主
帖子事件
创建了帖子
2002-03-09 07:59
社区公告
暂无公告