社区
界面
帖子详情
GfxOutBarCtrl的问题
b43ok
2006-05-02 01:00:47
如何象qq消息那样让里面的Item闪动起来?
思路我清楚,要么用个timer不停的换图标,要么不停的移动item的位置
就是不知道这代码具体该怎么写.
请赐教!
...全文
220
3
打赏
收藏
GfxOutBarCtrl的问题
如何象qq消息那样让里面的Item闪动起来? 思路我清楚,要么用个timer不停的换图标,要么不停的移动item的位置 就是不知道这代码具体该怎么写. 请赐教!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuanx77
2006-05-03
打赏
举报
回复
楼主是位厚道之人 支持
b43ok
2006-05-03
打赏
举报
回复
我已经自己解决
我帖出来吧,免得后人走弯路
其实 GfxOutBarCtrl已经自己带了这个过程,晕啊!
就是 GfxOutBarCtrl 里的Timer 3 事件,而且有两个函数实现它
void SetAnimationTickCount(const long value)
void SetAnimSelHighlight(const int iTime)
这两个就可以让里面的Item动起来了
void CGfxOutBarCtrl::SetAnimSelHighlight(const int iTime)
{
if (iTime <= 0) KillTimer(3);
else SetTimer(3, iTime, NULL);
iSelAnimTiming = iTime;
}
再看看Timer里
if (nIDEvent == 3 && iLastSel >= 0)
{
iSelAnimCount ++;
if (iSelAnimCount > 10) iSelAnimCount = -1;
if (iSelAnimCount == 0)
DrawAnimItem(-1, 1, iLastSel);
if (iSelAnimCount == 1)
DrawAnimItem(0, 0, iLastSel);
if (iSelAnimCount == 2)
DrawAnimItem(1, 1, iLastSel);
if (iSelAnimCount == 3)
DrawAnimItem(0, 0, iLastSel);
}
哈哈,关键还是用到DrawAnimItem()这个函数
,那么我们完全可以在自己的程序里调用DrawAnimItem()来实现闪动了
它的用法是 DrawAnimItem(横坐标偏移量,纵坐标偏移量,要移动图标的索引值);
不过我用它的时候发现它在定义的时候有点问题
void CGfxOutBarCtrl::DrawAnimItem(const int xoffset, const int yoffset, const int index)
{
CImageList * ima = GetFolderImageList(iSelFolder, IsSmallIconView());
CRect rc, irc;
GetInsideRect(irc);
GetItemRect(iSelFolder, iLastSel, rc);
if (iLastSel >= iFirstItem && irc.bottom > rc.bottom && irc.top < rc.top)
{
……
……
……
}
}
把这个函数里面的所有iLastSel都换成index才不会出错,估计是作者留给我们的一点小陷阱吧
^_^
abuseyoudna1981
2006-05-02
打赏
举报
回复
既然你已经知道思路,就自己去实现呀.我用CTREECTRL,实现过.就是换图片,定时刷新.
SSH内网穿透
本文首发在我的个人博客:https://jlice.top/p/7v8q4/。欢迎大家前去参观,么么哒~ 对于内网服务器,如果我们想从外网访问,可以借助一台拥有外网IP的云服务器,通过建立SSH反向隧道来实现访问内网服务器。 SSH隧道 首先,修改云服务器的/etc/ssh/sshd_config,添加: GatewayPorts yes 然后重启云服务器的sshd服务使上述配置生效: ...
基于SSH隧道的简单内网穿透
通过SSH隧道实现简单的内网穿透
ssh实现内网穿透
ssh实现内网穿透需求条件实现步骤其他 需求 搭建网站,使得外网能够访问到本地实验室主机. NAT: 网络地址转换 导致外网不能直接对本地局域网内的主机进行直接访问。 条件 公网IP (购买云服务器(华为云、阿里云、腾讯云等)) 实现步骤 在下文中云服务器的端口称为portA. 本地实验室主机的端口称为portB。 本地实验室主机端: 运行以下代码: ssh -Nf -R 0.0.0.0:port:127.0.0.1:portB username@ip 0.0.0.0代表网络上所有的主
内网穿透 nginx+ssh 超详细
1:环境 两台服务器 1:准备一台外网的linux服务器,阿里云,腾讯云,都行。外网就行。 2:内网linux服务器,安装了openssh 命令:ps -ef | grep ssh 查看是否安装 表示已经安装,如未安装,请自行搜索linux安装openssh(一般都是要安装的,因为linux是ssh连接的) 2:在外网linux上安装nginx 网上找的方法,没试过 1:安装命令:yum install nginx -y 2:启动命令:systemctl start ngin
ssh反向代理实现内网穿透【亲测可用】
本文在文镜老哥的指导下,使用第2种ssh反向代理的方式,通过内网打包服务器,借助外网服务器,实现在家访问我们的打包服务。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章