弹出式菜单我已基本弄懂。但对系统菜单和窗体中的主菜单搞不清楚。
我发现Winme和Win2x系统菜单和主菜单有所不同。通过钩子我能捕捉Win2x的系统菜单和主菜单的创建消息,但不能捕捉WinMe的系统菜单和主菜单的创建消息。主菜单到底有没有句柄。

解决方案 »

  1.   

    菜单创建过程在Windows系列系统中应该是一样的吧!
      

  2.   

    没错,菜单应该是一个特殊的窗体,都有句柄。菜单的类名是#32768,通过CBT钩子HCBT_createwnd,我能捕捉到Win2x窗体系统菜单的创建过程,但不能捕捉到WinMe系统菜单的创建过程。我不知我的钩子是否设置正确,CBTHook:=SetWindowsHookEx(WH_CBT,@theCBTHookProc, 0, GetCurrentThreadId);
    我看过一个第三方控件源码,它是在一个非可视组件的重载过程Loaded中进行设置(如上),但它却能捕捉到WinMe系统菜单的创建过程。我现在是焦头烂额了,期待高手的出现。
      

  3.   

    问题自己解决。
    答案是Win9X系统中窗体的主菜单和系统菜单的确没有创建过程,好像是与生俱来就有了,而Win2x、WinXP中窗体的主菜单和系统菜单有创建过程。