在自绘菜单过程中,处理WM_DRAWITEM和WM_MEASUREITEM消息时,由LParam参数可以得到PDrawItemStruct和PMeasureItemStruct结构,通过这两个结构,如何得到TMenuItemInfo?
部分代码如下:
function TContextMenu.HandleMenuMsg2(uMsg: UINT; wParam, lParam: Integer; var lpResult: Integer): HResult;
var
  pdis: PDrawItemStruct;
  R: TRect;
begin
  case uMsg of
    WM_DRAWITEM :
    begin
      pdis := PDrawItemStruct(LParam);
      这里我想通过pdis取得MenuItem的信息再进行处理,请问如何做,GetMenuItemInfo以及GetMenuString都取不到正确的数据
    end;
    WM_MEASUREITEM:
    begin
      这里我想通过PMeasureItemStruct取得MenuItem的信息再进行计算,请问如何做
      PMeasureItemStruct(LParam).itemWidth  := sz.cx;
      PMeasureItemStruct(LParam).itemHeight := sz.cy+2;
    end;
  end;
end;