社区
C++ Builder
帖子详情
如何实现如下功能(200分)
JWhiteHorse
2003-01-29 11:14:01
鼠标移入ComboBox控件,控件自动下拉,
移出ComboBox控件和下拉框,自动收缩。
...全文
104
11
打赏
收藏
如何实现如下功能(200分)
鼠标移入ComboBox控件,控件自动下拉, 移出ComboBox控件和下拉框,自动收缩。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
牧牛人软件
2003-01-30
打赏
举报
回复
Adayuer([±0℃]) 的建议很好!
补充一点BCB6是:
private: // User declarations
Classes::TWndMethod OldComBoxWP;
以前的版本是:
private: // User declarations
Controls::TWndMethod OldComBoxWP
孩皮妞野
2003-01-29
打赏
举报
回复
有事,说一下思路。
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
oldProc = ComboBox1->WindowProc;
ComboBox1->WindowProc = ComboProc;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboProc(TMessage& msg)
{
if(msg.Msg == CM_MOUSEENTER){
ComboBox1->Perform(CB_SHOWDROPDOWN,(WPARAM)TRUE,0);
::SetCapture(ComboBox1->Handle);
msg.Result = true;
}else if(msg.Msg == WM_MOUSEMOVE){
// 取得下拉区的位置。
RECT r;
ComboBox1->Perform(CB_GETDROPPEDCONTROLRECT,0,LPARAM(&r));
if(!点在r中或ComboBox1的客户区){
::ReleaseCapture(ComboBox1->Handle);
ComboBox1->Perform(CB_SHOWDROPDOWN,(WPARAM)FALSE,0);
}
msg.Result = true;
}else
oldProc(msg);
}
JWhiteHorse
2003-01-29
打赏
举报
回复
关键在于ComboBox的下拉框的移出事件比较难判断。
Libran
2003-01-29
打赏
举报
回复
关键在于如何捕获移入和移出事件,以前有过讨论,可以搜索一下
ComboBox的下拉和收缩,用ComboBox->DroppedDown属性就可以控制
Billy_Chen28
2003-01-29
打赏
举报
回复
发送下拉消息
大大怪老张
2003-01-29
打赏
举报
回复
哎呀,楼主下次把问题写在题目里,搜索的时候有的放矢.
牧牛人软件
2003-01-29
打赏
举报
回复
家里要安装BCB
favorit
2003-01-29
打赏
举报
回复
可惜在家里没有BCB,要不然也可以学习一下了:)
Jim3
2003-01-29
打赏
举报
回复
学习
牧牛人软件
2003-01-29
打赏
举报
回复
给你我的代码,下拉菜单名称较长EnrolDateComboBox,
加一个Timer1,Timer1->Enabled=false; Timer1->Interval=100;
*.h:
private: // User declarations
Classes::TWndMethod OldComBoxWP;
void __fastcall NewComBoxWP(TMessage &Msg);
//---------------------------------------------------------------------------
__fastcall TNoteForm::TNoteForm(TComponent* Owner)
: TForm(Owner)
{
OldComBoxWP = EnrolDateComboBox->WindowProc;
EnrolDateComboBox->WindowProc = NewComBoxWP;
}
//---------------------------------------------------------------------------
RECT r;
void __fastcall TNoteForm::Timer1Timer(TObject *Sender)
{
POINT pos;
GetCursorPos(&pos);
if(!(pos.x>r.left && pos.x<r.right && pos.y >r.top && pos.y < r.bottom)){
EnrolDateComboBox->DroppedDown=false;
Timer1->Enabled=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TNoteForm::NewComBoxWP(TMessage& msg)
{
switch (msg.Msg)
{
case CM_MOUSEENTER:
{
EnrolDateComboBox->DroppedDown=true;
msg.Result = true;
break;
}
case CM_MOUSELEAVE:
{
POINT pos;
Timer1->Enabled=true;
GetCursorPos(&pos);
EnrolDateComboBox->Perform(CB_GETDROPPEDCONTROLRECT,0,LPARAM(&r));
if(!(pos.x>r.left && pos.x<r.right && pos.y >r.top && pos.y < r.bottom)){//★★★当鼠标向下移时,就无法判断CM_MOUSELEAVE,在Timer1Timer()判断。
EnrolDateComboBox->DroppedDown=false;
}
msg.Result = true;
break;
}
case WM_DESTROY:
{
EnrolDateComboBox->WindowProc = OldComBoxWP;
break;
}
}
OldComBoxWP(msg);
}
有问题再问
nxyc_twz
2003-01-29
打赏
举报
回复
楼上写的不错,实际上就是检测鼠标位置(通过鼠标移动事件),然后发送鼠标单击消息(WM_LBUTTONDOWN)!
华为OD-2024年C卷D卷-模拟目录管理
功能
[
200
分
]Python3
实现
【全网唯一】100%通过率
该博客介绍了如何使用Python3
实现
一个模拟目录管理
功能
的软件,包括创建目录、进入目录和查看当前路径等命令。文章提供了详细的题目描述、输入输出说明、示例和
实现
思路,通过一个Sys类来模拟文件系统的节点,并确保命令的合法性和正确执行。
Redis
实现
高并发排行榜的
功能
本文介绍如何用Redis设计支持高并发的排行榜
功能
。一是用Zset
实现
榜单方案,定时同步前
200
名用户数据到Redis,避免实时维护全量数据;二是在超大数据量、超高并发下采用
分
key方案,拆
分
Zset的key,汇总各节点前10名数据到本地缓存,保护Redis节点。
【华为OD】C卷真题
200
分
:机器人走迷宫 Java代码
实现
[思路+代码]
本文介绍了华为OD在线测评C卷的一道
200
分
题目,涉及机器人在迷宫中寻找路径的问题。机器人从(0,0)出发,目标是最东北角,只能向东或向北移动,需要避开墙壁和特定障碍。文章提供了C++代码
实现
,利用递归策略解决路径规划问题。 132874862,7606558,Spring Boot 实践:
实现
图片验证码
功能
,['spring boot', '后端开发', 'java']
西门子 S7-
200
SMART PLC 与昆仑通态触摸屏打造智能锅炉控制系统
本文介绍如何使用西门子S7-
200
SMART PLC与昆仑通态触摸屏
实现
锅炉智能控制,涵盖模拟量处理、时间调度、水泵切换、温度
分
时段控制、电能计量及Modbus通信调控变频器等核心
功能
,提升系统自动化与可靠性。
基于
200
℃高温ARM处理器的系统冗余设计:外设降级与
功能
安全考量
本文围绕ZT6206H高温ARM处理器展开,阐述其在
200
℃极端环境下的可靠性
实现
路径:涵盖SOI/钝化体硅工艺、CQFP陶瓷封装、
分
温区降额运行机制(全
功能
≤35℃、降额195℃)、外设动态禁用策略及抗振布局要点。重点说明PLL/RTC/I2C/CAN在>175℃时关闭,保留SPI/USART/ADC/DAC等核心模块,并强调电源滤波选型(C0G电容)、通信抗噪增强与存储ECC校验等嵌入式硬件级
功能
安全实践。
C++ Builder
13,874
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章