Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Создание справочника Windows API

Страница: 1 |

 

  Вопрос: PtInRect Добавлено: 16.01.04 22:37  

Автор вопроса:  Sharp | Web-сайт: sharpc.livejournal.com | ICQ: 216865379 

Имя функции: PtInrect

Библиотека: User32

Требования: Windows NT 3.1 >, Windows 95 >

Описание: Функция PtInRect определяет, лиже ли точка в прямоугольнике. Точка считается лежащей в прямоугольнике, если она находится на левой или на верхней стороне либо внутри прямоугольника. Точка, лежащая на правой или нижней стороне прямоугольника, считается не принадлежащей прямоугольнику.

Схожие функции: SetRect, PtInRegion

Объявление: Declare Function PtInRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Параметры:

- lpRect

Указатель на структуру типа RECT, содержащую прямоугольник

- x

Координата x точки

- y

Координата y точки

Возвращаемые значения:

Если точка лежит внутри прямоугольника, возвращаемое значение ненулевое.

Если точка не лежит внутри прямоугольника, возвращаемое значение 0. Для получения расширенной информации об ошибках используйте GetLastError

Пример(ы): Точка в...

Private Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Private Declare Function PtInRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Private Declare Function PtInRegion Lib "gdi32" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long

Private Declare Function CreateEllipticRgnIndirect Lib "gdi32" (lpRect As RECT) As Long

Private Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Sub Form_Load()

Dim mRGN As Long, R As RECT, x As Long, y As Long

'Установка графического режима для перерисовки

Me.AutoRedraw = True

'Установка прямоугольника

SetRect R, 0, 0, 50, 50

'Создание эллиптического региона

mRGN = CreateEllipticRgnIndirect(R)

For x = R.Left To R.Right

For y = R.Top To R.Bottom

'Если точка внутри региона, рисуем зеленую точку

If PtInRegion(mRGN, x, y) <> 0 Then

'Рисуем зеленую точку

SetPixelV Me.hdc, x, y, vbGreen

ElseIf PtInRect(R, x, y) <> 0 Then

'Рисуем красную точку

SetPixelV Me.hdc, x, y, vbRed

End If

Next y

Next x

'Удаляем регион

DeleteObject mRGN

End Sub

.NET - заменено: Информация отсутствует

.NET - Пример: Нет примера

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 Иван



Администратор

ICQ: 147688925 

Вопросов: 24
Ответов: 708
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 17.01.04 07:50

Пасиба!

Вот скоро в том разделе откроется online добавление функций.

Ответить

Номер ответа: 2
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #2 Добавлено: 17.01.04 18:10

Блин, скорее бы... ;)

Ответить

Номер ответа: 3
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #3
Добавлено: 19.01.04 17:10

хм.... ну пример взять из API - GUIDE ... только вот объясните мне тупому .. зачем .. надо .. делать то что уже сделано?

...только не думайте что я придераюсь .. но переводить всё таки... надо ... хотя бы ... как в примере... из API-GUIDE...

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 19.01.04 18:58
Т.е. как это - переводить, как в примере? Нельзя ли изложить поподробнее, попонятнее и без такого числа троеточий?

Ответить

Номер ответа: 5
Автор ответа:
 MYSTERIOR



ICQ: 227369659 

Вопросов: 31
Ответов: 96
 Web-сайт: XXX
 Профиль | | #5
Добавлено: 19.01.04 19:34

Не... ИМХО сей справочник по АПИ штука нужная!

Ответить

Номер ответа: 6
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #6
Добавлено: 20.01.04 11:32

"'Установка прямоугольника

SetRect R, 0, 0, 50, 50"

означает что у нас есть прямоугольник и мы его куда то ставим?... я думаю.. лучше тут написать именно... как в API-GUIDE ... "Установка координат

прямоугольника"

"Координата x точки" ... как то не по русски... можно сменить на "Координаты точки "X" "

"'Удаляем регион" ... в оригинальной версии написано "Удаляем наш регион" то бишь нехватает конкретики.... можно было написать и так ... "Удаляем созданный выше регион"... или "Удаляем регион созданный функцией CreateEllipticRgnIndirect"

П.С: вот такой я придирчевый...

Ответить

Номер ответа: 7
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #7
Добавлено: 20.01.04 11:35

"'Установка прямоугольника

SetRect R, 0, 0, 50, 50"

означает что у нас есть прямоугольник и мы его куда то ставим?... я думаю.. лучше тут написать именно... как в API-GUIDE ... "Установка координат

прямоугольника"

"Координата x точки" ... как то не по русски... можно сменить на "Координаты точки "X" "

"'Удаляем регион" ... в оригинальной версии написано "Удаляем наш регион" то бишь нехватает конкретики.... можно было написать и так ... "Удаляем созданный выше регион"... или "Удаляем регион созданный функцией CreateEllipticRgnIndirect"

П.С: вот такой я придирчевый...

Ответить

Номер ответа: 8
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 20.01.04 13:39
> можно сменить на "Координаты точки "X" "
Тогда лучще "Абсцисса точки". Только, возможно, не все поймут..

Ответить

Номер ответа: 9
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #9
Добавлено: 20.01.04 21:02

"- lpRect

Указатель на структуру типа RECT, содержащую прямоугольник"

Она не содержит прямоугольник.... так как прямоугольник в данном случаи будет объект... а содержит всего лишь его кординаты ....

Вот поэтому .. я предпочитаю читать ... оригенал... не в обиду... но просто в програмировании важна конкретика..

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 21.01.04 18:48
2Fallout: все это, конечно, правильные замечания, однако смысл не теряется. И большинство программеров, представляющих себе, что такое WinAPI, мои сокращения поймут.

Ответить

Номер ответа: 11
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #11
Добавлено: 22.01.04 20:58

+)) да програмеры вообще сообразительные...

Ответить

Номер ответа: 12
Автор ответа:
 POMAH



ICQ: 223-574-928 

Вопросов: 0
Ответов: 16
 Профиль | | #12 Добавлено: 23.01.04 10:30
2Sharp: все классно! Но один нюансик. Если ты рассматриваешь функцию и описываешь ее параметры, то неплохо было бы остановиться на них поподробнее. Например, lpRect - указатель на структуру типа RECT. Неплохо было бы немного рассказать и об этой структуре!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам