Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3  Все   Вниз
  Печать  
Автор Тема: Не перерисовывается свой контрол  (Прочитано 56881 раз)
0 Пользователей и 22 Гостей смотрят эту тему.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #30 : 10-04-2008 15:06 » 

Не, выглядит смпотично на моём незагруженном компе. Мне понравилось. Мягкий такой переход и скорость fade тоже оптимальная - не медленно и не быстро.

Проблема остаётся с реализацией.  Насколько всё надёжно, стабильно, оптимально... То с чем больше всего в будущем возникает проблем.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #31 : 11-04-2008 06:26 » 

Джон, фейд мне был там не нужен ) Основная функция окрашивания была в том, чтобы объяснить юзеру , что этот контрол как-то реагирует на мышь. А именно - это набор чек-боксов.

Цитата
Вобще-то я не увидел запуска таймера в OnMouseMove...
я ж написал выше - именно в этой реализации таймер пускается не в самом маузмуве, а в очередной перерисовке контрола. А инициируется это всё именно в OnMouseMove - через косвенную переменную. А закомментировал потому, что для решения задачи не подошёл вызов именно оттуда )) И сразу хитрый! ))

Но, Джон, твои сомнения то всё же рассеялись теперь, надеюся ? Ага


PS
tom4ik85, согласен с Джоном, у тебя красиво получилось )
Записан

tom4ik85
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #32 : 11-04-2008 08:18 » 

Спасибо Улыбаюсь
Извините, если оффтоп, но не получается у меня нарисовать в другом контексте, а потом вывести на элемент все вместе Жаль
Код:
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
CDC* dc;
CDC tempDc;
CRect rect(0,0,92,92);
CPen pen;
CPen* oldPen;

pen.CreatePen(PS_SOLID, m_nThick, m_clrBorderColor);
      dc = CDC::FromHandle(lpDrawItemStruct->hDC);
      tempDc.CreateCompatibleDC(dc); // создаю временный контекст на основе имеющегося
      oldPen = tempDc.SelectObject((CPen*)&pen);
      // рисую во временном
      tempDc.SelectObject(oldPen);
tempDc.Rectangle(&rect);
tempDc.Draw3dRect(&rect, RGB(100,100,100), RGB(0,0,0));
      // копирую из временного в мой
dc->BitBlt(0,0,100,100,&DC, 0,0, SRCCOPY);

ReleaseDC(&tempDc);

}
Не выводит ничего на экран.
Подскажите пожалуйста что я не понимаю
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #33 : 11-04-2008 08:34 » 

tom4ik85, там нужно ещё к озушному контексту битмап создать и присобачить

в моём элементе сделано так (кстати, когда то сам Джон и поделился секретом Ага )
Код:
void CMyControl::OnPaint() 
{
CPaintDC dcReal(this);

//теперь определение размеров области плоттера
long ldcW,ldcH;
CRect PlotterRect;
GetClientRect(&PlotterRect);

ldcW=PlotterRect.Width();
ldcH=PlotterRect.Height();
if(ldcW<0)ldcW=0;
if(ldcH<0)ldcH=0;

//создаём в памяти контекст
CDC dcPlotter;
CBitmap bmpMem;

dcPlotter.CreateCompatibleDC(&dcReal);
bmpMem.CreateCompatibleBitmap(&dcReal,ldcW,ldcH);

//крепим картинку к виртуальному девайсу
CBitmap *oldbmpMem=dcPlotter.SelectObject(&bmpMem);

//РИСУЕМ в отдельной процедуре
PaintControl(&dcPlotter,ldcW,ldcH);

//копируем из памяти (dcPlotter) на экран (dcReal)
dcReal.BitBlt(0,0,ldcW,ldcH,&dcPlotter,0,0,SRCCOPY);

//удаляем битмап и виртуальный контекст
dcPlotter.SelectObject(oldbmpMem);
bmpMem.DeleteObject();
ReleaseDC(&dcPlotter);
}

void CMyControl::PaintControl(CDC *dc,long ldcW,long ldcH)
{
//рисуем на dc.
//Точка 0,0 - верхний левый угол.
//ldcW, ldcH - размеры "окна" по вертикали и горизонтали
}

Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #34 : 11-04-2008 08:57 » 

И сразу хитрый! ))

Конечно хитрый. Улыбаюсь) А что? Не так? Ага


Цитата
Но, Джон, твои сомнения то всё же рассеялись теперь, надеюся ? Ага

Сомнения насчёт чего? Что это будет работать? У меня их никогда и не было! Узнавать текущую дату через создание файла тоже работает железно. Можешь попробовать.
Или сомнения по поводу 100% решения для данной задачи? Тут тоже у "лично меня" сомнений не было. Оно таковым не является. Причины я уже перечислял. Ещё только добавлю. Понимаешь, если я делаю контрол (ф-ю, класс...) с расчётом на будущее, то стараюсь делать оптимально, используя принцип разумной достаточности. А не навешивая всё что только возможно "лишь бы работало". Хорошо, когда постоянство гарантировано.
Я тебя вон уже сколько лет знаю, а ты всё ещё 6ой студии не изменил. А у нас спектр задач настолько широкий, что мне приходится работать на 6, 2003, 2005, а теперь уже и 2008 студиях, на как минимум двух системах windows и Vista, с полным набором SDK, DDK, WDK.
Добавляй к С++ ещё C# и задачи от БД до дров. Поэтому я должен быть всегда уверен, что снова используемый компонент был сделан наиоптимальнейшим на данный момент и для данных условий образом. И с этой философией я не родился, а жизнь научила. Причём жёстко.

Поэтому и начинающих хочется предостеречь.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #35 : 11-04-2008 09:02 » 

когда то сам Джон и поделился секретом Ага )

Опередил. Ага Я как раз искал. Иногда у меня замки бывают - или я уже это рассказывал, или только хотел рассказать.

tom4ik85, так для справки. Форум у нас очень древний и на нём скоплено такое количество богатств, что воплотить их в яхты, джеты и виллы на Багамах на даёт только их плохая организация. Но для людей умеющих пользоваться поиском они немного приоткрывают свои тайны:

https://forum.shelek.ru/index.php/topic,620.msg52009#msg52009

Так для общей теории почитай. Будт полезно.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
tom4ik85
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #36 : 11-04-2008 09:04 » 

Спасибо Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #37 : 11-04-2008 09:06 » 

tom4ik85, кстати. Давай пользу начнёшь приносить? Я ща глянул, Лёшка прав, надо статью сделать. Вот ты свежим взглядом и оцени что не так. Что не понятно, что надо подробней, а что выкинуть. Ок?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #38 : 11-04-2008 09:20 » 

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

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #39 : 11-04-2008 11:02 » 

Лёш, ты сможешь эту оптимальность потом доказывать брызгающему слюной клиенту, у которого "девочки" сидят на WinMe, после того как он пару раз (если сможет) проведёт по такого рода "контролам", каждый из которых создаёт хэндл таймера. У tom4ik85, ещё больше шансов. Ага

Ещё, раз - я не против таймера. Я против таймера, как оптимального решения ЭТОЙ задачи.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #40 : 11-04-2008 11:14 » 

ну так была бы под рукой та Me у меня ) Я б проверил. И под 98 интересно было бы прогнать , а под вистой работает - уже проверяли.
Может, таймер и не оптимально, зато объект получился законченным - бери за шкварку и кидай на диалог. И никаких те дум о дополнительном для этого коде в родителе (create не в счёт) Улыбаюсь
Записан

ChaoticCube
ChaoticCube
Помогающий

ru
Offline Offline
Пол: Мужской
ChaoticCube


« Ответ #41 : 11-04-2008 12:49 » 

Хм. Есть 100% рабочий способ =)

Есть такое понятие как захват мыши. То есть на мышь ставится стандартный обсервер - и все ее мессаги (пофигу где она находится) шлются нужному окошку.

Если не ошибаюсь функции SetCapture и ReleaseCapture
Записан

Сила ночи, сила дня - одинакого фигня....
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #42 : 11-04-2008 13:25 » 

Лёш, так я про это и говорю. А мне приходится прогонять готовые проги, не только под разными версиями, но и разными конфигурациями, ибо если у клиента не стоит СП4 под w2k, а только СП2 и он счастлив, то мне ещё надо аргументировать, почему ему надо его поставить. Поэтому для меня "сделал как-нибудь лишь бы работало" - непозволительная роскошь. Кстати, история программного обеспечения это тоже наглядно показывает. Как только видишь где-нить "программа работает только на ... при ... и с ..." так и знай - сделано по принципу "не знаю как у вас, а у меня всё работает зашибись".

А подобные ошибки очень болезненны. Представь ситуацию: уже всё сделано, проверено, отлажено, продано. Всё работает. И вдруг БАЦ!:

- Ваша программа не запускается.
- А какая у вас система?
- NT4.
- Аааа ну дык. Поставьте винь2000.
- На 600 рабочих мест? Да и железо у нас старое, 2000 не тянет. Да и останавливать производственный процесс даже на один день стоит ....

...

В итоге всё сводится к ошибке программы и надо переделывать. Бесплатно. Вернее не бесплатно, но за свой счёт. Тк никто не заставлял использовать "старый надёжный контролл, который у меня прекрасно работал всё время".
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #43 : 11-04-2008 13:32 » new

ChaoticCube, вызов одной ф-ции в OnMouseMove родителя - тоже 100% рабочий.
Просто есть люди, которым он ПРОСТО НЕ НРАВИТСЯ. Ага

Кстати, если сравнивать таймер с регистрацие событий мыша, то... надо будет посмотреть, сравнить.

А насчёт капчи... надо подумать. Может быть и так можно сделать. Ща в голове нет всех технических подробностей. Те ты предлагаешь по первому соббщению сразу капчить, а потом проверять PtInRect, как только выходит, делать релиз. Может быть и сработает. Как говорится код в студию. Или я сам потом попробую.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #44 : 11-04-2008 13:56 » 

Джон, ChaoticCube, капча это - раз, и всё. А таймер - это гистерезис Улыбаюсь Если, конечно это нужно.

Джон, а как тебе такая мысль: виндовский таймер - лесом. Делаем статическую процедуру для класса контрола и запускаем процесс, который будет выполнять роль общего для всех экземпляров класса таймера, а заодно и менеджера по раздаче "сообщений" - например, контрол попросил через N тактов прислать ему такое то сообщение.
Поток тупо отсчитывает такты , зависая, скажем, при помощи Sleep(20).
Ну мысль, конечно, нуждается в развитии, зато от ОС теперь мало зависит )
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #45 : 11-04-2008 14:29 » 

Лёш, сразу чтоб ты меня не понял неправильно. У Ме проблема была с количеством одновременно задействованных хэндлов - это 100%. При превышении некоего минимального количества получал вылет проги с ошибкой "недостаточно ресурсов". Таймер конечно же работает на всех.

Насчёт капчи я бы не был так категоричен, я думаю прокатить, НО как я уже сказал - не помню всех технических подробностей. Надо попробовать. Я делал капчу только для нажатия и отпускания мышиных кнопок и drag-n-drop.

Ну, а на самом деле, если уж так очень хочется, то можно сделать гораздо проще. Те способом, по которому актуалиизируются тулбары. Ну типа ф-ю OnUpdateЪЪ все знают, а кто её вызывает? Ага
Есть, есть такая партия, те тфу, что я говорю - конечно же ф-я Ага и имя ей CWinApp::OnIdle

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

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #46 : 11-04-2008 14:35 » 

Джон, так айдл не сможет мягкие переходы делать Улыбаюсь Кстати, вот интересно, как это делается в тех самых плюшевых элементах винды, которые я всегда с ужасом выключаю и привожу к виду классическому ? Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #47 : 11-04-2008 14:50 » 

Так, стоп. Мы про анимацию плюшевых элементов говорим или про фиксирование момента покидания мышом окошка? Я всегда про последнее. Те в условиях задачи требовалось показать hover эффект. Сомневаюсь, что изменение толщины линии с 3х до 1 пикселя и наоборот требует какой-нить анимации. Кстати надо будет тряхнуть стариной и сделать примерчик с MouseLeave. А то... давно это было.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #48 : 11-04-2008 14:55 » 

Джон, я просто попытался скрестить как и определение покидания, так и эффект отрисовки )
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #49 : 11-04-2008 15:02 » 

Я бы лучше разделил эти два события... Одно управляющее. Другое - свойство самого контрола.
Сделав это по OnIdle ты получаешь управляющий процесс. Что он иннициирует - уже головняки контрола. Как я уже сказал. Это не обязательно должно быть рисование. Это может быть всё, что угодно.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #50 : 11-04-2008 15:14 » 

Джон, ну, тогда айдл хорошо подходит для определения покидания при помощи GetCursorPos()
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #51 : 11-04-2008 15:29 » 

Это я имел ввиду. Вопрос только как перекинуть сообщение из Арр в контрол?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #52 : 11-04-2008 15:35 » 

Джон, может статик-мембер класса контрола попробовать использовать, но только этот мембер должен хранить указатели на все созданные экземпляры. Сложновато выходит как-то

Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #53 : 11-04-2008 15:56 » 

Лёш, честно - ща не знаю. Даже не думал. Но тулбары работают без всякой регистрации и пр. Ага Значит можно. Надо разбраться с маршрутами OnIdle. Я с ней не разбирался и ничего не делал. Поэтому с ходу не знаю.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #54 : 11-04-2008 16:08 » 

так тулбарам то они , поди, тупо рассылают извещения
Записан

ChaoticCube
ChaoticCube
Помогающий

ru
Offline Offline
Пол: Мужской
ChaoticCube


« Ответ #55 : 12-04-2008 00:19 » 

Капча сделана как раз для этого. Да привязка к операционке будет, конечно же. Но мне почему то показалось что человек не виджеты свои пишет, а именно эмэфсю юзает.

На тему на паренте сделать - способ кривой изначально. Представим что этот контрол завтра надо будет на 1000 диаложков прорисовать - слишком много геммороя - везде добавлять метод. Не говоря уже о том что этот парент может быть в постороннем коде, который менять низзя (ну как внешний компонент приходит и все). Контрол должен быть вещью в себе.

Да и на онИдл занимать системное время - как-то жалко. А если внешнее приложение в onIdle итак делает дофига? - кончится тем что ОnIdle будет вызываться раз в столетие =). Незачем OnIdle грузить без особой на то надобности.

Вообще - мне кажется что дискуссия началась с того что о капче забыли. А счас идет в сторону - "а как бы еще извратится?" =)

Сорри, код писать не буду - просто лень запускать студию дома - а на работе не до того. Но в кратце на вход мышки - захват. Дальше обработка OnMove - и диагностика по координатам. Делается за 5 минут в общем.
« Последнее редактирование: 12-04-2008 00:21 от ChaoticCube » Записан

Сила ночи, сила дня - одинакого фигня....
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #56 : 12-04-2008 05:49 » 

ChaoticCube, капча неудобна, когда контролов больше, чем один , а дискуссия идёт не про изврат, а про то, как инкапсулировать в класс контрола определение выхода курсора за границу Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #57 : 12-04-2008 08:39 » 

ChaoticCube, мне кажется ты не совсем понимаешь смысл OnIdle - это как раз сообщение о ничего не деланьи. Ага

Про капчу я тоже так себе это и представил. Руки дойдут - попробую.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
tom4ik85
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #58 : 14-04-2008 10:49 » 

Я попробую с SetCapture и ReleaseCapture сделать.
Чуть позже отпишусь о результатах Улыбаюсь
Записан
tom4ik85
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #59 : 14-04-2008 11:38 » 

Нормально работает с Capture
Код:
void CMyButton::OnMouseMove(UINT nFlags, CPoint point) 
{
if(InRect == FALSE)
{
SetBgColor(RGB(0,255,0));
SetCapture();
InRect = TRUE;
}
else
{
CRect rect;
GetWindowRect(&rect);
ClientToScreen(&point);

if(!rect.PtInRect(point))
{
InRect = FALSE;
SetBgColor(RGB(255,0,0));
ReleaseCapture();
}

}
CButton::OnMouseMove(nFlags, point);
}
Записан
Страниц: 1 [2] 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines