Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите нарисовать прямоугольник WinAPI


MA ©   (2014-09-07 22:40:00) 

Здрамствуйте. Нужно нарисовать прямоугольник, что бы позиция верхнего и нижнего правого угла совподала с позицией курсора на форме.
В VCL с этим проблем нет, использую Tbitmap и BitBlt , чтоб не мерцало. А в WinApi незнаю как.


MBo   (2014-09-10 08:20:00) [1]

в WinAPI прямоугольник рисуется функцией Rectangle (FillRect и т.д.).
В программах на кондовом низком уровне это делается при обработке сообщения WM_PAINT внутри BeginPaint/EndPaint. Пример есть в MSDN по функции Rectangle


brother   (2014-09-09 18:29:00) [2]

Вам смешно? А зря...


MA   (2014-09-09 18:20:00) [3]


> brother ©   (09.09.14 18:12) [6]
> >  Buf.Width := Form.Width;> Buf.Height := Form.Height;
>  Form.ClientWidthForm.ClientHeightFormDestroy:begin  byf.
> free;end;


Ха-ха
> Рисовать в VCL нет проблем. Пример с потолка:


brother   (2014-09-09 18:12:00) [4]

>  Buf.Width := Form.Width;
> Buf.Height := Form.Height;  

Form.ClientWidth
Form.ClientHeight

FormDestroy:
begin
 byf.free;
end;


MA   (2014-09-09 18:07:00) [5]


> Зачем нужно именно WinApi? Цель какая преследуется?
>
>
>

Научитя рсовать на api.

Рисовать в VCL нет проблем. Пример с потолка:

uses
 Windows, Classes, Graphics , Controls, Forms;

var
 Buf : TBitmap;

procedure TForm.FormCreate(Sender: TObject);
begin
 Buf := TBitmap.Create;
end;

procedure TForm.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
  Buf.Width := Form.Width;
 Buf.Height := Form.Height;  

  Buf.Canvas.Pen.Color := clBlack;
 Buf.Canvas.Brush.Color := clBlack;
 Buf.Canvas.Rectangle(0, 0, Buf.Width, Buf.Height);

 Buff.Canvas.Pen.Color := Color;
 Buf.Canvas.Brush.Color := Color;
 Buf.Canvas.Rectangle(1, 1,  Mouse????.X, Mouse????.Y);
end;


Buf := TBitmap.Create; можно и безнего,но так начинает мерцать.

А что и как использовать на API незнаю.
Помогить пожалуйста, желательно с примерчиком.
Спасибо!


DVM   (2014-09-08 23:19:00) [6]


> MA   (07.09.14 22:40) 


>  А в WinApi незнаю как.

Зачем нужно именно WinApi? Цель какая преследуется?


Inovet   (2014-09-08 09:40:00) [7]

> [1] KilkennyCat ©   (08.09.14 06:39)
> это какой-то ненашенский прямоугольник

Это прямоугольный треугольник.


Дмитрий СС   (2014-09-08 08:26:00) [8]

CreateDC, CreateBitmat, SelectObject, Rectangle, BitBlt.
Кажется так


KilkennyCat   (2014-09-08 06:39:00) [9]


> позиция верхнего и нижнего правого угла совподала с позицией курсора


это какой-то ненашенский прямоугольник. у нашенских либо одно, либо другое. впрочем, можно нарисовать еще один курсор.


>использую Tbitmap и BitBlt
> А в WinApi незнаю как.

битблт  и есть WinAPI


Наверх

Титульная страница Поиск, карта сайта Написать письмо