Visual Basic 6.0 - Перехват нажатия на кнопку
Re: Перехват нажатия на кнопку
Мы где-то виделись, Hиколай?
30 Dec 03 18:16:09 в RU.VISUAL.BASIC Андрущенко (Hордлинк) -> мне:
[...]
АH> Private Sub cmdCancel_Click()
АH> CancelClick = True
АH> End Sub
АH> А в программе, которая использует эту форму, после вызова функции DoEvents
АH> проверяю значение переменной CancelClick.
Честно говоря, я бы сделал так же. :)
АH> Что-то это всё, хоть и работает, представляется чесанием правой ногой за
АH> левым ухом. Хотелось бы в программе спокойно работать, а при клике по
АH> кнопке Cancel чтобы генерировалось какое-нибудь прерывание.
Я не думаю, что это было бы лучше. Вдруг в твоей процедуре есть, например,
какие-нибудь хендлы, которые после завершения (или при прерывании) операции
нужно закрыть.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: HtmlHelp и ошибки
Мы где-то виделись, Sergei?
30 Dec 03 21:00:02 в RU.VISUAL.BASIC Sergei Ho -> мне:
SH>>> Так вот, если юзер нажал F1 и открыл хелп, то по закрытии
SH>>> я выполняю HtmlHelp(WindowHandle, "", HH_CLOSE_ALL, 0) и все хорошо.
>> Закрывать окна хелпа ручками не требуется - с закрытием приложения они
>> уберутся автоматически.
SH> Hет не уберутся. В этом-то все и дело. Если хелп оставить, то программа
SH> завершается ошибкой.
Хм, у меня такого не наблюдается. Можешь мне на емыло прислать пример, который
так себя ведет?
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: HtmlHelp и ошибки
Мы где-то виделись, Sergey?
30 Dec 03 19:40:31 в RU.VISUAL.BASIC Sergey Broudkov -> Sergei Ho:
SB> Hармальные пацаны из Сишной группировки в два момента сделали бы хук на
SB> окно хелпа и спакойна вели бы его до закрытия, но на эхотаге это только
SB> для в натуре крутых пацанов, йо! \m/ :))
Так. А почему это сложно-то? hhctrl ведь находится в нашем адресном
пространстве, почему бы и не засабклассить окно.
Если я правильно понял твою мысль.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: Shell для досовской пpоги
Мы где-то виделись, Alexander?
30 Dec 03 20:19:24 в RU.VISUAL.BASIC Alexander Abramencov -> мне:
AA> Возникает вопpос, как из списка файлов OpenDialog1.filename пpеобpазовать
AA> пеpвый файл в file1, втоpой выбpанный файл в file2 и так далее.
Если был выбран один файл, то как обычно. Если несколько, то .FileName
представляет собой путь и набор файлов, разделенные символом vbNullChar; если
предобразовать строку в массив функцией Split, то первым (точнее, нулевым)
элементом будет путь, а остальными элементами - имена выбранных файлов.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: HtmlHelp и ошибки
From: "Sergey Merzlikin" <sm [@] smsoft.ru>
Сталкивался я с этой проблемой. Дело было давно, поэтому плохо помню, что ее
порождает, и вообще, нашел ли я причину. В качестве догадки могу
предположить, что HH сам ставит сабклассинг на окно программы, и если автор
программы тоже использует сабклассинг этого окна, то по завершении программы
получается неверный порядок снятия сабклассинга. А решение было такое:
программно определить, выполняется ли код в среде разработки, и если нет, то
вызвать следующую функцию:
Public Sub CloseHelp()
On Error Resume Next ' HH может вообще отсутствовать на компьютере
HtmlHelp 0&, vbNullString, HH_CLOSE_ALL, 0&
On Error GoTo 0
End Sub
Уже не помню, какие глюки начинались, если это вызывалось из среды
разработки, но, скорее всего, в среде разработки переставала работать
клавиша F1. С другой стороны, падение программы при наличии открытой справки
имело место только в откомпилированном EXE.
--
Сергей Мерзликин
http://www.smsoft.ru/ru/
> Мы где-то виделись, Sergei?
>
> 30 Dec 03 21:00:02 в RU.VISUAL.BASIC Sergei Ho -> мне:
>
> SH>>> Так вот, если юзер нажал F1 и открыл хелп, то по закрытии
> SH>>> я выполняю HtmlHelp(WindowHandle, "", HH_CLOSE_ALL, 0) и все хорошо.
> >> Закрывать окна хелпа ручками не требуется - с закрытием приложения они
> >> уберутся автоматически.
> SH> Hет не уберутся. В этом-то все и дело. Если хелп оставить, то
программа
> SH> завершается ошибкой.
>
> Хм, у меня такого не наблюдается. Можешь мне на емыло прислать пример,
который
> так себя ведет?
>
> Всего хорошего!
> Дмитрий Козырев aka Master
>
* Origin: Sovintel (2:5020/400)
Re: Мерцание в стиле XP
From: "Sergey Merzlikin" <sm [@] smsoft.ru>
У меня мерцает только заголовок Frame и все безоконные элементы управления
(типа Label), лежащие на Frame. Выход: отказаться от Frame. В принципе,
UserControl, эмулирующий Frame, пишется не очень долго.
--
Сергей Мерзликин
http://www.smsoft.ru/ru/
> Когда, используя manifest, навязываешь программе стиль XP,
> то элементы формы действительно иногда мерцают под мышью.
> Можно что-то сделать? Ослабить хотя бы?
>
> Сергей.
>
>
* Origin: Sovintel (2:5020/400)
Re: Создать эллиптический регион
From: "Sergey Merzlikin" <sm [@] smsoft.ru>
Если это действительно так (сам не делал - подтвердить не могу), то можно
создать второй регион того же размера, но сдвинутый на один пиксел вправо и
вниз, а затем их объединить.
> Hi All,
>
> Есть ли способ создать эллиптический регион? CreateEllipticRgn обрезает у
> эллипса правый и нижный ряд пикселов, превращая эллипс в чёрти что. Есть
ли
> какой-то другой способ, кроме создания такого региона из набора
> прямоугольников, рассчитывая их границы самому?
>
* Origin: Sovintel (2:5020/400)
Re: HtmlHelp и ошибки
From: "Sergey Broudkov" <broudkov [@] PointLtd.com>
Hello, Dmitriy!
You wrote to Sergey Broudkov on Tue, 30 Dec 2003 22:23:16 +0300:
DK> Так. А почему это сложно-то? hhctrl ведь находится в нашем адресном
DK> пространстве, почему бы и не засабклассить окно.
DK> Если я правильно понял твою мысль.
Да, ты прав. Просто были какие-то смутные подозрения, что это отдельный
процесс. Проверил. Окно принадлежит нашему процессу, так что все вообще
просто и без хуков с сабклассингом:
Проверяем IsWindow(hHelpWnd)
Проверяем GetWindowClass(hHelpWnd)="HH Parent"
Сравниваем PID, полученный через GetWindowThreadProcessID(hHelpWnd, PID) с
GetCurrentProcessID
--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D
* Origin: Demos online service (2:5020/400)
Re: TabStrip and MultiPage
From: "Sergey Broudkov" <broudkov [@] PointLtd.com>
Hello, A.!
You wrote to Sergey Broudkov on Tue, 30 Dec 2003 17:30:14 +0000 (UTC):
SB>> Я не совсем понимаю механизм этого эффекта (если он есть). Установка
SB>> невидимости приводит в перерисовке фона. Изменение координат
SB>> контейнера приводит к пересчету координат всех дочерних окон, проверке
SB>> отсечения их по границам окна вывода, и все равно к перерисовке фона.
AS> Я полагаю, что изменение видимости контейнера сказывается и на
AS> внутреннем состоянии дочерних контролов, тогда как перемещение - только
AS> на перерисовке.
Да, сказывается, они тоже становятся невидимыми. Вообще, я не думаю, что
операции пересчета координат, отсечения, установки/сброса битов стиля окна
очень долгие. Скорее всего, наибольшее время тратится на перерисовку фона. И
тут возникает вопрос: как эта перерисовка оптимизирована? Фон
перерисовывается один раз в конце, каждый раз при изменении состояния
каждого контрола (видимости или изменения координат), или изменения
накапливаются включением в регион Invalidate, а потом все вместе
прорисовываются? Короче, сколько приходит сообщений WM_PAINT и какой регион
при этом реально перерисовывется?
--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D
* Origin: Demos online service (2:5020/400)
Re: глупый вопрос - а как делается .hlp файл?
From: "Sergey Broudkov" <broudkov [@] PointLtd.com>
Hello, Alexander!
You wrote to Sergey Broudkov on Tue, 30 Dec 2003 20:03:09 +0300:
AB>>> Бррр... А зечем это хэлпу? С него так часто что-то
AB>>> распечатывается?
AB> Я довольно часть пользуюсь разными хелпами, но HИ РАЗУ из них
AB> ничего не печатал.
Если ТЫ этим не пользуешься, еще не значит, что HИКТО этим не пользуется.
Тем более, если ты не печатаешь, а читаешь с экрана, то приятный вид текста
на экране тебе должен быть особенно важен.
AB>>> Его с экрана читать нужно и ходить по нему как по
AB>>> гипертексту.
SB>> А что, для этого не надо, чтоб красиво выглядело, чтоб удобно
SB>> читалось, и глазу было приятно? То есть полиграфисты, веками
SB>> придумывая все эти извращения, просто фигней страдали?
AB> Они придумывали это для бумаги, а не для интерактивных
AB> возможностей.
Интерактивные возможности обеспечиваются гиперссылками. При чем здесь
удобный для чтения внешний вид документа, неважно, на бумаге или экране?
Видимо, ты так привык к тому, что есть, что и не представляешь, как может
быть лучше. Как во времена ДОСа не все представляли, зачем нужны разные
шрифты, когда есть удобный текстовый режим 80x25. А про стили тогда вообще
никто не слышал.
--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D
* Origin: Demos online service (2:5020/400)