Поиск:

Ответ в темуСоздание новой темы Создание опроса
> При BorderStyle=dsNone можно было двигать форму, Подвижность формы при BorderStyle=dsNone 
V
    Опции темы
MAXIQ
Дата 8.1.2007, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Здравствуйте! У меня интерфейс приложения не должен иметь верхней части формы, предлагаемой по умолчанию в Borland C++ Builder, то есть имени формы, кнопок минимизации, максимизации, и закрытия. А предлагать пользователю свой интерфейс с теми же кнопками, но нарисованными уже мной, фоном формы то же служит рисунок.  Однако если BorderStyle=dsNone то форма теряет подвижность, а в конкретном моем случае это не есть хорошо. Большая просьба подсказать как с этим бороться, желатьельно в примерах листинга и иллюстрациях)). Данная тема проскакивала на форуме, однако я там ничего не понял, ибо являюсь еще тем ламмером. Заранее признателен за сотрудничество.
PM MAIL   Вверх
anwe
Дата 8.1.2007, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: нет
Всего: 23



Тебе надо следить за сообщениями типа WM_NCHITTEST, которое посылается при перемещении указателя мыши по нерабочей части окна (заголовок, рамки и т.д.). Тебе надо реализовать нестандартную обработку этого сообщения (без его стандартной обработки). Вся суть здесь лежит в том, чтобы результату сообщения WM_NCHITTEST присвоить значение HTCAPTION, чтот будет означать, что, якобы, курсор находится над заголовком.
Такая теория. Как это сделать безо всяких хуков в 3 строки знаю, но на делфях. Если надо и сможешь разобраться могу показать.
PM MAIL   Вверх
Grom
Дата 8.1.2007, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 17.8.2006
Где: Москва

Репутация: 1
Всего: 1



MAXIQ, в хедере пиши

Код
private:
        void __fastcall OnMove(TWMNCHitTest &Message);
public:        // User declarations
        BEGIN_MESSAGE_MAP
           MESSAGE_HANDLER (WM_NCHITTEST,TWMNCHitTest,OnMove)
        END_MESSAGE_MAP (TComponent)


а в срр

Код

void __fastcall TForm1::OnMove(TWMNCHitTest &Message)
{
   Message.Result = HTCAPTION;
}

--------------------
Хостинг, Vds, Dedicated serve, регистрация доменов (RU,com,net,org) - обращаться в icq.
PM MAIL   Вверх
Link90
Дата 8.1.2007, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


"Битый" пиксель
*


Профиль
Группа: Участник
Сообщений: 214
Регистрация: 25.11.2005
Где: Иркутск - середин а земли!

Репутация: 3
Всего: 7



На OnMouseDown нужного тебе элемента (за который будешь такскать форму) напиши:
Код

long SC_DRAGMOVE = 0xF012;
if(Button == mbLeft)
{
ReleaseCapture();
SendMessage(Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0);
}

PM MAIL ICQ   Вверх
MAXIQ
Дата 8.1.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Спасибо всем участникам, код предложенный Grom абсолютно работоспособен! Если не трудно, то для полного раскрытия темы я бы попросил anwe написать подобную операцию на делфи, уже не ради решения конкретной проблемы, а для благодарных потомков, дабы не искали и не переспрашивали.  После чего вопрос можно считать полностью исчерпанным. Так же спасибо Link90 за внесенное разнообразие в методах решения поднятого вопроса.
PM MAIL   Вверх
MAXIQ
Дата 9.1.2007, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Хотел еще добавить: код от  Grom глушит все кнопки на форме, видно он перехватил все сообщения). Нормально работает код Link90.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.