Вниз
Скачать: CL | DM;

PopupMenu   Найти похожие ветки 

← →
Handle ©   (2006-11-17 11:49) [0]

Делаю собственную орисовку PopupMenu, возможно ли определить координаты ARect.Left глобально, то есть относительно экрана?

procedure TForm1.AdvancedDrawItems(Sender: TObject;
 ACanvas: TCanvas; ARect: TRect; State: TOwnerDrawState);
var
 PTextRect: TRect;
begin
 ARect.Left:= 20;
 ACanvas.FillRect(ARect);
 if odSelected in State then
 begin
   ACanvas.Pen.Color:= clHighlight;
   ACanvas.Brush.Color:= clHighlight;
   ACanvas.Rectangle(ARect);
  // ShowToolTipHint( );
 end else
 begin
    ACanvas.Font.Color:= clWhite;
 end;
 PTextRect:= Rect(ARect.Left + 3, ARect.Top + 2, ARect.Right - 22, ARect.Bottom);
 DrawText(ACanvas.Handle,PChar((Sender as TMenuItem).Caption),
   Length((Sender as TMenuItem).Caption), PTextRect, DT_LEFT);
 ImageList1.Draw(ACanvas, 1, ARect.Top + 2,(Sender as TMenuItem).ImageIndex, true);
end;


← →
clickmaker ©   (2006-11-17 12:05) [1]

ClientToScreen()


← →
Handle ©   (2006-11-17 12:15) [2]


> clickmaker ©   (17.11.06 12:05) [1]


А как насчет SubItems или если общая высота всех пунктов больше Screen.Height?


← →
clickmaker ©   (2006-11-17 12:32) [3]


> [2] Handle ©   (17.11.06 12:15)

а в чем проблема, собственно?


← →
Handle ©   (2006-11-17 12:39) [4]

cl
> ickmaker ©   (17.11.06 12:32) [3]


Проблема собственно может показаться глупой, хочется показывать хинты используя TOOLTIPS_CLASS, сейчас делаю
if odSelected in State then
 ShowToolTipHint(Mouse.CursorPos);

но чего то мне это не очень нравиться, хочу позиционировать относительно ARect.


← →
clickmaker ©   (2006-11-17 12:42) [5]

ну так, если пункт стал выделенным, значит, он уже на экране... Разве не получается взять его Rect, ClientToScreen его и показать хинт?


← →
Handle ©   (2006-11-17 13:27) [6]


> clickmaker ©   (17.11.06 12:42) [5]


Спасибо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
2-1166421292
Chelovek
2006-12-18 08:54
2007.01.07
Окна MDI.


15-1166418362
sl8er
2006-12-18 08:06
2007.01.07
StrPos в Oracle


2-1166371759
sinus
2006-12-17 19:09
2007.01.07
рисование иконки в Statusbar


15-1166392740
AntiUser
2006-12-18 00:59
2007.01.07
Если бы все поумнели...


2-1166528410
hgd
2006-12-19 14:40
2007.01.07
Перевод кода из VB




   Наверх