Дочернее не MDI окно на таскбаре, независимо от того в каком
От: BaZ  
Дата: 19.08.05 13:12
Оценка:
Вот пишу чат, необходима система оповещения пользователя о получении нового сообщения, стоит две задачи :
1 — Поместить окно на таскбар
2 — Мигать им пока пользователь не активирует окно

Первую задачу пробовал решить путем :
...
procedure TfrmPrivateMesage.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_Ex_AppWindow;
Params.WndParent := frmMain.Handle;
end;
...

вроди все ок, но если главное окно теряет фокус, или нидайбог в трей сворачивается, все, окошечко скрывается с таскбара...

p/s/ окна создаются динамически

Заранее спасибо всем кто ответит !!!

--- я тут новичек , не судите строго , поиск юзал
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Дочернее не MDI окно на таскбаре, независимо от того в к
От: Softwarer http://softwarer.ru
Дата: 19.08.05 13:26
Оценка: 2 (1)
Здравствуйте, BaZ, Вы писали:

BaZ> Params.WndParent := frmMain.Handle;


Я бы убрал вот это.
Re: Дочернее не MDI окно на таскбаре, независимо от того в к
От: Danchik Украина  
Дата: 19.08.05 13:32
Оценка: :)
Здравствуйте, BaZ, Вы писали:

BaZ>Вот пишу чат, необходима система оповещения пользователя о получении нового сообщения, стоит две задачи :

BaZ>1 — Поместить окно на таскбар
BaZ>2 — Мигать им пока пользователь не активирует окно

BaZ>Первую задачу пробовал решить путем :

BaZ>...
BaZ>procedure TfrmPrivateMesage.CreateParams(var Params: TCreateParams);
BaZ>begin
BaZ> inherited;
BaZ> Params.ExStyle := Params.ExStyle or WS_Ex_AppWindow;
BaZ> Params.WndParent := frmMain.Handle;
BaZ>end;
BaZ>...

BaZ>вроди все ок, но если главное окно теряет фокус, или нидайбог в трей сворачивается, все, окошечко скрывается с таскбара...


BaZ>p/s/ окна создаются динамически


BaZ>Заранее спасибо всем кто ответит !!!


BaZ>--- я тут новичек , не судите строго , поиск юзал


Плыл, плыл, как кто то уже оговорил на этом форуме, и у утонул на береге
Проставь Params.WndParent := 0;

procedure TfrmPrivateMesage.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle   := Params.ExStyle or WS_Ex_AppWindow;
  Params.WndParent := 0;
end;


Мигать будем так (просто пример, тюнай под свои потребности, главное — идея ):

type
  TFlashWindowProc = function (hWnd: HWND; bInvert: BOOL): BOOL; stdcall;
  TFlashWindowExProc = function (var pfwi: FLASHWINFO): BOOL; stdcall;

const
  cntUser32Library  : HMODULE = 0;
  FlashWindowProc   : TFlashWindowProc = nil;
  FlashWindowExProc : TFlashWindowExProc = nil;

function User32Library : HMODULE;
begin
  if cntUser32Library = 0 then
    cntUser32Library := SafeLoadLibrary (user32);
  Result := cntUser32Library;
end;

procedure InitUser32Procs;
begin
  if User32Library <> 0 then begin
    FlashWindowProc := GetProcAddress (User32Library, 'FlashWindow');
    FlashWindowExProc := GetProcAddress (User32Library, 'FlashWindowEx');
  end;
end;

procedure MakeWindowFlash (Wnd : HWND);
var
  K : Integer;
  FlashInfo : TFlashWInfo;
begin
  if Assigned (FlashWindowExProc) then begin
    FillChar (FlashInfo, SizeOf (FlashInfo), 0);
    FlashInfo.cbSize := SizeOf (FlashInfo);
    FlashInfo.hwnd := Wnd;
    FlashInfo.dwFlags := FLASHW_ALL;
    FlashInfo.uCount := 3;
    FlashInfo.dwTimeout := 70;
    FlashWindowExProc (FlashInfo);
  end else
    if Assigned (FlashWindowProc) then begin
      for K := 1 to 8 do begin
        FlashWindowProc (Wnd, True);
        Sleep (40);
        FlashWindowProc (Wnd, False);
      end;
    end;
end;


initialization
  InitUser32Procs;
Re[2]: Дочернее не MDI окно на таскбаре, независимо от того
От: BaZ  
Дата: 20.08.05 16:13
Оценка:
Здравствуйте, Danchik,

Спасибо огромное ) буду тестить
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Дочернее не MDI окно на таскбаре, независимо от того в к
От: BaZ  
Дата: 21.08.05 11:53
Оценка:
Все очень хорошо, но фот помещаем компонент TteForm и начинаются чудеса (((

кто может посмотреть?

компонент из библиотеки ThemeEngine
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Дочернее не MDI окно на таскбаре, независимо от того
От: BaZ  
Дата: 21.08.05 12:03
Оценка:
Здравствуйте, BaZ, Вы писали:

BaZ>Все очень хорошо, но фот помещаем компонент TteForm и начинаются чудеса (((


BaZ>кто может посмотреть?


BaZ>компонент из библиотеки ThemeEngine


а чудеса следующие:
показывает окно свернутое в делфевом стиле тоесть заголовок и ширина пикселей 150 ((

а надо бы чтоб оно истинный размер окна показывало .. вот
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.