Главная страница
    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.002 c
15-1438084672
Pazitron_Brain
2015-07-28 14:57
2016.04.03
Почему рубрику "Потрепаться" переименовали в "Прочее"?


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


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


15-1436809622
Dimka Maslov
2015-07-13 20:47
2016.04.03
А вот почему бы


15-1438032604
Юрий
2015-07-28 00:30
2016.04.03
С днем рождения ! 28 июля 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский