Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
25 / 25 / 8
Регистрация: 27.10.2009
Сообщений: 81

Липкие окошки

03.11.2009, 10:52. Показов 3600. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день!
Подскажите как придать окошкам липкости. По этой теме нашел только пример для Delphi http://www.realcoding.net/arti... oshki.html, а как его для C++ Builder'а переписать ума не приложу. Заранее всех благодарю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2009, 10:52
Ответы с готовыми решениями:

MDI и липкие окошки
Здравствуйте; Пишу на C++ Builder XE; Подскажите, пожалуйста, можно (и можно ли вообще) реализовать такой интерфейс, как,...

Красивые, няшные, прозрачные окошки
как реализовать? вот несколько примеров того, что я хочу ...

IDE: как закрепить и приклеить окошки?
Всем здравствуйте. Привык работать в Visual Studio. Осваиваю Builder. Всё реально происходит быстрее как при компиляции, так и при...

5
 Аватар для oxotnik
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
03.11.2009, 11:01
см. в примерах к билдеру в папке ${BCB}\Examples\Docking
0
14 / 14 / 1
Регистрация: 18.09.2009
Сообщений: 45
03.11.2009, 13:06
речь о прилипании к краям???
тогда вот, держите:
.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void __fastcall TForm1::wm_windowposchanging(TMessage &msg)
{
     const int sensitivity = 10; //количество пикселей для прилипания
     RECT rcWorkArea = {0};
 
     if(SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, FALSE))
     {
         WINDOWPOS *wp = (WINDOWPOS*)msg.LParam;
 
         if(abs(wp->x - rcWorkArea.left) <= sensitivity)
             wp->x = rcWorkArea.left;
         if(abs(wp->y - rcWorkArea.top) <= sensitivity)
             wp->y = rcWorkArea.top;
         if(abs(wp->cx + wp->x - rcWorkArea.right) <= sensitivity)
            wp->x = rcWorkArea.right - wp->cx;
         if(abs(wp->cy + wp->y - rcWorkArea.bottom) <= sensitivity)
             wp->y = rcWorkArea.bottom - wp->cy;
     }
     TForm::Dispatch(&msg);
}
.h
C++
1
2
3
4
5
6
7
8
...
private:
        void __fastcall wm_windowposchanging(TMessage &msg);
public:
        ...
        BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, TMessage, wm_windowposchanging)
        END_MESSAGE_MAP(TForm)
2
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
03.11.2009, 18:29
P.S. А это к какому разделу FAQ относится? К интерфейсу ?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
03.11.2009, 21:24
Для MDI-child'ов почему-то прилипание только к левому и верхнему краям делается, но это в общем фигня. Есть два вопроса:

1. У меня есть много окон одного и того же класса. Если для какого-то конкретного экземпляра окна я НЕ хочу делать прилипание, то для этого экземпляра по сути надо пропустить код внутри if'а, после чего сообщение будет передано без изменений. Так?
2. Теперь я хочу сделать прилипание к другим MDI-child'ам. Как внутри этого метода можно получить список всех MDI-child'ов?

Добавлено через 2 минуты
Цитата Сообщение от oxotnik Посмотреть сообщение
см. в примерах к билдеру в папке ${BCB}\Examples\Docking
Что-то там нифига не прилипает. Более того, даже не прорисовывается при движении (только рамочка двигается)
0
 Аватар для Whatson2
8 / 8 / 1
Регистрация: 06.09.2014
Сообщений: 52
17.04.2015, 11:18
Save.L, если отключить "Отображать содержимое окна при перетаскивании" (на старых машинах), то прилипание рамки (осталось от окошка) не будет. А вот у клиента Steam работает даже тогда
Поэтому, чтобы рамка залипала надо ловить также
C++
1
2
3
4
5
6
case WM_MOVING: {
    RECT rcWorkArea = {0};
    if(SystemParametersInfo(SPI_GETWORKAREA, 0, &rcWorkArea, FALSE)) {
        RECT *wp = (RECT*)Msg.LParam; //собственно рамка
           ....
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.04.2015, 11:18
Помогаю со студенческими работами здесь

окошки
Проблема есть небольшая.Я не хнаю как создавать и работать c виндовскими окнами. напишите только с объяснениями.

Activity окошки
Всем привет, в чем разница между активити окошками. и можете привести примеры приложении. http://i.**********/XyoxzYj.png ...

Унилие окошки
В WinApi содержимое окошок(кнопочки, штрючечки, фигнюлички)выглядит унило(как в Windows 98) .... Как его сделать красивым и...

Всплывающие окошки
Привет всем!! Помогите сделать всплывающие окошки при наведение на объекты карты города=) Кто захочет посмотреть код...киньте свой...

Всплывающие окошки
Добрый день. Коллеги, что-то не сообразить - на чем можно сделать всплывающие окошки с уведомлениями? Толстый клиент.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru