Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2010, 21:16   #1
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию Нарисовать в окне

В общем у меня такая проблема. Есть чужая программа, и у нее есть окно. Мне нужно получить канву этого окна и нарисовать картинку в этой канве. Как это можно реализовать?
alexprey вне форума Ответить с цитированием
Старый 06.06.2010, 23:07   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Нарисовать можно вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
dc : hDC;
Window : HWND;
buff : PAnsiChar;
begin
Window := FindWindow(nil, 'Uninstall Tool 2.9.6');
dc := GetWindowDC(Window);
Rectangle (dc, 10, 10, 110, 110) ;
ReleaseDC(Window, dc);
end;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 07.06.2010, 05:38   #3
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

или еще как вариант:
Код:
procedure TForm3.Button1Click(Sender: TObject);
var
  Window: HWND;
  Canva: TCanvas;
begin
  Window:= FindWindow(nil, 'Form1');
  if Window <> 0 then
  begin
    Canva:= TCanvas.Create;
    Canva.Handle:= GetDC(Window);

    Canva.TextOut(50,50, 'Victory');  // пишем текст на полученой канве
    Canva.Draw(10,10,Image1.Picture.Graphic); // рисуем картинку на полученой канве
  end;
end;
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 07.06.2010, 12:24   #4
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

MaxNik2009, а он точно получит окно, а не кнопку в панели?
alexprey вне форума Ответить с цитированием
Старый 07.06.2010, 12:28   #5
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

если будешь искать hande кнопки, то и цеплятся будет к кнопке.
Поясню немного:
Код:
  Window:= FindWindow(nil, 'Form1'); // ищем окно!!! с названием  Form1
  if Window <> 0 then  // если окно найдено
  begin 
    Canva:= TCanvas.Create;
    Canva.Handle:= GetDC(Window); // цепляемся к канве найденого окна
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 07.06.2010, 14:01   #6
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

А если название кнопки совпадает с окном?
alexprey вне форума Ответить с цитированием
Старый 07.06.2010, 14:05   #7
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

Цитата:
Сообщение от alexprey Посмотреть сообщение
А если название кнопки совпадает с окном?
тогда ищи окно по классу:
Код:
FindWindow(КлассОкна, НазваниеОкна)
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 07.06.2010, 21:28   #8
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

Класс Окна - писать TForm?
alexprey вне форума Ответить с цитированием
Старый 07.06.2010, 21:36   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

введите тот который вас нужен.(WinSight, Spy++)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.06.2010, 21:38   #10
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Кнопку нельзя найти при помощи FindWindow. Элементы ищутся при помощи FindWindowEX
TwiX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать в окне abog Общие вопросы C/C++ 1 26.02.2010 16:46
Окно в окне TOJluK Общие вопросы Delphi 12 17.10.2009 14:22
окно в окне bbk_serg Общие вопросы Delphi 2 08.07.2009 15:18
в новом окне jone Общие вопросы Delphi 1 05.10.2008 12:25
кнопки в окне mahsus Общие вопросы .NET 0 29.02.2008 12:42