Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нестандартные кнопки, как? 
:(
    Опции темы
deniska
Дата 15.8.2006, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет.
Возникла проблема: 
Необходимо сделать кнопку так, чтобы она принимала форму картинки из bmp какого-нибудь например. Хотелось бы по проще это сделать например на основе TBitButton. Лазил по поиску но ничего не нашел.
PM MAIL ICQ   Вверх
stmamont
Дата 15.8.2006, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



посмотри снизу похожие темы


--------------------
user posted image
PM MAIL ICQ   Вверх
Gordon
Дата 15.8.2006, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



deniska, посмотри здесь FAQ , может найдешь что-нибудь полезное...

P.S. Вкладка "Button".


--------------------

  
     
PM MAIL WWW   Вверх
deniska
Дата 15.8.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Решил попробовать с окна в виде рисунка бмп.
В общем получилось обрезать границы окна по рисунку. а как отобразить сам рисунок на окне?
Все примеры на VC. даже текст отрисовать не получилось
Код

      PAINTSTRUCT ps;
      BeginPaint(hWnd,&ps);
      SetBkMode(ps.hdc,TRANSPARENT);
      SetTextColor(ps.hdc,RGB(255,0,0));
      TextOut(ps.hdc, 115,90, "ччччччччччччччч", 11);
      EndPaint(hWnd,&ps);


почему например это в бидере не работает
PM MAIL ICQ   Вверх
Fixin
Дата 15.8.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



А в чем ошибка-то?
Код
      HWND hWnd = Application->Handle;
      PAINTSTRUCT ps;
      HDC hdc = BeginPaint(hWnd,&ps);
      SetBkMode(hdc,TRANSPARENT);
      SetTextColor(hdc,RGB(255,0,0));
      TextOut(hdc, 115,90, "ччччччччччччччч", 11);
      EndPaint(hWnd,&ps)


Добавлено @ 14:51 
BeginPaint and EdnPaint можно использовать только в обработчике собsтия WM_PAINT (OnPaint). Во всех других случаях нужно использовать обертку 
Код
HDC dc = GetDC(hWnd);
// рисуем, выводим...
ReleaseDC(hWnd, hdc);

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


Опытный
**


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

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



да не в чем. просто строка не появляется.
Ну ладно с этим я разобрался.
вместо 
Код

HDC hdc = BeginPaint(hWnd,&ps);

надо
Код

HDC hdc =GetDC (hWnd);


Вопрос остается: как на обрезанной форме отобразить рисунок по которому я ее обрезал.
PM MAIL ICQ   Вверх
Fixin
Дата 15.8.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



Приведи код, который ты создал. Ты через регион создаешь область вывода?
PM MAIL ICQ   Вверх
deniska
Дата 15.8.2006, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

   Graphics::TBitmap* bmp;
   bmp = new Graphics::TBitmap;
   bmp->LoadFromFile( ExtractFileDir( Application->ExeName )+"\\testimage.bmp" );
   TPoint p;
   p.x = 1;
   p.y = 1;
   HRGN hReg = CreateRgnFromBitmap( bmp, p, true );
   SetWindowRgn( Form1->Handle, hReg, true );

после этого кода форма обрезается как надо.
как поместить в нее изображение из файла??????
CreateRgnFromBitmap - функция создающая регион из файла (ее в факе нашел)
PM MAIL ICQ   Вверх
deniska
Дата 16.8.2006, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Никто не ответил и ладно. С формой разобрался.
Можно создать любой формы, с любым рисунком внутри, и еще мышой таскать за любое место.
Теперь все же к кнопкам:
проблема такая: чтобы я не нарисовал на кнопке, все закрашивается стандартной кнопкной так как видимо билдер делает перерисовку контролов после юзверского Form::OnPaint. (а может причина в другом??)Как это можно обойти?

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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