Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2010, 12:43   #11
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Щас с "насущным" (пост №9) разберусь и буду выяснять.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 24.04.2010, 12:45   #12
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

а зачем ты делаешь дырку на розовом цвете...
Код:
SetLayeredWindowAttributes(FRMBack.Handle, $FF00FF, 50, $00000001 {LWA_COLORKEY});
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.04.2010, 12:56   #13
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Тьфу, елки, мне ж его вырезать надо...

Не, ну правильно, закрасил форму розовым, потом его вырезал. Тут же я какую систему для основы взял:

Т.к. не проводник отвечает за фоновую картинку, то, чтобы не ставить хук на клики мне проще положить форму TBack на фон, залить её фоновой картинкой и у неё обрабатывать клики. А СВЕРХУ кладу TMain, с интерфейсом, все, что не интерфейс - залито розовым, следовательно "просвечивает" до фоновой формы с обоями. Проще же так обрабатывать клики и эффекты.

Стоп... Вот я осел, я сейчас на Back`е розовый вырезал... Идиот...\


Вотъ, переписал на главную форму, включил её создание. Все работает, а прозрачности нет. Как будто игнорирует строки кода:
Код:
Procedure SetTransparent;
Begin
 UNTFRMExp.SetClassLong(FRMMain.Handle, -10 {BACKGROUND}, UNTFRMExp.CreateSolidBrush($FF00FF));
 UNTFRMExp.SetWindowLong(FRMMain.Handle, -20 {GWL_EXSTYLE},
    UNTFRMExp.GetWindowLong(FRMMain.Handle, -20 {GWL_EXSTYLE})
  Or $00080000 {WS_EX_LAYERED});
 UNTFRMExp.SetLayeredWindowAttributes(FRMMain.Handle, $FF00FF, 50, $00000001 {LWA_COLORKEY});
End;



UPD ---------------------------------------

Чтобы было более наглядно:
Код:
Procedure FillForm(Num : Integer);
Begin
 Case Num Of
  0: Begin
      FRMMain.ClsName := 'TMain';
      FRMMain.Left := 50;
      FRMMain.Top  := 50;
      FRMMain.Width  := UNTFRMExp.GetSystemMetrics(0)-100;
      FRMMain.Height := UNTFRMExp.GetSystemMetrics(1)-100;
      FRMMain.Parent := FRMBack.Handle;
     End;
  1: Begin
      FRMBack.ClsName := 'TBack';
      FRMBack.Left := 0;
      FRMBack.Top := 0;
      FRMBack.Width := UNTFRMExp.GetSystemMetrics(0);
      FRMBack.Height := UNTFRMExp.GetSystemMetrics(1);
      FRMBack.Parent := 0;
     End;
  End;
End;
Код:
Procedure WindowCreate(Var FRM : TShrewForm);
Begin
 FRM.hInst := UNTFRMExp.GetModuleHandle(Nil);
  With FRM.WinClass Do
   Begin
    Style := Cardinal(2) Or Cardinal(1); //$80;
    hIcon := UNTFRMExp.LoadIcon(FRM.hInst, PAnsiChar('MAINICON'));
    lpfnWndProc := @UNTFRMProc.WindowProc;
    hInstance := FRM.hInst;
    hbrBackground := 15 + 1;
    lpszClassName := FRM.ClsName;
    hCursor := UNTFRMExp.LoadCursor(0, PAnsiChar(32512));
   End;
 UNTFRMExp.InitCommonControls;
 UNTFRMExp.RegisterClass(FRM.WinClass);
 FRM.Handle := UNTFRMExp.CreateWindowEx(0, FRM.ClsName, 'Shrew',
 Cardinal($80000000) (* WS_POPUP *), FRM.Left, FRM.Top,
 FRM.Width, FRM.Height,
 FRM.Parent, 0,
 FRM.hInst, Nil);
End;
Код:
 UNTFRMProc.FillForm(1);
 UNTFRMProc.WindowCreate(FRMBack);
 UNTFRMProc.FillForm(0);
 UNTFRMProc.WindowCreate(FRMMain);
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 24.04.2010 в 13:03.
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить цвет окна Syltan Win Api 2 10.12.2010 20:52
Цвет пикселя неактивного окна. GrindeX Общие вопросы Delphi 2 08.11.2009 16:10
Как изменить цвет заголовка окна CraZZy RabbIt Общие вопросы Delphi 3 20.02.2009 15:47
Необходимо узнать о создании окна Alar Win Api 10 23.11.2007 19:33
Помогите добавить свой цвет в инспектор объектов!!! Denisich Общие вопросы Delphi 1 28.06.2007 23:03