Fereastra programului deasupra altor ferestre

fereastra programului pe partea de sus a altor ferestre

Spuneți-mi ideea: cum aș putea să văd să arăt fereastra programului peste toate celelalte ferestre? fsStayOnTop nu este potrivit, deoarece, să zicem, jocuri, această fereastră se închide încă. Un exemplu este fraps, fereastra lui întotdeauna atârnă în partea de sus.






Ceva pe care nu o găsesc nicăieri. Sfaturi de ajutor!

Spit, nu va funcționa. Doar încercați să rulați două dintre copii ale programului și asigurați-vă că acestea sunt coerente în ceea ce privește aceste două copii. Acum, imaginați-vă un alt Napoleon.


> Exemplu - Fraps, fereastra lui întotdeauna atârnă în partea de sus.

Fraps își blochează codul pe funcțiile DirectX și OpenGL.
a se vedea frags faq undeva în final.
Ie indicatorul său nu este o fereastră deloc.

Și poate în mod constant Invalidați? În cronometru?

> Și poate invalida permanent

Și alte opțiuni pe care nimeni nu le știe? Da, nu poate fi.

Și nu există nici o soluție normală găsită.

În cronometrul setwindowpos, precum și invalidate și orice altceva nu funcționează: fereastra fie nu este afișată deloc, fie SO intermitentă! Și când te referi la ea, jocul este minimizat (care, totuși, este natural, dar aș vrea să mă încurc).

Dacă te duci în jurul și asigurați-vă că chtooby în timpul jocurilor Fraps am atârnat pe tipul de indicator „ovogo, iar alteori - o simplă fereastră cu stil stayontop, se pune întrebarea: cum să“ atârne cod DirectX „și este posibil să se facă un contor de timp? frecventă?

Spune-mi ceva, pliz! Deși ideea, îmi dau seama. Unde ești, stăpâni?

> Lessa # xA0; (28/05/04 09:28) [10]
Aș încerca să fac o capcană globală de interceptare a mesajelor în care am procesat WM_WINDOWPOSCHANGING, WM_ACTIVATE. Și dacă nu fereastra mea încearcă să iasă, nu-l lăsa să o facă.







Nu, nu am nevoie să nu lăsăm pe altcineva să iasă pe fereastră. Este necesar ca fereastra a fost doar peste, și că acesta este accesat jocul nu este pliat. Este posibil acest lucru? Și apoi, poate, am fugit cu anchetele lor.

> Lessa # xA0; (28.05.04 10:28) [12]
> Nu, nu trebuie să las ferestră pe altcineva să iasă
N-am vrut să-ți ascund. Doar să nu-l lași să urce sau să-ți transfere cu forța fereastra.

Um. Și aceasta este o idee bună. O să încerc. Și este posibil mai mult în detaliu?

> Lessa # xA0; (28.05.04 10,45) [14]
Ce anume este mai specific?

Despre capcanele. Ce anume este captura? De asemenea, ce să faci la interceptare? Și care va fi rezultatul aproximativ?

puteți să desenați un cronometru pe DC al acelei ferestre deasupra sau direct pe desktop (dc = 0).

Um. Și aceasta este o idee bună. O să încerc. Și este posibil mai mult în detaliu?

Idee rea.
Se bazează pe faptul că nimeni nu folosește această metodă. În caz contrar, nu funcționează.

> Idee rea.
Iartă-mă, nu am înțeles: de ce e rău?

> Puteți să desenați cronometrul direct pe DC al acelei ferestre care> deasupra sau direct pe desktop (dc = 0).
Timerul este prea lent pentru a funcționa și totul clipește, clipește și este extrem de enervant. Și apoi, dacă doar desenați, este posibil să faceți clic pe această imagine pentru a se aplica programului meu.

Am scris într-un rând și în limba rusă de ce este rău.


> că toată lumea ar fi în fruntea tuturor

Ei bine, sa zicem ca nu am spus asta :) Personal, ma intereseaza cum sa fac fereastra sa ajunga in partea de sus a jocului cel putin pentru un moment si apoi lasa-l sa acopere cat vrei.


>> Poți să desenezi un cronometru direct pe DC al ferestrei
>> de sus sau direct pe desktop (dc = 0).
> Timerul este prea lent pentru funcționare și toate acestea clipesc, intermitent
și teribil de enervant. Și atunci, dacă doar desenați, este așa
> Puteți face clic pe această imagine pentru a contacta programul meu.

Luați cronometrul multimedia. A cui de multe ori contorul de timp și va fi vizibil.
Dar un astfel de desen des întâlnit poate duce foarte mult la sistem.
Faceți clic pentru a prinde, plasând un cârlig global. Pe un alt esen, este imposibil.

> Personal, sunt curios - cum să fac fereastra să iasă
> peste joc cel puțin pentru o vreme, apoi lăsați-o
> se suprapun cât de mult îți dorește inima.

SetWindowPos () + HWND_TOPMOST

Încercați acest lucru:

procedura TForm1.FormPaint (expeditor: TObject);
începe
# xA0; SetWindowPos (Mâner, HWND_TOPMOST, Stânga, Înălțime, Lățime, Înălțime, 0);
se încheie;

Vă mulțumesc tuturor pentru sfaturile dvs. (într-un alt program m-au ajutat foarte mult)!







Articole similare

Trimiteți-le prietenilor: