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

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

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:32 01.07.24 
Компютри и Интернет
   >> Програмисти
Всички теми Следваща тема *Кратък преглед

Тема Интересно поведениенови  
Автор 3мeй (Гадина)
Публикувано19.07.07 17:45



Радиобутони в диалогов прозорец-модален.
Когато се кликне в единия се появява друг модален прозорец.Обаче когато свършим с горния,където и да кликнем в диалога - все едно че кликаме върху последния радиобутон- все едно е взел мишката(capture).Дали когато се появи горния прозорец,прекъсва съобщенията на долния и с това последното състояние някак си да се запомня.Горния прозорец не е притежаван от долния.

Някой да се е сблъсквал с това.Каква може да е причината бутона да вземе входа от мишката?
C++/Win



Тема Re: Интересно поведениенови [re: 3мeй]  
АвторBattle (Нерегистриран)
Публикувано19.07.07 22:33



C++/Win нищо не ми говори. За коя платформа става въпрос? Почти сигурно е че проблема не в операционната система (нищо че е виновс)



Тема Re: Интересно поведениенови [re: 3мeй]  
АвторГoшko Пpaceтo (Нерегистриран)
Публикувано20.07.07 11:21



Ако вземеш и разкараш грозно-селския-пуберски-тип-неизживяно-детсво-модел-искам-да-съм-велик-ама-не-ме-забелязват аватар с глупавия малоумно натрапчив дракон (бахти замаях се) може и да получиш отговор.
Според мен обаче, проблема ти е във Виндовса. Аз нямам такъв проблем, щото съм с Линуз Дебилиян.



Тема Re: Интересно поведениенови [re: Гoшko Пpaceтo]  
Автор 3мeй (Гадина)
Публикувано20.07.07 11:54



В отговор на:

Ако вземеш и разкараш грозно-селския-пуберски-тип-неизживяно-детсво-модел-искам-да-съм-велик-ама-не-ме-забелязват аватар с глупавия малоумно натрапчив дракон ...




Благодаря за мнението



Тема Проблема е, че [re: 3мeй]  
Автор koм (ентусиаст)
Публикувано20.07.07 23:44



най-вероятно отваряш 2-рия диалогов прозорец при WM_LBUTTONDOWN - явно или неявно. Бутона никога не получава WM_LBUTTONUP и затова се държи по този начин.
Можеш да решиш въпроса по няколко начина:
1. Отвори 2-рия диалогов прозорец, когато получиш съобщение BM_CLICK.

2. При затваряне на 2-рия модален диалог - изпрати WM_LBUTTONUP на бутона.

По принцип - отварянето на диалог при натискане на радио-бутон - противоречи на всички препоръки за добър GUI - помисли дали не можеш да смениш дизайна.

Редактирано от koм на 21.07.07 00:41.



Тема Re: Проблема е, ченови [re: koм]  
Автор 3мeй (Гадина)
Публикувано21.07.07 07:55



Благодаря.
Прозореца се отваря в обработката на нотификацията BM_CLICKED за съответния бутон.Освен това възможността за други нотификации е филтрирана,като сравнявам кода на нотификацията.Дизайна е невъзможно да се смени.Става въпрос за мигриране на приложение,написано с XVT библиотека към WIN среда.Клиента си иска приложението така както си е било.

По принцип съм решил проблема като вземам координатите на курсора и сравнявам дали са в прозореца на бутона,и тогава решавам дали съобщението е за бутона,но ми е интересно защо се получава така.Лично аз го свързвам с това че втория прозорец като се отвори прекъсва потока съобщения към първия.След затваряне на втория при активиране на първия стават тези странности



Тема Re: Проблема е, ченови [re: 3мeй]  
Автор koм (ентусиаст)
Публикувано21.07.07 09:47



Пусни си Spy+ и сложи филтър на всички съобщения, които получаваш за съответния бутон. За да няма много шум можеш да изключиш очевидните WM_MOUSEMOVE, WM_PAINT и т.н. Има нещо странно.
Аз бих направил 2 експеримента:
1. Натисни бутона с клавиш, а не с мишката.
2. Опитай да пратиш user съобщение към себе си и отвори втория прозорец в това съобщение.
Кода изглежда горе-долу така:
int iMessage = RegisterWindowsMessage("UM_MYMESSAGE");
....
PostMessage(hWnd, iMessage, NULL, NULL);

A номера с координатите какво ти помага? Нещо не ми стана ясно.

Редактирано от koм на 21.07.07 09:54.



Тема Сетих се още нещонови [re: koм]  
Автор koм (ентусиаст)
Публикувано21.07.07 09:50



Сигурен ли си, че задаваш правилно ParentWindow за 2-рия прозорец?
Ако хендела към родителския прозорец е NULL - може да получиш такива ефекти, защото активен ти става десктопа, а не долния прозорец.



Тема Re: Сетих се още нещонови [re: koм]  
Автор 3мeй (Гадина)
Публикувано21.07.07 15:37



Притежателя е основния прозорец,не долния,не е десктопа.Почти съм сигурен къде е проблема.
Радиобутона праща нотификация,до родителя,който в резултат на това че създава нов прозорец губи фокуса.Когато процедурата се върне бутона не е вече активен и това е което го бърка.При активиране (чрез кликване)на долния прозорец бутона праща отново нотификацията(по време на извикване на родителската процедура се е променило активното му състояние ).



Тема Re: Интересно поведениенови [re: 3мeй]  
АвторГoшko Пpaceтo (Нерегистриран)
Публикувано23.07.07 12:43



Змей, ти си змей.
Браво!
Направо се учудвам, че си махнал малоумния (прости ми квалификацията) аватар. Ти си спечели моето уважение. А и въпроса, който си задал е наистина смислен. Дерзай все така, пожелавам ти успехи и прости ме, ако съм бил малко груб - не обичам анимирани картинки.




Всички темиСледваща тема*Кратък преглед
Клуб :  


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

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