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

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

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

请赐教.
...全文
244 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧