Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.04.03;
Скачать: CL | DM;

Вниз

Помогите нарисовать прямоугольник 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.003 c
15-1437763456
ВладОшин
2015-07-24 21:44
2016.04.03
Форматирование кода, простая программка, ищу


2-1410257863
Dennis I. Komarov
2014-09-09 14:17
2016.04.03
console


4-1276760569
sniknik
2010-06-17 11:42
2016.04.03
Можно ли узнать имя родительского процесса в 64 разрядной винде?


2-1409913538
lewka
2014-09-05 14:38
2016.04.03
Действие при нажатии на кнопку на странице в WebBrowser1


15-1437765873
cherniy_plash
2015-07-24 22:24
2016.04.03
Дизайн сайта