在计算器的标题栏的中间加一个图标

Zark 2005-10-15 02:05:35
需求:
在计算器的标题栏的中间加一个图标,响应用户点击事件,(响应要求: 就弹个消息框吧)

实现:
语言不限.
效率不考虑.
WINDOWS平台.

请赐教.
...全文
199 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Zark 2005-10-20
五天了,看来已人尽其言,下次重开贴也许会有更多的想法.
回复
Zark 2005-10-19
飞影先生的想法有一定的道理,可以视做对psbeyond先生做法的完善, 十分感谢!

目前来看横秋先生的解法似乎比较接近题目要求,希望还能看到更佳的想法!
回复
yayaniuniu502 2005-10-18
学习
回复
Zark 2005-10-17
采用HOOK方法的确可以判定宿主窗品的移动,但我的考虑是,如果监听WM_WINPOSCHANGING,就开始动,就可能会出现自有窗口在宿主窗口移动前就会移动;如果监听WM_WINPOSCHANGED再开始动,就可能会出现移动滞后,不知 xjtuzhw先生对此有何高见?
回复
xjtuzhw 2005-10-17
psbeyond的方式应该有解的吧
采用HOOK可以对控制窗口定位,然后自动判断外加按键窗口的位置
回复
xjtuzhw 2005-10-17
其实IE的窗口也是这样的,移动过程中不显示内容,只保留初始位置图像,过程用框架显示
回复
xjtuzhw 2005-10-17
只能作成跟随模式的,或者强制锁定宿主窗口的图像显示,鼠标移动过程中只显示框架
回复
Zark 2005-10-16
正是,正是,采用处理WM_NCPAINT方法。原题要求只是在标题栏上加按钮,加窗体的确是难一些,原来出题时是想说加一个ComboBox的,考虑到可能太难,才简化为按钮。

psbeyond先生对题意的理解有出入,如果是一个独立的窗口,你是怎么使之与计算器一起移动的呢?
回复
菜牛 2005-10-16
我试过,即使在自己的窗口标题栏上加一个按钮,好像也不行。一般采用的是在WM_NCPAINT中绘制按钮的方法。好像标题栏确实无法放置其它窗体。

不过可能是我孤陋,希望你做出来后能说一下做法。
回复
psbeond 2005-10-16
psbeyond不是让你创建计算器的子窗口,是一个单独的exe,就像拼音加加那那。
回复
psbeond 2005-10-15
计算器启动时得到它的窗口句柄,自己创建一个窗口,盖在它上面。
回复
zxyjyzxyjy 2005-10-15
mark
回复
Zark 2005-10-15
横秋先生的方法是可行的,采用远程线程注入.其最终解法有两个,一个是挂自己的DLL并在DLL中实现,另一个是直接在远程线程中实现.前者是优点是省力,但多一个DLL. 后者是干净,但需要自己处理除kernal32以外各API的重定位. 横秋先生可获100点.

在相互先生的担心是有道理的,不过如果已在计算器的自己的内存空间里了,在标题栏上加按钮是有解的,此问题已被讨论过多次.

psbeyond先生的方法是不可取,因为你无法在计算器的的非用户区创建一个子窗口.如果不是子窗口,你无法让它平滑地和计算器一起移动,消失以及activate/decativated,而用保持其永远且仅在计算器上面,不被其他窗口所干扰也是异常困难的. 不过如果你能用代码实现,那仍是十分欢迎的.

谢谢诸位的指教,并继续希望再有其他的实现方法.
回复
菜牛 2005-10-15
这样可能还不能在标题栏添加按钮。
回复
vcmute 2005-10-15
http://www.vckbase.com/document/viewdoc/?id=301
回复
相关推荐
发帖
界面
创建于2007-09-28

1.5w+

社区成员

VC/MFC 界面
申请成为版主
帖子事件
创建了帖子
2005-10-15 02:05
社区公告
暂无公告