Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » API оконо нестандартной ормы

Ответить
Настройки темы
API оконо нестандартной ормы

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите, как создать окно неправильной формы используя
только API.

Отправлено: 03:47, 19-10-2003

 

Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
int SetWindowRgn
   (
    HWND hWnd, // handle to window whose window region is to be set
    HRGN hRgn,    // handle to region 
    BOOL bRedraw // window redraw flag 
   );
Т.е рисуешь свой регион какой угодно и его handle передаешь функции.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 08:50, 19-10-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Megabizon

Старожил


Сообщения: 244
Благодарности: 1

Профиль | Отправить PM | Цитировать


Пример - окно в форме звездочек

Код: Выделить весь код
int __fastcall Sin(int a, int R) 
{ 
double W=36*3.14159265/180.0; 
return R*sin(W*a); 
} 
 
int __fastcall Cos(int a, int R) 
{ 
double W=36*3.14159265/180.0; 
return R*cos(W*a); 
} 
 
HRGN __fastcall GetStarReg(int X, int Y, int R) 
{ 
TPoint P[5]; 
P[0]=Point(X, Y-R); 
P[1]=Point(X-Sin(4, R), Y-Cos(4, R)); 
P[2]=Point(X-Sin(8, R), Y-Cos(8, R)); 
P[3]=Point(X-Sin(2, R), Y-Cos(2, R)); 
P[4]=Point(X-Sin(6, R), Y-Cos(6, R)); 
return CreatePolygonRgn(P, 5, WINDING); 
} 
 
void __fastcall TForm1::FormCreate(TObject *Sender) 
{ 
 int X=Width/2, Y=Height/2; * 
 
 HRGN R1, R2, R; * 
 
 R=GetStarReg(X, Y, 100); * 
 
 for (int i=1;i<10;i+=2) * 
 
 * 
 { * 
 
 * 
 R1=GetStarReg(X-Sin(i, 120), Y-Cos(i, 110), 40); * 
 
 CombineRgn(R, R, R1, RGN_OR); * 
 
 * 
 } * 
 
 * 
 
R1=GetStarReg(X, Y, 30); 
CombineRgn(R, R, R1, RGN_DIFF); 
R1=CreateEllipticRgn(3, 3, Width-6, Height-6); 
R2=CreateEllipticRgn(20, 10, Width-20, Height-10); 
CombineRgn(R1, R1,R2, RGN_DIFF); 
CombineRgn(R, R, R1, RGN_OR); 
SetWindowRgn(Handle, R, TRUE); 
}
Дальше, ядумаю, разберешся.

-------
С уважением


Отправлено: 10:48, 19-10-2003 | #3


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за помощь и скажите, кто знает где есть
полное описание API на русском.

Отправлено: 20:20, 19-10-2003 | #4


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


http://freesoft.ru/?id=8916

на download.ru есть еще, но за 50 вечнодеревянных (было так, но сейчас кажется занахаляву)- http://www.download.ru/russian/sp/9904.htm
http://www.download.ru/russian/sp/11785.htm

[s]Исправлено: Prisoner, 2:02 20-10-2003[/s]

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 00:58, 20-10-2003 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » API оконо нестандартной ормы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FAQ - [решено] Ping при использовании нестандартной маски сети. lxa85 Сетевые технологии 5 02-07-2008 11:49
[решено] Несоответствие PHP API и Module API Negativ Программное обеспечение Linux и FreeBSD 6 10-04-2007 19:53
Win32 API | Нужна помошь по API функциям! vasika_hk Программирование и базы данных 2 23-05-2006 09:51
API функции hameg Программирование и базы данных 4 09-03-2004 19:48
API функции Surround Программирование и базы данных 5 27-10-2003 00:06




 
Переход