|
#1
|
||||
|
||||
отрисовать окно
Добрый день, Мне бы нужно бы отрисовать мое окнов таск баре ,или в каком нибуть другом месте ,за ранее спасибо
|
#2
|
|||
|
|||
Отрисовка "снимка" формы в другом месте десктопа:
Код:
procedure TForm1.Button1Click(Sender: TObject); var DeskTopDC: HDc; DeskTopCanvas: TCanvas; DeskTopRect: TRect; begin DeskTopDC := GetWindowDC(GetDeskTopWindow); DeskTopCanvas := TCanvas.Create; DeskTopCanvas.Handle := DeskTopDC; DeskTopRect := Rect(20, 40, Form1.Width+20, Form1.Height+40); DeskTopCanvas.CopyRect(DeskTopRect, DeskTopCanvas, Form1.BoundsRect); ReleaseDC(GetDeskTopWindow, DeskTopDC); DeskTopCanvas.Free; end; Не забывайте делать резервные копии |
#3
|
||||
|
||||
это совершенно не то ,мне нужно отрисовать мою форму на таск баре а не нарисовать . что бы кнопочки нажимались, а не просто были нарисованными. Тоесть так как это делает виндовс медиа 11
|
#4
|
||||
|
||||
Как можно что-то отрисовать на TaskBar?
Программирование - это искусство и наш смысл жизни. |
#5
|
||||
|
||||
Можно .Посмотри как это делает Windows Media 11 когда сворачивается.
Да и прямоугольнички с кепшонами окошек то отрисовываются а значит можно и форму отрисовать ) |
#6
|
|||
|
|||
Последний мой пост в этой теме.
Цитата:
Цитата:
Точно такой же вопрос обсуждался здесь: http://www.delphikingdom.com/asp/ans...IDAnswer=48115 Не забывайте делать резервные копии Последний раз редактировалось san-46, 13.06.2008 в 07:24. |
#7
|
||||
|
||||
Ну погоди !!!
Я вот пока в деревне, домой вернусь скрин покажу может быть вы меня не так понимаете.
|
#8
|
||||
|
||||
Как и обещал
Вот скриншот Windiws Media Player 11 показать не могу (тк она для сп2 а у меня 1) НО вот скрин проги TrueLenchBar это прога отрисовывает на таск баре всякие штуки полезные например деятельность цп ,памяти опиротивной и подкачки .Вот полюбуйтесь ,а san-46 ТВЕРТИТ что нельзя ничего отрисовавать )
|
#9
|
||||
|
||||
Ммм... Где-то я видел материал на эту тему... Если вспомню и найду, скажу.
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#10
|
|||
|
|||
а ты уверен, что эти проги отрисоваваются, а не поверх сидят?
|
#11
|
||||
|
||||
Они не рисуются... И не поверх сидят... Не могу найти где я это видел. Они где-то регистрируются.
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#12
|
|||
|
|||
Приходится нарушать обет.
2 Sharky, давайте все же не путать таскбар и панель быстрого запуска - у Windows это разные окна. На снимке, который вами представлен - кнопка программы, которая помещена на панель быстрого запуска. Это можно сделать с любой программой в т.ч. и вашей. А на таскбаре "форму", как не тужтесь, отрисовать не получится, т.к. Windows при любом удобном случае его перересовывает. Теоретически можно было бы рисовать на кнопке, которая появляется в таскбаре (та, которая с картинкой и надписью) и связана с запущенной программой, но такой высший пилотаж я нигде не встречал. Не забывайте делать резервные копии |
#13
|
|||
|
|||
Возможно, что то типа того:
Код:
procedure TForm1.Button1Click(Sender: TObject); var h: HWND; begin h := FindWindow('Shell_TrayWnd',''); windows.SetParent(Button1.Handle,h); Button1.left:= 50; end; |
#14
|
||||
|
||||
Панель WMP как-то встраивается в таскбар, но не становится его потомком(Нажмите на пуск и пощелкайте Tab'ом). Во вложении она сама
|
#15
|
|||
|
|||
По-моему как написал выше ART, код
Код:
procedure TForm1.Button1Click(Sender: TObject); var h: HWND; begin h := FindWindow('Shell_TrayWnd',''); windows.SetParent(Button1.Handle,h); Button1.left:= 50; end; является правильным, просто стоит мальца подработать позиции объектов. Вот только фигово, что получается поверх всего |