Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
J'aimerai trouver une fonction ou dans une DLL qui me dit quelle est la fenêtre courante(une fonction de windows)?
Hors ligne
Cela me permet de savoir quel fenêtre est active à un moment bien précis!!!
Sur un autre forum, on m'a donné cela :
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
si c'est une window de type mdi, main... tu peux le savoir...via une fonction powerbuilder
Hors ligne
Si tu es dans une MDI, tu as la fonction GetActiveSheet:
//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)
Hors ligne
Ce nest pas une mdi!!!
Hors ligne
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 ...
Hors ligne
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
Je te conseille plutôt de coder cà dans l'événement "Activate" de ta fenêtre:
gw_mywindow = This
Hors ligne
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 :
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
Il vaudrait mieux tester si ta variable est NULL:
if IsNull( iw_prec ) then iw_prec = gnuo_global.gw_activate end if
Hors ligne
pour tester la fenêtre :
if isvalid( iw_prec) then
Hors ligne
Merci
Hors ligne