社区
C++ Builder
帖子详情
请问:如何做那种桌面精灵的软件?
JackLucifer
2002-03-25 12:32:41
像Office助手那样的精灵软件如何实现?
关键是:如何实现像Office (XP)中那样的透明窗体。
还有,如何让它和应用程序本身交换信息呢?通过多线程吗?
有没有类似的组件/控件?
据说,MS Agent可以,但是那些角色能自己制作吗?
2002-03-24
Jack Lucifer
...全文
323
9
打赏
收藏
请问:如何做那种桌面精灵的软件?
像Office助手那样的精灵软件如何实现? 关键是:如何实现像Office (XP)中那样的透明窗体。 还有,如何让它和应用程序本身交换信息呢?通过多线程吗? 有没有类似的组件/控件? 据说,MS Agent可以,但是那些角色能自己制作吗? 2002-03-24 Jack Lucifer
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aawolf
2002-03-26
打赏
举报
回复
一般用AGENT就可以了,另外你也可以编辑你自己的角色,另外网上页有不少的角色文件。
如果你想自己做,那就自己做个不规则窗体,不要用DirectX,DirectX窗口并不是真正的窗口,它等于在你的桌面上开天窗,直接写显存去了,控制分辨率和调色板都很麻烦。这种低速刷新的要求下,一般的GDI就可以了。
woainihaha
2002-03-26
打赏
举报
回复
哈哈,不要使用DirectX,除非你能很好的控制他!就用窗体就可以了,一般来说这种动画幅面不大,而且更新频率不高,使用Canvas就足够了,而且还容易控制!可以在项目内新建一个无标题和边框的窗体,并设置成顶部就可以了,这样可以随你的程序出现和消失,响应也比较容易!但是这种精灵只能使用于本程序内部!如果要制作能运行于其他程序之间的的精灵,最好定制DLL文件,再调用,之间采用消息机制,我觉得Agent也是采用这种办法!但是这种办法的缺点是:能响应的动作得事先写好,在调用的时候不能出错,不能自己随时定制想要的东西!
举个例子,你在使用Agent的时候,没有办法使用你想要的动作,也无法添加更多的动作,就那么几种:高兴,查找,迷惑…… 不过大多数情况下,你可以不用理会这些事情,你可以自己定制一个动作,然后使用Agent的任意一个动作(比如高兴)来调用他!如果你没有特殊的要求的话,还是使用Agent吧!一般来说他的动作函数的数目是够用了!
呵呵,不过无论采用那种办法,都要捕获背景的改变(Agent例外),这是一个很烦的问题,当然还有定制精灵的重绘!
呵呵,我胡说八道几句
JackLucifer
2002-03-26
打赏
举报
回复
那么是用DirectX直接在桌面上作画吗?
关于这个我有一点不太确定:
我可以直接在桌面上用DirectX作画,但如果此时得桌面是被其他应用程序占据,
比如说:某个应用程序被最大化,又或者某个全屏得游戏在运行,
此时,DirectX还是能够将精灵图象画在最上面吗?
又该如何避免和全屏幕游戏抢桌面的问题呢?
还有,我想让这个精灵在程序结束后依然可以保持运行,
那么是否得要做两个exe文件,并且在它们之间建立通信呢?
2002-03-26
Jack Lucifer
zhangchao_7622
2002-03-26
打赏
举报
回复
我的透明窗体代码:
TCanvas *dtCanvas = new TCanvas;
dtCanvas->Handle=GetDC(0);
Graphics::TBitmap *bitmap=new Graphics::TBitmap;
bitmap->Width=Width;
bitmap->Height=Height;
int nColors=GetDeviceCaps(Canvas->Handle,SIZEPALETTE);
LOGPALETTE* logPal=(LOGPALETTE*)new Byte[sizeof(LOGPALETTE)+(nColors-1)*sizeof(PALETTEENTRY)];
logPal->palVersion=0x300;
logPal->palNumEntries=(Word)nColors;
GetSystemPaletteEntries(Canvas->Handle,0,nColors,logPal->palPalEntry);
bitmap->Palette=CreatePalette(logPal);
delete[] logPal;
TRect src=BoundsRect;
TRect dest=Rect(0,0,Width,Height);
bitmap->Canvas->CopyRect(dest,dtCanvas,src);
ImageScreen->Picture->Bitmap =bitmap;
delete bitmap;
delete dtCanvas;
woainihaha
2002-03-25
打赏
举报
回复
对了,忘了告诉你,之间的通信最好采用消息机制!这样系统占用资源较少,而且比较容易实现动态,不用采用时钟控件!建议你在制作之前把要执行的动作作好字典(因为动作相对较多),当然用Agent就不用考虑这些了!
woainihaha
2002-03-25
打赏
举报
回复
说句实话,用Agent很简单,但是制作的动画却很难!!也不支持ALPHA通道!不如自己做,但是工作量很大!我做过类似的程序,工作量很大,真正处理起来比想象中难!呵呵,选择什么看你自己的!至于图象处理和透明的效果都很容易,很多图象处理的书上都有,去看看吧!
JackLucifer
2002-03-25
打赏
举报
回复
可以利用Agent创建自己的精灵角色吗?
又该如何创建呢?
在3/25,也就是今天BCB组的帖子居然暴涨。
而且时间段比较集中。
难道大家都是在今天才有问题的吗?
笑话而已。:-)
2002-03-25
Jack Lucifer
dycdyc123
2002-03-25
打赏
举报
回复
MSAgent 是可以的!
做一个Agent 文件!
shymeng
2002-03-25
打赏
举报
回复
搜贴Agent
桌面
精灵
软件
的VC源码
桌面
精灵
--
桌面
上乱跑的小人的VC源码,编程开发很有借鉴意义。
桌面
精灵
-
桌面
精灵
桌面
精灵
,美化
桌面
的新型
软件
工具 一款可以让你的
桌面
美丽的
软件
C#实现的动态
桌面
软件
-
桌面
精灵
使用C#实现的动态
桌面
,可以在
桌面
顶层播放透明flash(自动将flash底色透明),画面在最顶层,持续动态显示,不影响对其他程序...可以拓展成
桌面
宠物
软件
等 文档为rar压缩包,内涵全部C#程序工程文件及最终的EXE文件。
魔法少女小圆
桌面
精灵
v1.0.1绿色版
魔法少女小圆
桌面
精灵
是一款
桌面
培养萝莉
精灵
软件
,能够培养
桌面
精灵
,
软件
可以让你拥有《魔法少女小圆》五大动漫主角的
桌面
精灵
,包括鹿目圆、晓美焰、美树沙耶香、巴麻美和佐仓杏子五个不同类型的可爱萝莉,非常的...
张起灵智能
桌面
精灵
,会怕哦
张起灵的智能
桌面
精灵
,会爬的。张起灵的智能
桌面
精灵
,会爬的。
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章