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

Windows Discussion :

Prob SetDlgItemText et restoration systray


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Prob SetDlgItemText et restoration systray
    Bonjour,
    Voila, j'affiche du texte dans une case edittex grace a la commande SetDlgItemText, ca fonctionne très bien si le programme est démarré au premier plan.
    Le problème c'est quand on envoie le prog dans la systray avant de le démarrer et qu'on le démarre depuis la systray, au moment de la restoration, il ne m'affiche rien dans mon edittext...

    J'ai deja essayé un updatewindow sans succès

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    if(LOWORD(wParam) == IDM_RESTORE)
                {
                  ShowWindow(hwnd,SW_SHOW);
                  SetDlgItemText(hwnd, IDE_EDIT1, actual_key);
                  Shell_NotifyIcon(NIM_DELETE,&TrayIcon);
                  UpdateWindow(hwnd);
                  SetDlgItemText(hwnd, IDE_EDIT1, actual_key);
                  UpdateWindow(hwnd);
                }
    IDE_EDIT1 correspond a ma ressource edittext
    actual_key, ce que je veux afficher

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Comment fais-tu pour "envoyer" le "le prog dans la systray" ?
    Tu la caches, ta dialog, ou tu la détruits ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Je la cache avec ShowWindow(hwnd,SW_HIDE);

    Mais en y regardant mieux je crois que mon problème viens d'ailleurs...
    C'est la première fois que je travaille avec l'api de windows et je ne sais pas si j'ai bien fait de faire ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        static HWND hDialog;    
        switch (uMsg)
        {
            case WM_CREATE:
                hDialog =  CreateDialog(hinst,"IDD_TOOLBOX_DLG",hwnd,(DLGPROC)MainWndProc);   
                ShowWindow (hDialog, SW_SHOW);
                if(arg_start!=0) autostart(hDialog);
                return 0;
    
    <suite du code...>
    Je crée une boite de dialogue a l'intérieur d'une fenetre et je me sert de la meme fonction callback

    J'ai 2 bouttons démarrer, un dans le menu de la fenetre et un dans la boite de dialogue.
    Quand je clique sur le boutton de la boite de dialogue tout est ok mais si je fais la meme chose via le menu on dirais qu'il ne me récupère pas les infos de la boite de dialogue

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Houlà!
    Non, c'est pas conseillé du tout d'utiliser la même procédure...

    La preuve, ce n'est même pas le même prototype (la DialogProc retourne un INT_PTR et non un LRESULT), t'obligeant à un horrible cast (pas bien, on ne caste pas les pointeurs de fonction).

    Mon conseil: Sépare les torchons des serviettes et tu verras ensuite si ça foire toujours.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Oui je v faire ca et je crois que le prob viens de la... suivant le niveau de hiérarchie de la fenetre ou je me trouve la fonction ne réagit pas pareil mais en bidouillant un peu ca fonctionne...
    Mais bon je veux un prog propre donc je v modifier tout ca.
    Merci pour ton aide aussi rapide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Prob de Restoration SQL Server 2000
    Par med_dz dans le forum Administration
    Réponses: 2
    Dernier message: 25/11/2008, 13h01
  2. Prob, images, Panels, et form.
    Par CaptainChoc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 10/05/2003, 10h08
  3. Thread probs avec WaitFor()
    Par pixelrock dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/11/2002, 09h40
  4. [Kylix] prob listview
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 22/10/2002, 21h37
  5. [VB6] [Système] Icones du systray qui veulent pas partir
    Par Ctof dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/10/2002, 09h41

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