Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 01:33 28.04.24 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: Window docking BETA test [re: WiseGuy]
Автор naki (Power User)
Публикувано09.11.01 00:40  



Това ми е субкласващата функция:

LPRECT rect;
// при оразмеряване
// за мене няма проблем да се ресайзва,
// ти си си направил твоя прозорец да не може
// да се ресайзва
if(Message.Msg==WM_EXITSIZEMOVE)
{

if(dir==1)
Left=desktop.left;
else if(dir==2)
Left=desktop.right-Width;
else if(dir==3)
Top=desktop.top;
else if(dir==4)
Top=desktop.bottom-Height;
}
// тука се прави проверка дали се сменя размера или
// мястото на таскбара
if(Message.Msg==WM_SETTINGCHANGE)
{
if(Message.WParam==SPI_SETWORKAREA)
{
// тази фунция е ключът към всичко
// викам я и в началото на програмата за да имам началните
// размери на десктопа (клиентската част)
// а тук се опреснява при промяна
// като глобална променлива имам RECT desktop
SystemParametersInfo(SPI_GETWORKAREA,NULL,&desktop,NULL);
// и се лепи на новото място
if(dir==1)
Left=desktop.left;
else if(dir==2)
Left=desktop.right-Width;
else if(dir==3)
Top=desktop.top;
else if(dir==4)
Top=desktop.bottom-Height;
}
}
if (Message.Msg == WM_MOVING)
{
rect=(LPRECT)Message.LParam;
if(left->Checked)
{

rect->left=desktop.left;
rect->right=desktop.left+Width;
if(rect->top<desktop.top)
{
rect->top=desktop.top;
rect->bottom=desktop.top+Height;
}
if(rect->bottom>desktop.bottom)
{
rect->top=desktop.bottom-Height;
rect->bottom=rect->top+Height;
}
}
else if(right->Checked)
{
rect->left=desktop.right-Width;
rect->right=desktop.right;
if(rect->top<desktop.top)
{
rect->top=desktop.top;
rect->bottom=desktop.top+Height;
}
if(rect->bottom>desktop.bottom)
{
rect->top=desktop.bottom-Height;
rect->bottom=rect->top+Height;
}
}
else if(up->Checked)
{
rect->top=desktop.top;
rect->bottom=desktop.top+Height;
if(rect->left<desktop.left)
{
rect->left=desktop.left;
rect->right=desktop.left+Width;
}
if(rect->right>desktop.right)
{
rect->left=desktop.right-Width;
rect->right=desktop.right;
}
}
else if(down->Checked)
{
rect->top=desktop.bottom-Height;
rect->bottom=rect->top+Height;
if(rect->left<desktop.left)
{
rect->left=desktop.left;
rect->right=desktop.left+Width;
}
if(rect->right>desktop.right)
{
rect->left=desktop.right-Width;
rect->right=desktop.right;
}

}
}
WndProc(Message);


Модифицирай го така че да не е твърдо залепено
като в мойта програма, а да е както ти го искаш.
А ти щом искаш да е като УинАмп значи трябва
да имаш поне 2 (ДВА) прозореца, а не 1 (ЕДИН).

Редактирано от naki на 09.11.01 00:47.



Цялата тема
ТемаАвторПубликувано
* Window docking BETA test WiseGuy   04.11.01 22:05
. * EXE i Help WiseGuy   05.11.01 19:02
. * Re: EXE i Help naki   06.11.01 22:46
. * Re: EXE i Help Eмилиo   07.11.01 00:07
. * Re: EXE i Help naki   07.11.01 15:38
. * Re: EXE i Help Eмилиo   07.11.01 16:26
. * Re: EXE i Help WiseGuy   07.11.01 18:12
. * Re: Window docking BETA test naki   08.11.01 00:35
. * Re: Window docking BETA test naki   08.11.01 01:12
. * Re: Window docking BETA test naki   08.11.01 23:04
. * Re: Window docking BETA test WiseGuy   09.11.01 00:04
. * Re: Window docking BETA test naki   09.11.01 00:40
. * Re: Window docking BETA test naki   09.11.01 01:01
. * Re: Window docking BETA test WiseGuy   09.11.01 01:04
. * Re: Window docking BETA test naki   09.11.01 01:07
. * Re: Window docking BETA test naki   09.11.01 01:09
. * Re: Window docking BETA test WiseGuy   09.11.01 16:20
. * Re: Window docking BETA test naki   09.11.01 22:28
. * Готов си, мой човек! naki   13.11.01 01:26
. * Ne oshte WiseGuy   13.11.01 16:50
. * Re: Ne oshte naki   13.11.01 17:30
. * Re: Ne oshte WiseGuy   13.11.01 18:23
. * Re: Ne oshte naki   13.11.01 23:13
. * FINAL WiseGuy   19.11.01 21:28
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.