Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 40000 рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2020, 10:02   #1
Maetsky
Пользователь
 
Регистрация: 14.03.2011
Сообщений: 14
По умолчанию Прозрачность формы-гаджета

Решил сделать гаджет-песочные часы. Вставил на форму Image1, в нём Bitmap с изображением песочных часов. Те области часов, которые должны быть прозрачными, я залил красным цветом. Далее задал свойства формы:
Код:
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form1->Color=255;
Form1->TransparentColor=true;
Form1->TransparentColorValue=255;
}
//---------------------------------------------------------------------------
Пока всё хорошо. Далее вставил найденный в Интернете код, позволяющий убрать системные кнопки окна, значок моего приложения в панеле задач, сделать так, чтобы моё окно не сворачивалсоь и его можно было перемещать левой мышкой:
Код:
//---------------------------------------------------------------------------
bool SetToDesktop() {
  HWND listViewhwnd = FindWindowA("Progman", NULL);
  if(listViewhwnd) {
    listViewhwnd = FindWindowExA(listViewhwnd, NULL, "SHELLDLL_DefView", NULL);
    if(listViewhwnd) {
      listViewhwnd = FindWindowExA(listViewhwnd, NULL, "SysListView32", NULL);
      if(listViewhwnd) {
        Form1->BorderStyle = bsNone;
        ::SetParent(Form1->Handle, listViewhwnd);
        return true;
      }
    }
  }
  return false;
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
  if(!SetToDesktop())ShowMessage("Ошибка SetToDesktop");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
		  int X, int Y)
{
  long SC_DRAGMOVE = 0xF012;
  if(Button == mbLeft) {
  ReleaseCapture();
  SendMessage(Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0);
  }
}
//---------------------------------------------------------------------------
Теперь мой гаджет стал красным, прозрачность исчезла, т.е. свойство Form1->TransparentColor=true не работает. Тогда я задал свойство TransparentColor=true в инспекторе объектов в свойствах формы. При запуске приложения форму вообще перестало быть видно. Строка, из-за которой перестала работать прозрачность формы:
Код:
::SetParent(Form1->Handle, listViewhwnd);
Язык C++Builder 2009. Операционная система Windows Vista. Какими мыслями поделитесь, в каком направлении мне рыть? Попробую в других операционных системах и других версиях C++Builder.
Maetsky вне форума Ответить с цитированием
Старый 13.08.2021, 14:42   #2
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Код:
Гаджет – устройство или приспособление, название которого забыто
, что с формами ну ни как не сочетается.
taras-proger77 вне форума Ответить с цитированием
Старый 16.08.2021, 20:52   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 6,224
По умолчанию

taras-proger77, у слов появляются новые смыслы - см. раздел Сфера применения.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 17.08.2021, 08:37   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 3,422
По умолчанию

Но у программных гаджетов более принято - виджет.
digitalis вне форума Ответить с цитированием
Старый 25.08.2021, 17:56   #5
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
taras-proger77, у слов появляются новые смыслы - см. раздел Сфера применения.
Всё бы хорошо, да только это слово не просто английское, а английское матросское. Даже не английское морское, а именно английское матросское. И попробуйте перетолковать слово «око».
taras-proger77 вне форума Ответить с цитированием
Старый 25.08.2021, 20:27   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 6,224
По умолчанию

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
а английское матросское
Мне не важна этимология слова, если крупные компании (в лице Microsoft и Google) стали его использовать для обозначения мини-приложений.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 25.08.2021, 21:18   #7
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,028
По умолчанию

Пожалуй соглашусь с digitalis.
Программные безделушки вроде бы как виджетами обзывают.
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 26.08.2021, 07:46   #8
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Мне не важна этимология слова, если крупные компании (в лице Microsoft и Google) стали его использовать для обозначения мини-приложений.
Слово «кочерга» тоже стали использовать. Но это не значит, что кнопка энтэ стала так называться. А янки вообще верят, что их вариант лапты – это футбол. Кочерга – загнутая железяка для прочистки решёток в печах. А вот сами эти решётки – классические гаджеты. Наравне с абгалдырем, люверсом, эглетом. Печь, в ней горизонтальная решётка, под решёткой есть пространство, доступ к нему отрывается через нижнюю дверку, выше решётки другое пространство, в котором находится горящее топливо и доступ в которое отрывается через верхнюю дверку. Решётка чистится снизу кочергой, при этом с решётки вниз сыпется зола. Зола убирается небольшой стальной лопатой – шумовкой. Той же шумовкой в печь можно закинуть уголь. Задача: посчитать людей, способных без словарей и энциклопедий назвать правильное название этой решётки. И назови новые значения слов: «око», «рей», «кнехт», «талреп», «абгалдырь», «гарда».

Последний раз редактировалось taras-proger77; 26.08.2021 в 08:06.
taras-proger77 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прозрачность формы, при наведении мыши на кнопку реализовать изменение её положения относительно формы с невозможностью выхода за программирование Общие вопросы C/C++ 0 22.01.2014 21:31
Прозрачность формы. glebast Общие вопросы Delphi 1 17.01.2012 23:13
Прозрачность формы digital-stream Общие вопросы Delphi 0 23.05.2011 17:35
Прозрачность формы Asiman Общие вопросы Delphi 1 24.01.2010 19:41
прозрачность формы. blackstersl Общие вопросы Delphi 8 04.06.2009 12:22