社区
C++ Builder
帖子详情
如何实现如下功能(200分)
JWhiteHorse
2003-01-29 11:14:01
鼠标移入ComboBox控件,控件自动下拉,
移出ComboBox控件和下拉框,自动收缩。
...全文
56
11
打赏
收藏
如何实现如下功能(200分)
鼠标移入ComboBox控件,控件自动下拉, 移出ComboBox控件和下拉框,自动收缩。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)!
android listView顶部悬浮效果
实现
android简单方式
实现
listview顶部悬浮将
android 获取相册列表的
实现
源码
该项目
实现
的
功能
如下: 获取手机相册,点击每个相册之后进入该相册的图片列表界面,在图片列表界面可以
实现
图片多选,然后进入所选择的图片界面,在该界面内可以
实现
所选图片的上传等
功能
。 该项目最大特色: 1、获取相册列表,目前网络上面介绍获取相册的项目很少,本文专门讲述相册的获取。 2、使用Android-Universal-Image-Loader集成框架-第三方jar包加载本地图片,熟悉这个jar的开发者肯定不陌生,该jar包十
分
强大,除了可以获取网络图片,本地图片也是可以的。同时,通过引用第三方jar可以有效解决OOM异常问题。 博文地址:http://blog.csdn.net/u010156024/article/details/44136543 欢迎访问!【握手】
Android中滑屏
实现
Android中滑屏
实现
----手把手教你如何
实现
触摸滑屏以及Scroller类详解
基于Unity3D简单UI框架
基于Unity3D和NGUI
实现
的简单的UI框架,
实现
内容如下 1.加载,显示,隐藏,关闭页面,根据标示获得相应界面实例 2.提供界面显示隐藏动画接口 3.单独界面层级,Collider,背景管理 4.根据存储的导航信息完成界面导航 5.界面通用对话框管理(多类型Message Box) 6.便于进行需求和
功能
扩展(比如,在跳出页面之前添加逻辑处理等) 由于package中包含了NGUI3.6.7版本所以比较大~ 介绍文章如下:http://blog.csdn.net/fredomyan/article/details/46879203
音乐播放器LitePlayer 源码实例下载(博文详解)
功能
介绍如下: 1、获取本地歌曲列表,
实现
歌曲播放
功能
。 2、利用硬件加速感应器,摇动手机
实现
切换歌曲的
功能
3、利用jsoup解析网页数据,从网络获取歌曲列表,同时
实现
歌曲和歌词下载到手机本地的
功能
。 4、通知栏提醒,
实现
仿QQ音乐播放器的通知栏
功能
. 涉及的技术有: 1、jsoup解析网络网页,从而获取需要的数据 2、android中访问网络,获取文件到本地的网络请求技术,以及下载文件到本地
实现
断点下载 3、线程池 4、图片缓存 5、service一直在后台运行 6、手机硬件加速器 7、notification通知栏设计 8、自定义广播 9、android系统文件管理 音乐播放器的讲述博文地址:http://blog.csdn.net/u010156024/article/details/47685141
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章