IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Powerbuilder Discussion :

[PowerBuilder] Function PeekMessage Lib "user32"


Sujet :

Powerbuilder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut [PowerBuilder] Function PeekMessage Lib "user32"
    Bonjour,

    Sous Powerbuilder je souhaite déclarer et utiliser l'api windows "Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long "

    Le premier problème vient du fait que lpmsg est de type Msg qui n'est pas connu par PB, peut etre est il possible de le déclarer mais ou ??

    D'autre part je souhaiterai detecter voire arreter lors d'un traitement repetitif la serie de messagebox d'erreur par un escape ou un ctrl C réalisé par l'utilisateur. Je ne peux pas utiliser Yield() car l'apparition de ces messagebox met yield a true dans tous les cas or je souhaite detecter seulement le cas Ctrl C (ou escape peu importe).
    C'est pour cette derniere raison que je me sui tourne vers les API de windows !!!

    Merci

    jpdar

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Par défaut [PowerBuilder] Function PeekMessage Lib "user32"
    Bonjour

    Essaye de créer une structure PB str_win_message correspondant à la structure C/C++ de l'API Windows. REF permet d'utiliser un pointeur sur cette structure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FUNCTION BOOLean PeekMessage(REF str_win_message lpmsg,uint hwnd, uint ufilterfirst, uint ufilterlast, uint fuRemove) library "user32.dll"

    A+ Thig

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut [Powerbuilder] struct point dans la struct str_win_message
    Merci,

    J'ai pu avancer mais je bute sur point de la structure str_win_message lpmsg, j'ai essaye de le declarer dans une autre structure mais powerbuilderne semble pas accepter dans la structure str_win_message la struct point !!!

    Je ne sais pas comment faire.
    En plus par quoi remplacer DWORD, WPARAM, ... dans PB

    D'autre part je souhaiterai savoir une fois ces problemes resolus comment utiliser peekmessage pour savoir si l'utilisateur a fait un ctrl C pendant l'execution d'un programme ???

    Merci pour toute reponse susceptible de me permettre d'avancer !!!


    jpdar

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Par défaut
    Bonjour.

    Il faut déclarer une structure pb locale ou globale de ce type :

    => New / Pb object / Structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    type str_win_message from structure
        uint hwnd
        uint message
        uint wparam
        long lparam
        ulong ultime
        int pt
    end type
    Pour l'utilisation de la fonction, il faut voir la doc Windows ... personnellement, pour capturer un événement clavier, j'utilise plutôt l'évent "Key" d'une fenêtre ou la fonction Pb "keyDown()"

    A+ Thig

  5. #5
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Par défaut Pt est de type point
    En fait le probleme vient du fait que pt est aussi une structure donc il faut la declarer en structure globale et ensuite l'integrer a la struct str_win_message et ca marche.

    Par contre je ne sais pas quelle doivent etre les param wparam et lparam
    pour verifier si le ctrl C par exemple a ete appuye !!!

    Merci.

    jpdar

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo