Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Регионы


Автор: Амортизатор 5.7.2005, 20:21
Один простенький вопросик. Как в MFC работать с регионами? В WinAPI все просто
Код

HRGN rg;
rg = CreatePolygonRgn(pt, 3, WINDING);

Как сделать тоже самое в мфс?

Автор: Амортизатор 5.7.2005, 21:25
Еще как можно определить, попадает ли данная точка POINT point в этот регион?

Автор: Любитель 5.7.2005, 23:01
Код

CRgn rgn;
rgn.CreatePolygonRgn(pt, 3, WINDING);
CPoint point(100,100);
if (rgn.PointInRgn(point)) {...}

Что-то типа того. (сейчас у меня VS нету, проверить не могу)

Автор: Coocky 5.7.2005, 23:05
Цитата
Как сделать тоже самое в мфс?

Код

CRgn region;
BOOL CreateRectRgn( int x1, int y1, int x2, int y2 );          
// прямоугольные регион
BOOL CreateRectRgnIndirect( LPCRECT lpRect );            
//    тоже самое только входящие данные структура CRect
BOOL CreateEllipticRgn( int x1, int y1, int x2, int y2 );       
// элипсоидный регион
BOOL CreateEllipticRgnIndirect( LPCRECT lpRect );          
// тоже самое только входящие данные структура CRect
BOOL CreatePolygonRgn( LPPOINT lpPoints, int nCount, int nMode );    
// регион из массива точек
BOOL CreatePolyPolygonRgn( LPPOINT lpPoints, LPINT lpPolyCounts, int nCount, int nPolyFillMode );
// регион из набора регионов
BOOL CreateRoundRectRgn( int x1, int y1, int x2, int y2, int x3, int y3 );
// регион с закруглеными краями





Цитата
Еще как можно определить, попадает ли данная точка POINT point в этот регион?


Код


BOOL PtInRegion(
   int x,
   int y 
) const;
BOOL PtInRegion(
   POINT point 
) const;



Добавлено @ 23:06
Опоздал от Любителя на 4 минуты...Старею..... smile

Автор: Амортизатор 5.7.2005, 23:36
Спасибо, ребята, это самое то. Только что за параметр nMode у функции CreatePolygonRgn?

Coocky - старый конь борозды не испортит smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)