我下载一个WindowBlinds,开始以为字的菜单是用ModifyMenu,然后在WM_DRAWITEM,
经一DebugSpyAPI,得知它根本没有调用ModifyMenu,或SetMenuItemInof类的函数,
用Spy++也没有WM_DRAWITEM消息,这就奇怪了。它用的菜单用TrackPopupMenu(),它调用了GetMenuItemRect()函数,难道菜单弹出后还能画菜单吗?各位高手请解答,分数不够再加.==================================
http://www.my66.com
[email protected]

解决方案 »

  1.   

    kao...对菜单进行子类化?那得对菜单了解多深呀...
      

  2.   

    呵呵..很遗憾...CSDN上对界面感兴趣的不是很多也...www.goodui.com的站长应该是个高手...可惜没在CSDN上玩...
      

  3.   

    经确认WindowBlinds没有拦截TrackPopupMenuEx,
    BOOL (WINAPI *pfTrackPopupMenu)(HMENU hMenu,UINT uFlags,int x,int y,HWND hWnd,LPTPMPARAMS lptpm); pfTrackPopupMenu=GetProcAddress(GetModuleHandle("user32.dll"),"TrackPopupMenuEx");
    p=pfTrackPopupMenu;
    if(!pfTrackPopupMenu)
    {
    MessageBox(0,"false","a",0);
    return 0;
    }
    HMENU hMenu=GetSubMenu(LoadMenu(GetModuleHandle(NULL),"MENU2"),0);
    memset(&rc,0,sizeof(rc));
        pfTrackPopupMenu(hMenu,TPM_LEFTALIGN,0,0,hWnd,NULL);
    WindowBlinds还有机会画我的菜单,奇怪
    高手作答啊。
    ==================================
    http://www.my66.com
    [email protected]