![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите нарисовать прямоугольник 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