Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SetWindowRgn [D6, Win95/98, WinME, Win2k, WinXP]


mike.dld ©   (2003-06-08 21:49:00) 

Использую эту ф-ю несколько раз: у меня два региона и я время от времени для окна то один делаю, то другой. Так вот, MemProof пишет, что "Unknown Win32 Error", когда я вызываю функцию второй раз для региона, который уже использовал, но, ещё раз повторюсь, я регионы поочерёдно меняю, два раза подряд один регион не задаю. В чём дело?


MBo   (2003-06-09 08:09:00) [1]

В хелпе по SetWindowRgn кое-что написано.


mike.dld   (2003-06-09 00:29:00) [2]

Проблема даже вот в чём.

Если перед тем, как повторно использовать к-л регион, сделать его DeleteObject, а потом заново его создать, то всё хорошо. Но я читаю координаты для региона из файла, а координат может быть внушительное количество, т.к. я заранее не знаю, сколько. Значит, чтобы создать регион заново, тратится лишнее время. А это нехорошо.


KilkennyCat   (2003-06-08 23:10:00) [3]

WndRgns[wkMain,ShadeMode[wkMain],DoubleSize] - это должно быть типом HRGN, то есть THandle... как то он старнно выглядит, а?

ну, не должно у тебя быть проблем.... делаешь
var
h1,h2,h3,h4 : THRg;
begin
h1 := creatergn(то что тут надо)...h4 := creatergn(...);
А потом переключаешься SetWindowRGN(hwnd, h1 (или h2..h4), true)
я попробовал - работает.


mike.dld   (2003-06-08 22:22:00) [4]


SetWindowRgn(MainWnd,WndRgns[wkMain,ShadeMode[wkMain],DoubleSize],true);
invalidateRect(MainWnd,nil,true);


Наверх

Титульная страница Поиск, карта сайта Написать письмо