Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1410115223
MA
2014-09-07 22:40
2016.04.03
Помогите нарисовать прямоугольник WinAPI


15-1437982657
Pavia
2015-07-27 10:37
2016.04.03
диграммы из UML


15-1437946204
Юрий
2015-07-27 00:30
2016.04.03
С днем рождения ! 27 июля 2015 понедельник


2-1409747178
Санек
2014-09-03 16:26
2016.04.03
Proxy подключение


15-1437773402
Юрий
2015-07-25 00:30
2016.04.03
С днем рождения ! 25 июля 2015 суббота





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский