На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> бестелесное окно
    Можно ли сделать окно так, чтобы с одной стороны его было видно на экране, а с другой стороны - чтобы курсор за него не цеплялся, т.е. как будто его нет?

    ЗЫ. Чушь наверное спрашиваю, но интересно :)
      Чего-то я не понимаю. Нужно чтобы размары окна можно было менять с одной стороны (как в WinAmp)?
      Если нет, то с какой тогда стороны?
        ExpandedWrap disabled
            procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
           
          ...
           
          procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
          begin
            Message.Result := HTTRANSPARENT;
          end;


        Это нужно?
          Цитата Rouse_,8.12.04, 13:41 @
          ExpandedWrap disabled
              procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
             
            ...
             
            procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
            begin
              Message.Result := HTTRANSPARENT;
            end;


          Это нужно?

          Да наверное нет. Мне нужно, чтобы курсор "проваливался" через окно в нижележащее окно. Т.е. чтобы мое окно было просто видно, но никаким иным способом оно себя не проявляло.
          Для чего? Ну например, висят на экране часы (полупрозрачные), и иногда мешают, т.к. нужно нажать что-нибудь под ними. Приходится двигать.
            M
            Тема перенесена из Delphi -> Delphi: Общие вопросы.
              М-да... Скорее всего, нельзя. Буду делать "убегающее" окно. Хотя круто было-бы :D
                Думаю, что можно. Перехватывать нажатие кнопки мыши в пределах формы, определять экранные координаты, искать, какое окно расположено под ним в пределах этих координат. Ну и соответственно передавать нажатие этому окну.

                Добавлено
                Вот я только точно не знаю как реализовать поиск окна по координатам. Хотя способы есть. Многие программы это умеют!
                  Цитата
                  Ну и соответственно передавать нажатие этому окну.


                  Но наверное, не просто окну, а в конкретное "место" окна. А это получается еще интереснее...
                    Цитата s-mike,8.12.04, 14:26 @
                    Вот я только точно не знаю как реализовать поиск окна по координатам. Хотя способы есть. Многие программы это умеют!

                    Может быть кто-то нам подскажет?
                      Цитата s-mike,8.12.04, 14:26 @
                      Вот я только точно не знаю как реализовать поиск окна по координатам. Хотя способы есть. Многие программы это умеют!

                      GetWindowFromPoint
                      Хотя есть ещё функция, более надёжная. Названия, к сожалению, не помню. Но, кажется, Song знает (когда-то, в какой-то теме видел его пост про это). В любом случае, можно попытать Поиск.
                        GetWindowFromPoint возвращает нэндл окна находящегося впереди всех в данной точке, поэтому для данной задачи не подойдет...
                          Только WindowFromPoint(), без Get.

                          Цитата Curve,8.12.04, 21:36 @
                          Но, кажется, Song знает (когда-то, в какой-то теме видел его пост про это). В любом случае, можно попытать Поиск.

                          не помню :( Может и говорил.
                            Как показала тема "Прозрачность" для мышки WindowFromPoint не пашет, поскольку возвращает координаты как раз того окна, по которому и был произведен щелчок, что не представляет никакой ценности.

                            Но я нашел другое решение. Смотрите пост "Прозрачность" для мышки (сообщение #577723).
                            Сообщение отредактировано: s-mike -
                              s-mike, там твоё бесценное решение было разделено в тему Прозрачная форма раздела FAQ. По сему и не смог тебе плюсик поставить. Ставлю здесь :yes: Спасибо!

                              Добавлено
                              Упс :unsure: Пишет
                              Цитата Обнаружена ошибка
                              Вы в недавнее время уже меняли рейтинг этого пользователя.
                              До следующего изменения должно пройти 1 дней
                                Стоп, а если задавать WindowStyle как TRANSPARENT (точное название константы сейчас не вспомню)? Насколько помню, у меня как раз такое и получалось, когда я пробовал делать прозрачное местами окно. Копни MSDN на тему window styles / extended styles.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0415 ]   [ 16 queries used ]   [ Generated: 25.04.24, 11:06 GMT ]