Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Combine Rgn для двух прямоугольников

501
12 июля 2006 года
hell_admin
110 / / 02.10.2004
Доброго времени суток,
подксажите как решить проблему
Необходимо изобраизить окно из двух прямоугольников некторой толщины
 
Код:
_______________
| A                   |
|   -----------    |
|  |B  ----    |    |
|  |   | C |    |    |
|  |   ----     |    |
|  |_________|   |
----------------

A - первый прямоугольник
В - дырка в окне
С - Второй прямоугольник
Еще должен быть D - дырка в С - но изображать ее трудно

Я использую этот код
Код:
h = CreateWindow("Highliter","", WS_VISIBLE, 10, 10, 200, 200, NULL, NULL, hInstance,NULL);    
   
    HRGN r3 =  CreateRectRgn(0,0, 0, 0);
    HRGN r4 =  CreateRectRgn(0,0, 0, 0);
    HRGN r1 = CreateRectRgn(0,0, 200, 200);
    HRGN r2 = CreateRectRgn(12,12,198,198);
    CombineRgn(r1,r1,r2,RGN_XOR);
    int res = CombineRgn(r3,r3,r1,RGN_OR);
   
    SetWindowRgn(h,r3,true);
    MessageBox(NULL,"After First Region","",MB_OK);
   
    r1 = CreateRectRgn(20,20, 150, 150);
    r2= CreateRectRgn(25,25,130,130);
    CombineRgn(r1,r1,r2,RGN_XOR);
   
    res = CombineRgn(r4,r3,r1,RGN_OR);
    SetWindowRgn(h,r4,true);
    MessageBox(NULL,"After Second Region","",MB_OK);


Но в res = CombineRgn(r4,r3,r1,RGN_OR), функция возвращает ERROR, что не так по логике вроде все ок.
5.9K
12 июля 2006 года
Zushenskiy
161 / / 29.06.2006
[SIZE=2][SIZE=2][/SIZE]
[SIZE=2]само проще это так
[/SIZE]

HRGN r1 = CreateRectRgn(0,0, 200, 200);
HRGN r2 = CreateRectRgn(20,20,180,180);

[/SIZE][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][SIZE=2] res = CombineRgn(r1,r1,r2,RGN_XOR);

HRGN r3 = CreateRectRgn(50,50, 150, 150);
HRGN r4 = CreateRectRgn(70,70, 130, 130);

res = CombineRgn(r1,r1,r4,RGN_OR);

SetWindowRgn(hWnd,r1,[/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE][SIZE=2]);[/SIZE]
[SIZE=2][/SIZE]
[SIZE=2];)
[/SIZE]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог