PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 11-04-2007 14:54:58

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

trouver la fenêtre courante

J'aimerai trouver une fonction ou dans une DLL qui me dit quelle est la fenêtre courante(une fonction de windows)?

Hors ligne

 

#2 11-04-2007 14:56:21

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: trouver la fenêtre courante

et dans quel but ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 11-04-2007 14:59:56

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: trouver la fenêtre courante

Cela me permet de savoir quel fenêtre est active à un moment bien précis!!!

Sur un autre forum, on m'a donné cela :

Code: vb

Private Declare Function GetForegroundWindow Lib "user32" () As Integer
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByRef hwnd As Integer, ByRef lpString As String, ByRef cch As Integer) As Integer

  Dim a As Integer = GetForegroundWindow
        Dim Titre As String = ""
        Dim L As Integer = GetWindowText(a, Titre, 256) 'L retourne la longueur de la chaîne,Titre retourne le titre de la fenêtre.

Qu'en pensez vous???

Dernière modification par poche (11-04-2007 15:01:09)

Hors ligne

 

#4 11-04-2007 15:05:04

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: trouver la fenêtre courante

si c'est une window de type mdi, main... tu peux le savoir...via une fonction powerbuilder


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#5 11-04-2007 15:06:05

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: trouver la fenêtre courante

Si tu es dans une MDI, tu as la fonction GetActiveSheet:

Code: pb

//These statements determine the active sheet in the MDI frame window w_frame and change the text of the menu selection m_close on the menu m_file on the menu bar m_main. If no sheet is active, the text is Close Window:

// Declare variable for active sheet

window activesheet

string mtext

activesheet = w_frame.GetActiveSheet()

IF IsValid(activesheet) THEN

    // There is an active sheet, so get its title;

    // change the text of the menu to read

    // Close plus the title of the active sheet

    mtext = "Close " + activesheet.Title

    m_main.m_file.m_close.Text = mtext

ELSE

    // No sheet is active, menu says Close Window

    m_main.m_file.m_close.Text = "Close Window"

END IF

Dernière modification par foon (11-04-2007 15:07:14)


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#6 11-04-2007 15:09:17

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: trouver la fenêtre courante

Ce nest pas une mdi!!!

Hors ligne

 

#7 11-04-2007 15:09:23

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: trouver la fenêtre courante

oui, voila, c'est bien ca...

sinon, au pire des cas...pour tous les types de fenetre...
tu declares une variable globale,
à chaque ouverture d'une fenetre, tu references dans cette variable.
la, au moins, tu es sure ...


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#8 11-04-2007 15:13:07

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: trouver la fenêtre courante

ok, mais je ne sais pas comment faire sa car je suis encore novice sur PB!!!!
je vois comment la déclarer en global mais ou la mettre à jour cette variable, à chaque open d'une fenêtre, on m'a dis de la mettre dans l'ancètre des fenêtres car en fait toute les fenètres hérite de cette fenètre...

Dernière modification par poche (11-04-2007 15:22:00)

Hors ligne

 

#9 11-04-2007 15:23:49

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: trouver la fenêtre courante

Je te conseille plutôt de coder cà dans l'événement "Activate" de ta fenêtre:

Code: pb

gw_mywindow = This

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#10 12-04-2007 06:50:54

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: trouver la fenêtre courante

Si je veux mettre une condition sur une variable de type window, comment faire (si il n'y a rien dans la variable "iw_prec",):
ex :

Code: pb

if  (iw_prec= ? ) then
        iw_prec=gnuo_global.gw_activate
                end if

Dernière modification par poche (12-04-2007 07:01:52)

Hors ligne

 

#11 12-04-2007 07:18:32

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2486
Pépites: 85
Banque: 9,223,372,036,854,776,000

Re: trouver la fenêtre courante

Il vaudrait mieux tester si ta variable est NULL:

Code: pb

if  IsNull( iw_prec ) then

        iw_prec = gnuo_global.gw_activate

end if

Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#12 12-04-2007 08:43:32

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: trouver la fenêtre courante

pour tester la fenêtre :

Code: pb

if isvalid( iw_prec) then

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#13 12-04-2007 12:59:07

poche  
Membre Power Geek
Date d'inscription: 19-12-2006
Messages: 282
Pépites: 2,392
Banque: 0

Re: trouver la fenêtre courante

Merci

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22