View Full Version : [c] Focus finestra
Ragazzi sto realizzando un programma che invia degli input ad una finestra che può non avere il focus.
Dato che sono un noob per quanto riguarda le api win32 sapreste aiutarmi?
Ho capito che devo prendere l'handle della finestra a cui voglio attribuire il focus e poi.. ?
Che funzione devo richiamare per assegnarle il focus? :confused:
slartibartfast
31-07-2009, 17:52
SetFocus(hWnd);
SetFocus(hWnd);
grazie.. e per prendere l'handler?
edit: ho provato così: SetFocus(FindWindow("firefox", NULL));
ma non funziona granchè
slartibartfast
31-07-2009, 18:31
http://msdn.microsoft.com/en-us/library/ms633499%28VS.85%29.aspx
Nessuno che lo sappia fare?
banryu79
03-08-2009, 11:34
grazie.. e per prendere l'handler?
edit: ho provato così: SetFocus(FindWindow("firefox", NULL));
ma non funziona granchè
Facendo come tu hai fatto non funziona, e il perchè non funziona (e di conseguenza il come vada fatto) lo vedi grazie al link che ti ha postato slartibartfast...
Come si vede dalla documentazione, il primo argomento passato alla FindWindow è il "Class Name" della finestra, e il secondo parametro è la "Window Title" ovvero il titolo che compare nella barra del titolo (appunto).
Tu passi la stringa "firefox" come Window Class Name, e mi sa che non è la stringa corretta, leggendo in giro su internet ho letto cha la Class Name per FireFox è la stringa: "MozillaUIWindowClass"...
[OT]
@slartibartfast: ma te sei per caso lo stesso slartibartfast autore del mod "Texture Fix - Balmora Expansions? Se sì complimentissimi, Morrowind è il mio gioco per PC preferito di sempre :)
Facendo come tu hai fatto non funziona, e il perchè non funziona (e di conseguenza il come vada fatto) lo vedi grazie al link che ti ha postato slartibartfast...
Come si vede dalla documentazione, il primo argomento passato alla FindWindow è il "Class Name" della finestra, e il secondo parametro è la "Window Title" ovvero il titolo che compare nella barra del titolo (appunto).
Tu passi la stringa "firefox" come Window Class Name, e mi sa che non è la stringa corretta, leggendo in giro su internet ho letto cha la Class Name per FireFox è la stringa: "MozillaUIWindowClass"...
[OT]
@slartibartfast: ma te sei per caso lo stesso slartibartfast autore del mod "Texture Fix - Balmora Expansions? Se sì complimentissimi, Morrowind è il mio gioco per PC preferito di sempre :)
Ho provato così SetFocus(FindWindow("MozillaUIWindowClass", NULL));
ma una finestra in secondo piano resta in secondo piano
slartibartfast
03-08-2009, 19:32
Ho provato così SetFocus(FindWindow("MozillaUIWindowClass", NULL));
ma una finestra in secondo piano resta in secondo piano
Per portarla in primo piano puoi usare la funzione "SetWindowPos" in questo modo:
SetWindowPos(FindWindow("MozillaUIWindowClass", NULL), HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
@banryu79 Non sono lui, anche se morrowind piace molto anche a me :)
banryu79
04-08-2009, 08:30
@banryu79 Non sono lui, anche se morrowind piace molto anche a me :)
Ok, mi ha tradito il nick: pensavo fosse piuttosto originale e quindi che fosse difficile incappare in un "omonimo" ;)
EDIT: visto adesso da dove salta fuori il nick, stupido io a non aver pensato di controllare subito su Google, ottimo libro, dovrò leggerlo prima o poi:)
Per portarla in primo piano puoi usare la funzione "SetWindowPos" in questo modo:
SetWindowPos(FindWindow("MozillaUIWindowClass", NULL), HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
@banryu79 Non sono lui, anche se morrowind piace molto anche a me :)
Ho provato ma non funziona :muro:
slartibartfast
04-08-2009, 10:53
Hai ragione, la funzione giusta è
SetForegroundWindow(FindWindow("MozillaUIWindowClass", NULL));
Hai ragione, la funzione giusta è
SetForegroundWindow(FindWindow("MozillaUIWindowClass", NULL));
Grandissimo :D
Funziona perfettamente grazie
banryu79
04-08-2009, 11:21
Grandissimo :D
Funziona perfettamente grazie
Ehi, e io?
Ti ho trovato la giusta stringa per la Window Class Name :sofico: ingrato :D
slartibartfast
04-08-2009, 11:22
Ehi, e io?
Ti ho trovato la giusta stringa per la Window Class Name :sofico: ingrato :D
:ciapet:
Ehi, e io?
Ti ho trovato la giusta stringa per la Window Class Name :sofico: ingrato :D
certo grazie :p era essenziale..
ragazzi ultimissima cosa.. e se volessi ripristinare un programma ridotto a icona?
slartibartfast
04-08-2009, 11:32
certo grazie :p era essenziale..
ragazzi ultimissima cosa.. e se volessi ripristinare un programma ridotto a icona?
ShowWindow(hWnd, SW_RESTORE);
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.