【继续讨论】如何让开始菜单在指定位置弹出?

Alzzl 2006-11-09 01:03:17
虽然这个问题有很多人认为实现它并没有什么意义,但是我们可以借此更深入的了解下windows

这个问题以前有人问过,可是在完全讨论出结果之前楼主就匆忙结贴了,
于是开新贴继续讨论该问题

先总结下上次讨论出的结果:
1.开始菜单并非简单的窗体,每次点击开始按钮后菜单窗体都会被重置,movewindow后直接showwindow会出现如下问题:
「开始」菜单 状态下:可以显示,但是菜单条目上没有激活状态
经典的「开始」菜单 状态下:无法显示,该状态下,开始菜单basebar类的尺寸为0所以看不到显示出来的窗体,只要事先设定该窗体的尺寸便能正常显示,但是由于菜单项目是可以增减的,所以无法准确计算出尺寸
2.向开始按钮发送bm_click消息,让系统先对开始菜单进行初始化(windows在这期间做了什么我暂时还不知道),再对显示出来的窗体movewindow(缺点很明显,毕竟是在显示出来后再改的位置)
3.有人提出开始菜单其实只是菜单而不是窗体,理由是在explorer。exe的资源里发现了开始菜单,可是,我们已经找到了实实在在的开始菜单窗体“「开始」菜单”和“basebar”,而且我也试着在可疑的窗体上用getmenu,但是都没有发现有菜单存在。
...全文
250 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
可西哥 2006-11-20
  • 打赏
  • 举报
回复
继续mark
cangwu_lee 2006-11-16
  • 打赏
  • 举报
回复
可以么?

hpygzhx520 2006-11-16
  • 打赏
  • 举报
回复
能够找到开始按钮,也能移走,但不会显示到移动目标处,发送按键消息也无效了
yunyu97 2006-11-13
  • 打赏
  • 举报
回复
讨论这些没有什么含义,如果能够找到开始按钮,直接移动按钮到希望的位置,然后发送按键消息,这样就可以显示在希望显示的地方,然后再将按钮移动回去就好了。在没有源代码的情况下讨论windows底层机制不如去看看Linux的内核。
zq972 2006-11-13
  • 打赏
  • 举报
回复
帮你UP一下
Alzzl 2006-11-12
  • 打赏
  • 举报
回复
自己顶

1,486

社区成员

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

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