Страница 1 из 1
OnScreen Display
Добавлено: 18 май 2005, 22:41
sanek1998
Кто-нибудь знает как реализовать OnScreen Display(Как в JetAudio)?
То есть на экране поверх всех окон выводится надпись или картинка не мешающая работать мышью
Добавлено: 20 май 2005, 09:00
LAngel
Примерно так?
Код: Выделить всё
procedure drawonscreen;
var
SC: TCanvas;
begin
SC := TCanvas.Create;
try
SC.Handle := GetDC(0);
SC.Rectangle(10,10,100,100);
finally
SC.Free;
end;
end;
Добавлено: 21 май 2005, 19:50
sanek1998
Это рисовать на экране, так не пойдет (водишь мышью-картинка стирается). В JetAudio (как я понял), OSD - это полупрозрачная форма (OSD там работает только в Win2000/XP) и сквозь нее можно кликать, выделять и т.д.
Добавлено: 23 май 2005, 15:24
LAngel
ну тогда это надо копать сообщения. Что-то на ум приходит WM_HITTEST
поищи по поисковикам

Добавлено: 23 май 2005, 16:18
Eugie
Добавлено: 26 май 2005, 16:34
sanek1998
ну тогда это надо копать сообщения. Что-то на ум приходит WM_HITTEST
Я попробовал вот так:
Код: Выделить всё
private
procedure WMNCHitTest(var M: TWMNCHitTest);
message wm_NCHitTest;
................procedure TForm2.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htTRANSPARENT;
end;
end.
Но это работает только для окон моего же приложения, а нужно чтобы и с чужими окнами можно было работать! Как быть?