虽然这个问题有很多人认为实现它并没有什么意义,但是我们可以借此更深入的了解下windows这个问题以前有人问过,可是在完全讨论出结果之前楼主就匆忙结贴了,
于是开新贴继续讨论该问题先总结下上次讨论出的结果:
1.开始菜单并非简单的窗体,每次点击开始按钮后菜单窗体都会被重置,movewindow后直接showwindow会出现如下问题:
「开始」菜单 状态下:可以显示,但是菜单条目上没有激活状态
经典的「开始」菜单 状态下:无法显示,该状态下,开始菜单basebar类的尺寸为0所以看不到显示出来的窗体,只要事先设定该窗体的尺寸便能正常显示,但是由于菜单项目是可以增减的,所以无法准确计算出尺寸
2.向开始按钮发送bm_click消息,让系统先对开始菜单进行初始化(windows在这期间做了什么我暂时还不知道),再对显示出来的窗体movewindow(缺点很明显,毕竟是在显示出来后再改的位置)
3.有人提出开始菜单其实只是菜单而不是窗体,理由是在explorer。exe的资源里发现了开始菜单,可是,我们已经找到了实实在在的开始菜单窗体“「开始」菜单”和“basebar”,而且我也试着在可疑的窗体上用getmenu,但是都没有发现有菜单存在。