Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2428 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[MFC] Afficher un msg en bas de la fenetre + changer le text d'un menu

n°400094
polo021
Posté le 19-05-2003 à 16:17:16  profilanswer
 

Reprise du message précédent :

Konar a écrit :


 
justement, tes raisons :
 
 
 
sont peu claires : t'avais par defaut un menu dans ta status bar ??? c'etait koi ce static, il se trouvait "dans" la status bar ou dans ta fenetre ? comme a dis chrisbk, je comprends plus rien la...


C'est vrai qu'un petit recapitulatif a ce stade ne serait pas du luxe.
 
J'ai donc une appli MFC SDI dans laquelle j'ai vire le CONTENU du menu (c'est a dire : le menu File, le menu Help, l'icone "Nouveau fichier", l'icone "Ouvrir un fichier", l'icone "Enregistrer",...).
 et je voudrais bien me servir de cet emplacement vide pour y afficher des informations pendant l'execution du programme. Je pense que ce n'est pas possible mais en bidouillant y a surement moyen de faire quelquechose.
 
Sinon on peut peut-etre creer une StatusBar (lien de harko) mais ca n'a pas fonctionne.
 
Voila. Est ce plus clair?
En tout cas toute autre proposition (meme saugrenue) est la bienvenue.  :jap:

mood
Publicité
Posté le 19-05-2003 à 16:17:16  profilanswer
 

n°400110
Konar
Posté le 19-05-2003 à 16:31:34  profilanswer
 

polo021 a écrit :


J'ai donc une appli MFC SDI dans laquelle j'ai vire le CONTENU du menu (c'est a dire : le menu File, le menu Help, l'icone "Nouveau fichier", l'icone "Ouvrir un fichier", l'icone "Enregistrer",...).
 et je voudrais bien me servir de cet emplacement vide pour y afficher des informations pendant l'execution du programme. Je pense que ce n'est pas possible mais en bidouillant y a surement moyen de faire quelquechose.


 
tu a donc viré tous les menus, mais la barre grise ou les menus s'affichaient est encore visible, et tu veux afficher des infos dedans ? deja normalement apres avoir viré les menus, la barre derait disparaitre, et ensuite dans le cas contraire, a priori tu ne peux pas afficher autres choses ke des menus.
 
le plus simple c'est la status bar, y a pas de raison pour ke tu puisses pas en créér une. pour le code de création, t'as testé les valeurs de retour des fonctions ?

n°400125
polo021
Posté le 19-05-2003 à 16:39:25  profilanswer
 

Konar a écrit :


 
tu a donc viré tous les menus, mais la barre grise ou les menus s'affichaient est encore visible, et tu veux afficher des infos dedans ? deja normalement apres avoir viré les menus, la barre derait disparaitre,


Ben c'est un peu special. y faut pas perdre de vue que c'est pour PocketPC

Konar a écrit :


le plus simple c'est la status bar, y a pas de raison pour ke tu puisses pas en créér une.


Oui, il y en a. C'est tout simplement que quand je suis dans une boite modale je n'y arrive pas. Et je ne sais poas si c'est une mauvaise manipulation de ma part ou si c'est tout simplement pas faisable
 
Je vais donc me repencher sur la solution de la StatusBar. Sans grande conviction

n°400144
Konar
Posté le 19-05-2003 à 16:45:49  profilanswer
 

un truc tout moche sinon, tu remet un menu ki aura le texte ke tu veux, sans submenus, et avec le style grayed (comme ca tu pourras pas cliker dessus).

n°400157
polo021
Posté le 19-05-2003 à 16:50:25  profilanswer
 

Konar a écrit :

un truc tout moche sinon, tu remet un menu ki aura le texte ke tu veux, sans submenus, et avec le style grayed (comme ca tu pourras pas cliker dessus).


c'est ca que j'entendais pas solution saugrenue  :D .
Je vois que je ne suis ps le seul a avoir ce genre d'idee. Ca me rassure. Mais ca fait un peu moche quand meme. A la limite je prefererais encore fouttre un static sur ma boite. Mais elle est completement remplie.
Je suis dans le caca.
 
Mais demain je vais me repencher sur cette maudite StatusBar.
 
Merci pour votre aide. :jap:

n°400168
Konar
Posté le 19-05-2003 à 16:58:32  profilanswer
 

autre solution plus complexe, mais mieux : faire apparaitre une boite comme celle des drivers nvidia dans les propriétés d'affichage. pour ceux ki voient pas, c'est une sorte d'extension ki colle a la fenetre, ca ressemble a une fenetre de tooltip mais avec des trucs a clicker dedans.

n°400174
harrysauce
Miaaaooou!
Posté le 19-05-2003 à 17:01:40  profilanswer
 

Konar a écrit :

autre solution plus complexe, mais mieux : faire apparaitre une boite comme celle des drivers nvidia dans les propriétés d'affichage. pour ceux ki voient pas, c'est une sorte d'extension ki colle a la fenetre, ca ressemble a une fenetre de tooltip mais avec des trucs a clicker dedans.

ca doit être cho a faire ca non?????

n°400175
polo021
Posté le 19-05-2003 à 17:02:39  profilanswer
 

Trop complexe il me semble. :pfff:  :pfff:  :pfff:  :(  :(  :(  :sweat:  :sweat:  :sweat:

n°400187
Konar
Posté le 19-05-2003 à 17:05:35  profilanswer
 

harrysauce a écrit :

ca doit être cho a faire ca non?????


 
on dit plutot : "ca va me faire perdre plein de pts de vie"
 
et pense a des gens comme Visual C++ ki vont te sortir "je te le fais en 10 min pendant la pause café"

n°400197
polo021
Posté le 19-05-2003 à 17:08:28  profilanswer
 

Konar a écrit :


 
on dit plutot : "ca va me faire perdre plein de pts de vie"
 
et pense a des gens comme Visual C++ ki vont te sortir "je te le fais en 10 min pendant la pause café en tapant a une main, et avec l'ecran a l'envers"


quand meme y faut pas exagerer. :o

mood
Publicité
Posté le 19-05-2003 à 17:08:28  profilanswer
 

n°400210
Konar
Posté le 19-05-2003 à 17:12:14  profilanswer
 

la solution du tooltip (avec juste du texte dedans, pas du ownerdraw) est bonne : c'est pas trop complexe a créér (surtout en mfc je pense), avec un flag a la con le tooltip est permanent (ne disparait pas qd on clik ailleurs), on peut le positionner ou on veut, c'est facile de changer le texte. bref, le tooltip c'est la vie.

n°400234
polo021
Posté le 19-05-2003 à 17:22:05  profilanswer
 

ca pourrait etre vachement sympa si j'arrivais a faire ca!(si c'est ce que je pense)
Je regarderai a ca demain :whistle:

n°400255
Konar
Posté le 19-05-2003 à 17:34:17  profilanswer
 

polo021 a écrit :

ca pourrait etre vachement sympa si j'arrivais a faire ca!(si c'est ce que je pense)
Je regarderai a ca demain :whistle:  


 
j'ai la solution toute faite, mais deja c'est en win32, et ensuite j'aime voir les gens lutter sur ce genre de pb, donc...

n°400297
VisualC++
J'va y penser ...
Posté le 19-05-2003 à 17:57:49  profilanswer
 

Euh pendant la pose cafe je pose cafe desole :p (enfin a la rigueur une clope mais c tout ;))

n°400798
polo021
Posté le 20-05-2003 à 08:53:46  profilanswer
 

Konar a écrit :


 
j'ai la solution toute faite, mais deja c'est en win32, et ensuite j'aime voir les gens lutter sur ce genre de pb, donc...


[:lorill]
je viens de regarder a ca et j'ai pas su  :sweat:  
Sur internet, on trouve plein de source mais elles sont incompilables  [:fast] et si je les corrige, ca ne va de toute facon pas.
 
Aboule les sources  :o  
J'essayerai de traduire vers MFC.  
 [:texla]  

n°400873
polo021
Posté le 20-05-2003 à 10:32:44  profilanswer
 

Y a du neuf!
 
J'ai change de tactique.
Je vais le faire a la bourrin.
C'est a dire que je cree une deuxieme MenuBar et je l'affiche au moment voulu (je la grise aussi).
Le message que j'affiche dans la barre en dessous est donc en fait un menu.  

Code :
  1. CCeCommandBar *pCommandBar = (CCeCommandBar*)m_pWndEmptyCB;
  2. pCommandBar->InsertMenuBar(IDR_MENUBAR1);
  3. pCommandBar->EnableWindow(FALSE);


Maintenant j'ai une autre question :
  Comment changer le texte du menu? (car je me vois mal faire une MenuBar pour chaque message)


Message édité par polo021 le 20-05-2003 à 10:36:25
n°400887
VisualC++
J'va y penser ...
Posté le 20-05-2003 à 10:41:25  profilanswer
 

En gros comme ca
 

Code :
  1. CCeCommandBar *pCommandBar = (CCeCommandBar*)m_pWndEmptyCB;
  2. CMenu* pMenu = pCommandBar->InsertMenuBar(IDR_MENUBAR1);
  3. pCommandBar->EnableWindow(FALSE);
  4. if (pMenu != NULL) {
  5.     pMenu->ModifyMenu(IDC_DETONITEM, MF_BYCOMMAND, IDC_DETONITEM, "ton nouveau string" );
  6. }


n°400889
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 20-05-2003 à 10:45:20  profilanswer
 

polo021 a écrit :

Y a du neuf!
 
J'ai change de tactique.
Je vais le faire a la bourrin.
C'est a dire que je cree une deuxieme MenuBar et je l'affiche au moment voulu (je la grise aussi).


 
Quelle horreur  :ouch:  
Tu me rappelles le nom de la boite où tu bosses pour que je n'achete jamais leur logiciel ? :D


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°400904
polo021
Posté le 20-05-2003 à 10:57:14  profilanswer
 

Tetragrammaton IHVH a écrit :


 
Quelle horreur  :ouch:  
Tu me rappelles le nom de la boite où tu bosses pour que je n'achete jamais leur logiciel ? :D


Ben oui je sais pas du tout comment je pourrais faire autrement :(  
 

n°400915
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 20-05-2003 à 11:04:43  profilanswer
 

polo021 a écrit :


Ben oui je sais pas du tout comment je pourrais faire autrement :(  


 
Harko a donné la solution et CStatusBar existe bien sous WinCE donc je te propose de lire un peu la doc, ça ne te fera pas de mal :
 
http://msdn.microsoft.com/library/ [...] tatbar.asp


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°400929
skeye
Posté le 20-05-2003 à 11:11:30  profilanswer
 

J'ai parcouru le topic en diagonale...et si tout ce que tu veux c'est afficher du texte un CEdit suffit non?
Pour modifier le texte tu fais un  

Code :
  1. MonDialog.SetDlgItemText(IDC_MONCEDIT, "Je change le texte" );


 
C'est idiot? :??:

n°400957
polo021
Posté le 20-05-2003 à 11:25:52  profilanswer
 

skeye a écrit :

J'ai parcouru le topic en diagonale...et si tout ce que tu veux c'est afficher du texte un CEdit suffit non?
Pour modifier le texte tu fais un  

Code :
  1. MonDialog.SetDlgItemText(IDC_MONCEDIT, "Je change le texte" );


 
C'est idiot? :??:  


Ben c'est un peu idiot en effet parce qu'en genereal, l'etat dans lequel se trouve le programme n'est pas donne dans un simple edit mais plutot dans une espece de barre d'etat en bas de la fenetre.
 
Tetragrammaton IHVH > je viens de reesayer le lien d'harko mais sur un nouveau projet cette fois et j'ai reussi a le faire fonctionner. Je vais donc essayer sur mon vrai projet.
Voila, tu vas pouvoir acheter mon programme maintenant :D  

n°400968
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 20-05-2003 à 11:29:38  profilanswer
 

polo021 a écrit :


Tetragrammaton IHVH > je viens de reesayer le lien d'harko mais sur un nouveau projet cette fois et j'ai reussi a le faire fonctionner. Je vais donc essayer sur mon vrai projet.
Voila, tu vas pouvoir acheter mon programme maintenant :D  
 


 
Vu comment c'est codé, ça ne risque pas :D


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°400970
VisualC++
J'va y penser ...
Posté le 20-05-2003 à 11:30:54  profilanswer
 

Rien ne t empeche pour une dialog de faire une pseudo status bar a partir d'un CEdit (en le rendant inselect, non modif et couleur font etc)
 
Mais placer une status c quand mm plus propre

n°400978
skeye
Posté le 20-05-2003 à 11:34:05  profilanswer
 

VisualC++ a écrit :

Rien ne t empeche pour une dialog de faire une pseudo status bar a partir d'un CEdit (en le rendant inselect, non modif et couleur font etc)
 
Mais placer une status c quand mm plus propre


Bon, ca va...vu que j'ai repris le Visual depuis 2 jours je considère a réponse comme correcte...:lol:
Et comme ca mine de rien je flagge un topic qui pourrait me reservir dans pas longtemps...:D

n°400987
polo021
Posté le 20-05-2003 à 11:40:23  profilanswer
 

Tetragrammaton IHVH a écrit :


 
Vu comment c'est codé, ça ne risque pas :D


mais non mais non, maintenant grace a vous ca va etre tres bien code.  :jap:

n°401069
Konar
Posté le 20-05-2003 à 12:33:41  profilanswer
 

Arriver a 11h30 au taf, c'est l'avenir...
 
sinon pour le tooltip, voila un code qui devrait marcher chez toi :
 

Code :
  1. void TT(HWND hWndParent)
  2. {
  3. HWND hWndTT;
  4. TOOLINFO ti;
  5. POINT pt;
  6. // Création du tooltip
  7. hWndTT = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, NULL,
  8.    WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
  9.    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  10.    hWndParent, // Parent du tooltip, devrait marcher avec NULL
  11.    NULL,
  12.    gl_hInstance, // Instance, devrait marcher avec NULL
  13.    NULL);
  14. if (!hWndTT)
  15. {
  16.  MessageBox(NULL, "Raté de créér", "Error", 0);
  17.  return ;
  18. }
  19. SetWindowPos(hWndTT, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
  20. SendMessage(hWndTT, TTM_SETMAXTIPWIDTH, 0L, 200);     // Largeur maxi du tooltip
  21. SendMessage(hWndTT, TTM_SETTITLE, (WPARAM)1, (LPARAM)"Infos" ); // Met un titre & icone au tooltip
  22. // Affichage du tooltip
  23. ZeroMemory(&ti, sizeof (TOOLINFO));
  24. ti.cbSize = sizeof (TOOLINFO);
  25. ti.uFlags = TTF_SUBCLASS | TTF_ABSOLUTE | TTF_TRACK ;
  26. ti.hwnd = hWndParent; // Fenetre qui contient le tooltip, devrait marcher avec NULL
  27. ti.uId = 666;   // id du tooltip
  28. ti.lpszText = "Infos du tooltip\nMeme sur plusieurs lignes"; // Texte
  29. if (SendMessage(hWndTT, TTM_ADDTOOL, 0, (LPARAM)(LPTOOLINFO)&ti) == FALSE)
  30. {
  31.  MessageBox(0, "Echec registering tool", "Error", 0);
  32.  return ;
  33. }
  34. GetCursorPos(&pt);
  35. SendMessage(hWndTT, TTM_TRACKPOSITION, 0L, (LPARAM)(DWORD)MAKELONG(pt.x, pt.y ));
  36. SendMessage(hWndTT, TTM_TRACKACTIVATE, (WPARAM)TRUE, (LPARAM)&ti);
  37. }


 
y a rien de bien compliqué, la 1ere partie s'occupe de créér le tooltip, la 2eme lui donne des infos (dont le texte) puis l'affiche.
 
c'est un peu crade vu qu'y a tout ds la meme fonction (et que c'est en C aussi), mais en l'appelant juste comme ca ca devrait marcher.
 
ca fait pas exactement ce ke tu veux, mais avec qq trucs ca devrait etre possible de la faire coller a ta fenetre (sur un coté par ex) et de donner au tooltip la meme largeur ou hauteur ke la fenetre.
 
les seuls pts ki peuvent faire ke ca marche pas sont le parent du tooltip (met le m_hWnd de la fenetre ki contiendra le tooltip par ex) et l'instance.
 
si deja ceci marche, tu pourras essayer de faire en sorte ke ca soit plus propre (séparer création et affichage), et que ca fasse exactement ce ke tu veux...
 
edit : en esperant aussi ke ca marche de la meme facon sous CE...


Message édité par Konar le 20-05-2003 à 12:36:27
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[VB] Comment afficher une page html en cliquant sur un bouton ?comment afficher 00001 au lieu de 1 en php?
[JAVA]Prob avec un Canvas, un Menu, le tout dans une JAppletMFC et Directx8, erreurs de link incompréhensibles
Afficher le panneau CTRL+ALT+SUPOuvrir une boite de dialogue à partir d'un menu dynamique (API)
langue d une fenetre en fonction d un parametre[MFC] [resolu] virer la toolbar
Afficher le nom d'une variable ??[PHP] Comment afficher une image uploadée par un formulaire ??
Plus de sujets relatifs à : [MFC] Afficher un msg en bas de la fenetre + changer le text d'un menu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR