要做一个权限管理的模块,需要控件菜单每个子菜单的点击事件。类似C++的处理方法:在一个函数截获WM_COMMAND(WindowProc中C++)处理但是C#中的
protected override void WndProc(ref Message m)不能截获WM_COMMAND,或者换句话说不知道那个函数可以截获菜单的点击事件注意这里是窗体的所有子菜单
请问:有什么好方法!!!!!

解决方案 »

  1.   

    这样啊...那就比较麻烦了.C#的大部分控件是重写了原有控件的消
    息处理函数来实现事件的;所以很多都不往主窗体发消息(比如Button).
    不过菜单倒是还是由WM_COMMAND实现的,在WndProc里也能拦截下来.但
    是仅限于标准的Windows菜单(对应System.Form.MainMenu).而烦人地
    方在于.net2.0以后添加了MenuStrip来代替老式的Menu.至于它是怎么
    实现的,处理了哪些消息就不太清楚了.如果你想在WM_COMMAND里处理菜单
    的话.就改用老式的Menu类来做菜单吧.或者你也可以反编译.net类库看下
    它的消息是怎么处理的:)