| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5860 人关注过本帖
标题:[求助]BCB中最小化窗口的事件在那编写?
只看楼主 加入收藏
IPV6
Rank: 1
等 级:新手上路
威 望:2
帖 子:265
专家分:0
注 册:2006-9-7
收藏
 问题点数:0 回复次数:3 
[求助]BCB中最小化窗口的事件在那编写?
BCB中最小化窗口的事件在那编写?
我一直没找到。
搜索更多相关主题的帖子: BCB中 窗口 编写 
2007-08-22 09:04
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 

最大化、最小化将发送WM_SYSCOMMAND消息。要处理该消息,可以编码手动进行消息映射:
1、在Form的头文件的TForm类声明的private:下面添加:
void __fastcall OnMinMaxSize(TMessage &Msg);

BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, OnMinMaxSize)
END_MESSAGE_MAP(TForm)

2、在Form的单元文件中添加事件函数的定义:
void __fastcall TForm1::OnMinMaxSize(TMessage& Msg)
{
if (Msg.WParam == SC_MINIMIZE)
{
//加入自己的最小化时的事件
}
else if (Msg.WParam == SC_MAXIMIZE)
{
//加入自己的最大化时的事件
}
TForm::Dispatch(&Msg); //将消息传给VCL以继续处理
}

[此贴子已经被作者于2007-8-23 11:46:52编辑过]

2007-08-23 11:45
IPV6
Rank: 1
等 级:新手上路
威 望:2
帖 子:265
专家分:0
注 册:2006-9-7
收藏
得分:0 

谢谢一笔苍穹版主,我用的就是消息相应。
哈哈哈
不过有一点有注意哦!允许最大化的时候双击标题栏也会最大化窗口。
所以也要对WM_NCLBUTTONDBLCLK消息进行相应。
代码如下:
if (Message.Msg == WM_NCLBUTTONDBLCLK) //在非客户区双击左键
{
if (!bMaxed)
{
//代码
}
else
{
//代码
}

}

[此贴子已经被作者于2007-8-23 16:07:21编辑过]


2007-08-23 16:03
一笔苍穹
Rank: 1
等 级:新手上路
帖 子:640
专家分:0
注 册:2006-5-25
收藏
得分:0 
恩,是呢,这样就更周全了,呵呵
2007-08-23 16:57
快速回复:[求助]BCB中最小化窗口的事件在那编写?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014990 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved