你查WM_DRAWITEM吧,我猜实际上就是WM_DRAWITEM,只不过加了一个CN_BASE ,

解决方案 »

  1.   

    兄弟就是因为加了这个CN_BASE我才找不到哪发了这个消息呀,我在Delphi目录下查找所有文件,也没找到有用的消息
      

  2.   

    呵呵,实际上就是WM_DRAWITEM
    看这里:(是在Controls.pas里)
    procedure TWinControl.WMDrawItem(var Message: TWMDrawItem);
    begin
      if not DoControlMsg(Message.DrawItemStruct^.CtlID, Message) then inherited;
    end;function DoControlMsg(ControlHandle: HWnd; var Message): Boolean;
    var
      Control: TWinControl;
    begin
      DoControlMsg := False;
      Control := FindControl(ControlHandle);
      if Control <> nil then
        with TMessage(Message) do
        begin
          Result := Control.Perform(Msg + CN_BASE, WParam, LParam);//注意这里,是Msg+CN_BASE,也就是WM_DRAWITE+CN_BASE
          DoControlMsg := True;
        end;
    end;
      

  3.   

    BS,高手!没想这个怪东东在Perform中用了一个Msg+CN_BASE,害得我找了半天!!!谢谢,给分。