Форум: "Начинающим";
Текущий архив: 2016.04.03;
Скачать: [xml.tar.bz2];
ВнизПомогите нарисовать прямоугольник WinAPI Найти похожие ветки
← →
MA (2014-09-07 22:40) [0]Здрамствуйте. Нужно нарисовать прямоугольник, что бы позиция верхнего и нижнего правого угла совподала с позицией курсора на форме.
В VCL с этим проблем нет, использую Tbitmap и BitBlt , чтоб не мерцало. А в WinApi незнаю как.
← →
KilkennyCat © (2014-09-08 06:39) [1]
> позиция верхнего и нижнего правого угла совподала с позицией курсора
это какой-то ненашенский прямоугольник. у нашенских либо одно, либо другое. впрочем, можно нарисовать еще один курсор.
>использую Tbitmap и BitBlt
> А в WinApi незнаю как.
битблт и есть WinAPI
← →
Дмитрий СС (2014-09-08 08:26) [2]CreateDC, CreateBitmat, SelectObject, Rectangle, BitBlt.
Кажется так
← →
Inovet © (2014-09-08 09:40) [3]> [1] KilkennyCat © (08.09.14 06:39)
> это какой-то ненашенский прямоугольник
Это прямоугольный треугольник.
← →
DVM © (2014-09-08 23:19) [4]
> MA (07.09.14 22:40)
> А в WinApi незнаю как.
Зачем нужно именно WinApi? Цель какая преследуется?
← →
MA (2014-09-09 18:07) [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 незнаю.
Помогить пожалуйста, желательно с примерчиком.
Спасибо!
← →
brother © (2014-09-09 18:12) [6]> Buf.Width := Form.Width;
> Buf.Height := Form.Height;
Form.ClientWidth
Form.ClientHeight
FormDestroy:
begin
byf.free;
end;
← →
MA (2014-09-09 18:20) [7]
> 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:29) [8]Вам смешно? А зря...
← →
MBo © (2014-09-10 08:20) [9]в WinAPI прямоугольник рисуется функцией Rectangle (FillRect и т.д.).
В программах на кондовом низком уровне это делается при обработке сообщения WM_PAINT внутри BeginPaint/EndPaint. Пример есть в MSDN по функции Rectangle
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.04.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.001 c