窗体的移动事件怎么得到?

lcllcl987 2005-06-06 09:09:15
窗体的移动事件怎么得到?
我想在窗体移动结束时,弹出对话筐:"窗体移动结束"
怎么实现啊?
请高手指点
...全文
177 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
移动中处理WM_MOVING消息,
移动后处理WM_MOVE消息。

happyct 2005-06-07
  • 打赏
  • 举报
回复
原理都一样。
lcllcl987 2005-06-07
  • 打赏
  • 举报
回复
想做类似qq的效果:
当窗体移动到屏幕上方某个区域时,窗体就上移只露出很少的部分
当鼠标移动到窗体时,窗体才完整的显示
happyct 2005-06-07
  • 打赏
  • 举报
回复
是不是想做磁性窗体?
F117p 2005-06-06
  • 打赏
  • 举报
回复
WM_MOVE是移动窗口时候发送,
WM_NCLBUTTON是在非客户区释放鼠标左键时候发生
lcllcl987 2005-06-06
  • 打赏
  • 举报
回复
搞定了:
void __fastcall TForm1::WndProc(TMessage &msg)
{
if(msg.Msg==WM_MOVE)

{
ShowMessage("移动结素");
}
TForm::WndProc(msg);
}
lcllcl987 2005-06-06
  • 打赏
  • 举报
回复
按照你的,编译通过了
可是我移动窗体时,没有反应啊?
是不是消息错了
msg.Msg==WM_NCLBUTTONUP
窗体移动的时候是这个消息吗?
F117p 2005-06-06
  • 打赏
  • 举报
回复
头文件中声明:
void __fastcall WndProc(TMessage &msg);

cpp文件中写函数体
void __fastcall TForm1::WndProc(TMessage &msg)
{
if(msg.Msg==WM_NCLBUTTONUP)//如果是WM_GETMINMAXINFO则是在移动过程
{
ShowMessage("移动结素");
}
TForm::WndProc(msg);
}
lcllcl987 2005-06-06
  • 打赏
  • 举报
回复
我是菜鸟,怎么重载WndProc?
我还没搞过.sorry
磕头!
F117p 2005-06-06
  • 打赏
  • 举报
回复
可以映射WM_GETMINMAXINFO消息;//发送消息,当它要改变大小或位置的时候

或则是重载WndProc函数void __fastcall TForm1::WndProc(TMessage &msg)
{
if(msg.Msg==WM_GETMINMAXINFO)
...
}

13,825

社区成员

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

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