Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > SetWindowPos – окно выше все остальных???


Автор: Nicholas 3.11.2004, 09:05
Я нахожу окошко по неполному названию следующей функцией:

Код

function TForm1.Find(s: string): hWnd;
var
 Wnd: hWnd;
 buff: array[0..127] of Char;
begin
 Find := 0;
 Wnd := GetWindow(Handle, gw_HWndFirst);
 while Wnd <> 0 do
 begin
   if (Wnd <> Application.Handle) and
     IsWindowVisible(Wnd) and
     (GetWindow(Wnd, gw_Owner) = 0) and
     (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) then
   begin
     GetWindowText(Wnd, buff, sizeof(buff));
     if pos(s, StrPas(buff)) > 0 then
     begin
       Find := Wnd;
       Break;
     end;
   end;
   Wnd := GetWindow(Wnd, gw_hWndNext);
 end;
end;

Обычно, окно выше все остальных я ставлю так:

Код

SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height ,
              SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);


Что-то заблудился в типах как мне из Wnd получить handle???
Или что-то еще можно придумать?
:sample

Автор: VIY 3.11.2004, 09:28

GetDC(GetWindow(Wnd, gw_hWndNext));

Автор: p0s0l 3.11.2004, 10:38
Цитата(Nicholas @ 3.11.2004, 09:05)

Что-то заблудился в типах как мне из Wnd получить handle???
:) Wnd и есть тот Handle

Автор: Nicholas 4.11.2004, 04:14
Цитата(p0s0l @ 3.11.2004, 10:38)

Wnd и есть тот Handle


:hehe , я тему создал, а потом читал ее читал, так и не понял с чего я взял, что wnd и handle есть разные вещи, ведь в описании функций-то типы указаны wnd ... Заработался ...





Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)