begin process at 2012 05 29 06:04:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Fenetre au premier plan


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fenetre au premier plan

vendredi 13 janvier 2006 à 14:26:04 | Fenetre au premier plan

SnOOpss

Bonjour suite a mon probleme de capture d'ecran on resolu (cf http://www.cppfrance.com/forum.v2.aspx?ID=631298) j'ai essayé de prendre mon probleme autrement et j'en suis la.

    case WM_WINDOWPOSCHANGED:{
        LPWINDOWPOS lpwp;
        lpwp=(LPWINDOWPOS)lParam;
        if (lpwp->hwndInsertAfter!=NULL)) {
             result = CallWindowProc(dlg->testold,hwnd,uMsg,wParam,lParam);
            HDC hdc = GetWindowDC(dlg->hwnd);
            dlg->tmp=NULL;
            SetWindowRgn(dlg->hwnd,NULL,TRUE); // je remet a zero vu que justement j'ai eu mon bug inexpliqué.
            DessinDialog( *dlg ,hdc);
            dlg->tmp=CaptureScreen(hdc,dlg->largeur,dlg->longueur);
            if (dlg->tmp) {
                HRGN rgn = BmpToRgn(dlg->tmp,RGB(0,0,0));
                SetWindowRgn(dlg->hwnd,rgn,TRUE);
                DeleteObject(rgn);
            }
            return result;
            }
    }
    break;

Mais ceci ne marche QUE si la fenetre ne s'affiche pas au premier plan.
Donc j'ai laissé


    dlg->tmp=NULL;
                DessinDialog( *dlg ,hdc);

                dlg->tmp=CaptureScreen(hdc,dlg->largeur,dlg->longueur);

                if (dlg->tmp) {
                    HRGN rgn = BmpToRgn(dlg->tmp,RGB(0,0,0));
                    SetWindowRgn(dlg->hwnd,rgn,TRUE);
                    DeleteObject(rgn);
                }

au debut de mon prog.
En fait je cherche le moyen de savoir si oui ou non une fenetre est au premier plan
IsVisible() m'affiche toujour true (meme si on voit rien) et je ne trouve pas le handle que me renvoi GetTopWindow().

Pareil pour
lpwp->hwndInsertAfter je met lpwp->hwndInsertAfter!=NULL car quand ce n'est pas les flags qu'il me renvoi, il me renvoi un HWND que je ne trouve pas (ni celle de ma fenetre, ni celle ne l'appli affichant cette fenetre).

En terme de performance mon bricolage ne vaut rien car les fonction sont exécutées 2 a 4 fois minimum alors qu'une seule fois est suffisante (et celles ci sont tres lourde dessindialog(),
BmpToRgn() et CaptureScreen()).



vendredi 13 janvier 2006 à 14:35:36 | Re : Fenetre au premier plan

BruNews

Administrateur CodeS-SourceS
GetForegroundWindow() ne te conviendrait pas ?

ciao...
[ Lien ]
BruNews, MVP VC++
vendredi 13 janvier 2006 à 16:37:56 | Re : Fenetre au premier plan

SnOOpss

Si si ,c'etait exactement ca qu'il me manquait dans la premier partie nickel merci.
Maintenant si les fenetre sont au premier plan tout marche en une seule fois.
Si une seule fenetre est crée ca marche aussi nickel.
Si 2 fentres sont créées en arriere plan au moment ou je remet l'application au premier plan une des deux fenetre deconne.
En fait ma partie avec WM_WINDOWPOSCHANGED s'execute pour le premiere fenetre alors qu'elle n'est pas visible au moment de la creation de la deuxieme fenetre en arriere plan (donc je me retrouve avec la mauvaise capture d'ecran).

Quelqu'un connaitrait un moyen sur d'etre prevenu lorsqu'une fenetre passe au premier plan ?? Je galere comme un fou avec 
WM_WINDOWPOSCHANGED, la je suis en tran de me battre avec GetNextWindow() pour essayer de comprendre lpwp->hwndInsertAfter!!

vendredi 13 janvier 2006 à 19:14:55 | Re : Fenetre au premier plan

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Reagarde WM_ACTIVATEAPP et WM_ACTIVATE.

ciao...
[ Lien ]
BruNews, MVP VC++
samedi 14 janvier 2006 à 10:46:42 | Re : Fenetre au premier plan

SnOOpss

Nickel merci en plus vu qu'elle sont activées a tout de role des que je met l'application "parente" en premier plan je devrais pouvoir me demerder pour eviter quelle se chevauche l'une l'autre.
Reponse courte, rapide et c'est toujours le truc tout con qu'on cherche, si les hotlines pouvaient etre comme vous ce serait le paradis



Cette discussion est classée dans : fenetre, hwnd, hdc, dlg, tmp


Répondre à ce message

Sujets en rapport avec ce message

Une fenetre animee transparente [ par anthraxx ] Anthrax ignisque -- Le charbon et le feu C la seconde foi ke je poste sur ce sujet, mais j'ai un autre probleme. En gros: j'ai une fenetre transparent Dll Visual Aide [ par TheMaster ] Salut!j'ai un probleme, j'ai créer un logiciel permettant de visualiser des images.Les images sont stocke en ressource dans un dll.Mais je n'arrive pa probleme openGl niveau debutant [ par AmK ] salut je debute en openGL et j'ai du mal a creer une fenetre le compilateur me mets 2 erreurs :PS: les erreurs du compilateur(vc++ 6.0)sont plus bas ! API, probleme de synchronisation?? refresh visible dans la dlg:( [ par JackosKing ] yOp,Bon voilà, je debute en API? et je voulais coder des menus persos, le probleme c'est que ma fenetre n'arrete pas de se refresh, meme quand il n'y Edit Control [ par cybermatthieu ] Bonjours,Je suis en Train d'apprendre comment progrmmer en Win32 avec la Class Windows.h. Ce petit programme ne fait q'afficher des caracter mais j'ai Question à propos de DrawText [ par Freeman2222 ] Hello tlm! J'ai écrit une application windows qui m'affiche du texte dans un rectange prédéfini mais le prob c'est que DrawText ne revient pas automat API :: gestion du mulo [ par JackosKing ] LRESULT CALLBACK Twiny::WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ static bool activate = FALSE; switch ( message ) { case WM_MO disparition de mon bitmap. [ par oRTEEZ ] Voila j'ai une fenetre dans lequel je load mon un bitmap al'aide de la fonction suivante. Mon probleme es t que si je passe sur un autre prog mon imag plusieur fenetre mais une seule en mémoire... [ par Xs ] Bon, voila.Quand je fais une nouvelle fenetre avec un code ressemblant a ca : hwnd = CreateDialog(...);ShowWindow(hwnd,SW_SHOW);......bon, et bien il LoadImage DevC++ [ par guitoulefoux ] Bonjour,Je cherche a mettre un fond d'écran dans ma form.Pour cela il faudrait que j'utilise loadimage.Je pense déjà avoir pas bien avancé (Merci BruN


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales