Page 1 sur 1

Focus avec un WebGadget

Publié : dim. 10/févr./2008 12:34
par Le Soldat Inconnu
Coucou, je coince sur un truc :

Je n'arrive pas à savoir si un webgadget à le focus ou non.

Avec getactivegadget(), ca ne marche pas, ou alors j'ai fait ca comme un pied.

Si vous avez une idée

Merci

Publié : dim. 10/févr./2008 13:02
par nico
Bien s'il n'est pas possible de détecter le focus avec l'API GetFocus_() alors je suppose qu'il faut que tu détectes le click sur le WebGadget; un mouse Hook te permettrait de faire facilement cela.

Publié : lun. 11/févr./2008 23:13
par nico
Un code du forum anglais:

Code : Tout sélectionner

Procedure WinCallback(hwnd, msg, wParam, lParam)
  result = #PB_ProcessPureBasicEvents
  If msg = #WM_PARENTNOTIFY
    Select wParam &$FFFF
      Case #WM_LBUTTONDOWN, #WM_RBUTTONDOWN
        hGad = ChildWindowFromPoint_(hwnd, lParam &$FFFF, lParam >>16 &$FFFF)
        idGad = GetDlgCtrlID_(hGad)
        SetGadgetText(2, "Focused Gadget ID is #" + Str(idGad) + " " + GetGadgetItemText(idGad, #PB_Web_PageTitle))
    EndSelect
  EndIf
  ProcedureReturn result
EndProcedure
If OpenWindow(0, 0, 0, 600, 500, "", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar)
  If CreateGadgetList(WindowID(0))
    WebGadget(0, 0, 0, 600, 230, "http://www.google.com")
    WebGadget(1, 0, 260, 600, 230, "http://www.yahoo.com")
    StringGadget(2, 0, 235, 600, 25, "")
    SetGadgetColor(2, #PB_Gadget_BackColor, #Red)
    SetGadgetColor(2, #PB_Gadget_FrontColor, #White)
    SetActiveGadget(2)
    SetWindowCallback(@WinCallback())
  EndIf
EndIf

Repeat
 
  event = WaitWindowEvent()
 
Until event = #PB_Event_CloseWindow

End

Publié : mer. 13/févr./2008 21:35
par Le Soldat Inconnu
Cool, merci Nico