请问各位高手,帮忙看下这两句,为什么我的GetSubMenu方法总是返回0呢?IntPtr hMainMenu = GetSystemMenu(mwh,false); // hMainMenu:我得到了主菜单的句柄,而且保证是正确的
IntPtr hHelp = GetSubMenu(hMainMenu, 2); //本来希望得到Help子菜单的句柄,却返回了0。Help子菜单是一个下拉菜单,他的位置是2。我想了2天了,没找到问题在哪里,请大家帮我看看,我哪里写错了?谢谢了!!

解决方案 »

  1.   

    Help的位置没有错,他排在第3个,所以我写的2。
      

  2.   

    nPos:激活下拉式菜单或子菜单的菜单项相对于零的位置
    对于第一个菜单项,位置值开始为0。
    GetSubMenu(hMainMenu,1); 
      

  3.   

    对呀,由于Help是第三个菜单项,所以位置是2哦:GetSubMenu(hMainMenu, 2)
      

  4.   

    前面的代码没有啥,就是
    (1)获得主窗体句柄:mwh;
    (2)获得主菜单句柄:hMainMenu;
    (3)获得子菜单Help的句柄了。
    前两步我保证是对的,都得到了相应的句柄了。IntPtr hMainMenu = GetSystemMenu(mwh,false); // hMainMenu:我得到了主菜单的句柄,而且保证是正确的 
    IntPtr hHelp = GetSubMenu(hMainMenu, 2); //本来希望得到Help子菜单的句柄,却返回了0。Help子菜单是一个下拉菜单,他的位置是2。 
      

  5.   

    GetSystemMenu 是获取系统菜单的  hMainMenu:"IntPtr hMainMenu = GetSystemMenu(mwh,false); // hMainMenu:我得到了主菜单的句柄,而且保证是正确的  
    " 这么绝对的话 可惜是错的