Win32 : Envoyer un message WM_GETTEXT à la barre d'URL de Mozilla

Win32 : Envoyer un message WM_GETTEXT à la barre d'URL de Mozilla - C++ - Programmation

Marsh Posté le 07-12-2003 à 23:14:22    

Hello à tous !
 
J'ai codé voici quelque temps un petit convertisseur euro (dispo dans ma signature) qui permet de convertir en euro tout montant saisi dans une TextBox standard de Windows. Faites le test dans la zone de saisie d'URL d'IE, ou dans Démarrer/Exécuter, ça marche nickel (appuyez sur Pause pour convertir le montant saisi en Euro).
 
Par contre, impossible de convertir un montant saisi dans la zone de saisie de Mozilla.
 
Pour récupérer le contenu de la TextBox, je lui envoie un WM_GETTEXT via la fonction SendMessage(), tout simplement. Apparemment, les controles de Mozilla ne reçoivent jamais ce message.
J'ai vérifié le controle utilisé avec Winspector, il semble que ce controle n'en soit pas un, et fasse partie d'un controle global regroupant toute la fenêtre de Mozilla, appelé MozillaWindowClass. Du coup, le controle n'existant pas en tant que controle, il ne reçoit pas mon message et aucune conversion se fait.
 
Avez vous une piste pour pouvoir contourner le problème, en Win 32, afin d'éviter de devoir passer obligatoirement par une extension spécifique à Mozilla écrite en XUL ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-12-2003 à 23:14:22   

Reply

Marsh Posté le 07-12-2003 à 23:31:51    

Ça serait une bonne occasion de te mettre à XPFE [:cupra]


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 08-12-2003 à 01:30:27    

dans le même genre, aucun "service" de Mac OS X ne fonctionne dans mozilla.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-12-2003 à 08:22:34    

ET oui, les toolkits genre GTK ou Qt c'est bien sympat à utiliser, mais voilà ce que cela fait. C'est pour cela que je suis pas fan du look custom, surtout quand ce look custom est accompagné d'un feel custom (au passage petit râlage contre cette même zone de texte Mozilla qui ne se comporte pas pareil que les autres applis Win32 quand on clique sur le texte).
J'ai une bonne et une mauvaise nouvelle : la bonne c'est que c'est pas ta faute, la mauvaise, je crois pas que tu puisses faire grand chose...


Message édité par HelloWorld le 08-12-2003 à 08:23:21

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-12-2003 à 10:08:04    

gm_superstar a écrit a écrit :

Ça serait une bonne occasion de te mettre à XPFE [:cupra]




c'est quoi ? :sweat:
 

nraynaud a écrit a écrit :

 
dans le même genre, aucun "service" de Mac OS X ne fonctionne dans mozilla.




on se demande à quoi ça sert que des ingénieurs compétents se cassent le cul à réaliser un OS des plus sympas et fonctionnels si des équipes de développement passent outre et décident de créer leur propre système de fenétrage...
 

HelloWorld a écrit a écrit :

 
ET oui, les toolkits genre GTK ou Qt c'est bien sympat à utiliser, mais voilà ce que cela fait. C'est pour cela que je suis pas fan du look custom, surtout quand ce look custom est accompagné d'un feel custom (au passage petit râlage contre cette même zone de texte Mozilla qui ne se comporte pas pareil que les autres applis Win32 quand on clique sur le texte).  
J'ai une bonne et une mauvaise nouvelle : la bonne c'est que c'est pas ta faute, la mauvaise, je crois pas que tu puisses faire grand chose...




Ca dépend si le toolkit encapsule Win32 ou non. C'est le cas pour la VCL, MFC ou Winform (heureusement d'ailleurs), mais je sais pas si ça l'est pour QT ou GTK. :/
Carton rouge à Mozilla sur ce coup. Réinventer la roue pour des raisons plus que discutables (qui peut me dire le véritable intérêt du XUL ?), voila à quoi ça mène.  
Je crois effectivement qu'il n'y a rien à faire de plus, malheureusement, si ce n'est dire à mon utilisateur d'utiliser IE... :sweat:


Message édité par Harkonnen le 08-12-2003 à 10:08:26
Reply

Marsh Posté le 08-12-2003 à 10:09:57    

Pour Qt ça ne l'est pas d'après ce que j'ai entendu dire (d'ailleurs ça se sent à l'utilisation).
 
edit: pas basé sur Win32


Message édité par antp le 08-12-2003 à 10:10:32

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-12-2003 à 10:22:12    

Je voudrais bien vous y voir à écrire des GUI cross plateforme sans avoir à se recoder toute la partie GUI à chaque plateforme. Des trucs comme GTK, wxWindows, QT, XUL permettent de faire gagner un temps fou.

Reply

Marsh Posté le 08-12-2003 à 10:44:36    

ben dans le cas de wxWindows, il me semble qu'il se base sur ce que l'OS propose, donc en Win32, on a des contrôles Win32.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 11:24:04    

Kristoph a écrit :

Je voudrais bien vous y voir à écrire des GUI cross plateforme sans avoir à se recoder toute la partie GUI à chaque plateforme. Des trucs comme GTK, wxWindows, QT, XUL permettent de faire gagner un temps fou.


 
Et pourquoi l'implémentation du toolkit ne pourrait-elle pas utiliser les éléments natifs de l'OS ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-12-2003 à 11:43:31    

antp a écrit :


 
Et pourquoi l'implémentation du toolkit ne pourrait-elle pas utiliser les éléments natifs de l'OS ?


 
Probablement parceque c'est très difficile à faire de façon cross plateforme.

Reply

Marsh Posté le 08-12-2003 à 11:43:31   

Reply

Marsh Posté le 08-12-2003 à 11:53:17    

Kristoph a écrit :

Probablement parceque c'est très difficile à faire de façon cross plateforme.


bin wxWindows le fait bien [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 11:54:01    

drasche a écrit :


bin wxWindows le fait bien [:spamafote]


y'a quand meme a craindre que le comportement des composants natifs ne soit pas strictement identique d'un OS a l'autre, j'imagine

Reply

Marsh Posté le 08-12-2003 à 11:55:47    

ça vaudrait le coup de décortiquer le source de Mozilla, et de voir s'il fait beaucoup d'appels Win32 ou pas.
parce que vous allez pas me dire qu'il est réalisé entièrement en C++/STL et portable sans aucune modif du source


Message édité par Harkonnen le 08-12-2003 à 11:56:18
Reply

Marsh Posté le 08-12-2003 à 11:55:58    

chrisbk a écrit :

y'a quand meme a craindre que le comportement des composants natifs ne soit pas strictement identique d'un OS a l'autre, j'imagine


certainement, mais j'ai pas encore eu le temps de regarder, je suppose qu'ils ont quand même prévu le coup :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 12:07:36    

drasche a écrit :


bin wxWindows le fait bien [:spamafote]


 
J'aime pas wxWindow. Le peux que j'ai essayé de l'utilisé me rappelait vraiment Win32 avec ses DC et ses limitations à la noix ( comment ça on ne peut pas mettre des images de plus de 256 lignes dans ce controle ? )
 
Et s'ils n'avaient pas la facheuse manie de changer l'API un peut trop souvent ...

Reply

Marsh Posté le 08-12-2003 à 12:12:25    

Harkonnen a écrit :

ça vaudrait le coup de décortiquer le source de Mozilla, et de voir s'il fait beaucoup d'appels Win32 ou pas.
parce que vous allez pas me dire qu'il est réalisé entièrement en C++/STL et portable sans aucune modif du source


 
XUL lui même est plein de code specifique, mais au dela de ça c'est  bien independant de la plateforme. Pour preuve, il est possible d'écrire des applications en XUL qui sont bien cross plateforme à la fin :)

Reply

Marsh Posté le 08-12-2003 à 12:49:30    

Kristoph a écrit :


 
Probablement parceque c'est très difficile à faire de façon cross plateforme.


Non.
Soit tu as des composants similaires sur chaque plateforme et tu cree un objet commun dans ton GUI multiplateforme, soit un composant qui t'es necessaire n'a pas d'equivalent sur une plateforme et c'est a toi d'en ecrire une implem.
Bon, c'est pas un truc de debutant, mais c'est pas la mort non plus, ca demande juste du temps.
Il y a IMHO des choses bien plus difficiles a programmer, par exemple, implementer un GC efficace.
EDIT: j'ai dit GUI, j'aurais du parler de Framework.
A+,


Message édité par gilou le 08-12-2003 à 12:50:59

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-12-2003 à 15:48:48    

Se passer de l'OS pour un tk ça permet d'assurer une portabilié parfaite, sans pblm. Si on utilise les controls de l'OS y'a des coomportement spécifiques forcément. C'est ce qui a motivé Sun a développer SWING, alors qu'ils avaient AWT.
Pour les Winforms je ne crois pas que ce soit mappé sur Win32. J'en suis même presque sûr. D'un côté c'est mieux car les contrôles sont plus évolués, et comme c'est fait par MS ben ça reste Win32 like, mais de l'autre y'a pas le look XP...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-12-2003 à 15:52:19    

ben les Winforms sont basées sur .NET et Win32 est condamné à disparaître, donc aucun intérêt de les mapper sur Win32 a priori.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 15:53:41    

drasche a écrit :

Win32 est condamné à disparaître


mais que va devenir la programmation en assembleur sous Windows ? :(

Reply

Marsh Posté le 08-12-2003 à 15:58:19    

gilou a écrit :


Non.
Soit tu as des composants similaires sur chaque plateforme et tu cree un objet commun dans ton GUI multiplateforme, soit un composant qui t'es necessaire n'a pas d'equivalent sur une plateforme et c'est a toi d'en ecrire une implem.
Bon, c'est pas un truc de debutant, mais c'est pas la mort non plus, ca demande juste du temps.
Il y a IMHO des choses bien plus difficiles a programmer, par exemple, implementer un GC efficace.
EDIT: j'ai dit GUI, j'aurais du parler de Framework.
A+,


 
Et quand les 2 OS est des composants similaires mais au comportement different ? Il deviens alors facile de créer des applis qui ne marchent que sur un OS à cause de ces differences de comportement. Tout cela rallonge enormement les phases de validation. Alors avec un bon toolkit qui certifie un comportement uniforme entre les plateformes on gagne du temps.
 
De toute façon, le monde informatique ira beaucoup mieux quand tout le monde utilisera QT ou GTK2 ou ... ;)

Reply

Marsh Posté le 08-12-2003 à 16:00:01    

Harkonnen a écrit :


mais que va devenir la programmation en assembleur sous Windows ? :(

Inutile, comme ceux qui la pratiquent. Dis, je peux te mettre dans la poubelle moi-même dis ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-12-2003 à 16:00:56    

nraynaud a écrit :

Inutile, comme ceux qui la pratiquent. Dis, je peux te mettre dans la poubelle moi-même dis ?


n'y pense même pas ! je suis sur qu'une ame charitable va sortir un Asm .NET :o

Reply

Marsh Posté le 08-12-2003 à 16:02:02    

Harkonnen a écrit :

mais que va devenir la programmation en assembleur sous Windows ? :(


langage d'assemblage équivalent -> CLR [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 16:03:47    

Citation :

mais que va devenir la programmation en assembleur sous Windows ?


Des programmeurs assembleur MSIL ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-12-2003 à 16:04:51    

HelloWorld a écrit :

Des programmeurs assembleur MSIL ?


ah zut c'est ça que je voulais dire [:joce]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 16:07:58    

Reply

Marsh Posté le 08-12-2003 à 16:08:45    

Cela dit, tant que longhorn n'est pas sorti on a un petit répis.


Message édité par HelloWorld le 08-12-2003 à 16:08:54

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-12-2003 à 16:10:08    

Kristoph a écrit :

Il deviens alors facile de créer des applis qui ne marchent que sur un OS à cause de ces differences de comportement. Tout cela rallonge enormement les phases de validation. Alors avec un bon toolkit qui certifie un comportement uniforme entre les plateformes on gagne du temps.

On rentre dans la classique dichotomie :
doit-on favoriser l'éditeur du logiciel ou l'utilisateur ?
 
Si on utilise un toolkit abstrait qui possède son propre look-and-feel (Xwindow, GTK, QT, mozilla etc.) alors c'est facile de porter d'une plateforme à l'autre, mais pour l'utilisateur c'est chierie, l'intégration est naze (pas les icones sous win, pas d'intégration dans le dock OS X, menu au movais endroit sous OS X etc.), le look-and-feel pas naturel, les raccourcis claver changent etc.  
Si on utilise un toolkit qui repose sur les toolkits natifs alors il faut faire une partie de code spécifique pour chaque plateforme, parfois-même modifier l'interface pour respecter les normes de GUI de la plateforme etc. Et l'utilisateur il est même pas content : c'est normal quand on installe au application elle n'ait rien d'exotique, il est pas là pour se faire chier avec ces trucs, il est là pour bosser. Mais on peut se satisfaire du fait qu'il n'est pas énervé.
 
Perso, je pense que la première solution est une grosse connerie, qui fait partie des choses qui ont mis l'informatique en crise (faire chier l'utilisateur avec des connerie).


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-12-2003 à 16:14:38    

HelloWorld a écrit :

Citation :

mais que va devenir la programmation en assembleur sous Windows ?


Des programmeurs assembleur MSIL ?

en CIL normalisé par l'ecma ce serait un peu plus intelligent, mais c'est une caractéristique étrangère aux assembleux.
 
Pour la poubelle, c'est vraiment pas négociable ? Et si je jette un amiga dans la poubelle avant ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-12-2003 à 16:17:25    

nraynaud a écrit :

Pour la poubelle, c'est vraiment pas négociable ? Et si je jette un amiga dans la poubelle avant ?


[:rofl2] [:grinking]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 16:17:33    

nraynaud a écrit :

Perso, je pense que la première solution est une grosse connerie, qui fait partie des choses qui ont mis l'informatique en crise (faire chier l'utilisateur avec des connerie).


+1 :jap:
ça fait chier non seulement l'utilisateur, mais aussi le programmeur, la preuve...

Reply

Marsh Posté le 08-12-2003 à 16:24:02    

nraynaud a écrit :

Pour la poubelle, c'est vraiment pas négociable ? Et si je jette un amiga dans la poubelle avant ?


nan ! je commencerais à l'envisager si tu balances un Atari ST ou un Falcon à la place

Reply

Marsh Posté le 08-12-2003 à 16:32:05    

Merde j'ai encore confondu Amiga et Atari : rien ne ressemble plus à une déchet qu'un autre déchet.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 08-12-2003 à 21:46:17    

Harkonnen a écrit :


c'est quoi ? :sweat:


XPFE c'est l'association de XUL, JavaScript et des CSS pour créer des applications qui étendent l'interface de Mozilla.
Et à mon avis ça suffit pour faire un convertisseur euro. Pas la peine de sortir l'artillerie lourde XPCOM et de créer un composant à part entière.
 

Harkonnen a écrit :

(qui peut me dire le véritable intérêt du XUL ?)


Mozilla n'est pas qu'un bête navigateur web. Mozilla c'est une plateforme à part entière. Donc XUL (et tout le bazard XPFE, XPCOM) existe pour :
 - être multiplateforme
 - permettre au développeur web moyen de créer de véritables applications sur la plateforme Mozilla comme il ferait des pages web (c'est le même genre de démarche qu'a adopté Microsoft avec son XAML)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 08-12-2003 à 21:47:53    

nraynaud a écrit :

Merde j'ai encore confondu Amiga et Atari : rien ne ressemble plus à une déchet qu'un autre déchet.


surtout que Amiga est le nom d'une gamme d'ordinateurs alors qu'Atari est une société :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 08-12-2003 à 23:53:20    

Kristoph a écrit :


 
Et quand les 2 OS est des composants similaires mais au comportement different ? Il deviens alors facile de créer des applis qui ne marchent que sur un OS à cause de ces differences de comportement. Tout cela rallonge enormement les phases de validation. Alors avec un bon toolkit qui certifie un comportement uniforme entre les plateformes on gagne du temps.
 
De toute façon, le monde informatique ira beaucoup mieux quand tout le monde utilisera QT ou GTK2 ou ... ;)
 


Tu veux dire quand les composants sont homologues mais les  fonctionalites differentes?
C'est la que joue toute l'experience du designer de la Framework. Faire un Look & Feel homogene quelque soit la plate forme, ou bien se rapprocher des guidelines pour chaque OS (Les guidelines Windows, Motif et MacOs par exemple) La premiere solution est generalement la plus simple, mais pas necessairement celle qui convient a l'utilisateur final.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-12-2003 à 23:58:22    

Je viens de lire le post de nraynaud  et je vois qu' il avait deja repondu (plus clairement bien sur) ce que je viens de poster.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 09-12-2003 à 00:31:21    

gilou a écrit :

plus clairement bien sur

trop facile pour moi.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 09-12-2003 à 02:20:50    

gm_superstar a écrit :


XPFE c'est l'association de XUL, JavaScript et des CSS pour créer des applications qui étendent l'interface de Mozilla.
Et à mon avis ça suffit pour faire un convertisseur euro. Pas la peine de sortir l'artillerie lourde XPCOM et de créer un composant à part entière.
 


 
moi j'y connais rien mais le prog de harko est super et c trop dommage qu'il ne fonctionne pas sous mozilla...
 
qq1 saurait le faire sous forme d'extension ?
http://xulfr.org/
http://linuxfr.org/2003/10/22/14347.html
http://www-106.ibm.com/developerwo [...] a-appmozx/
 
ou au pire en HTML...?
 
Tiens, y a une différence entre Firebird et Moz Ap Suite quand même :
"Changement du navigateur intégré basé sur XPFE pour le navigateur indépendant Mozilla Firebird. Note : l'interface utilisateur du nouveau navigateur est définie entièrement avec XUL. En le choisissant, nous montrons combien XUL est une base solide pour des applications rapides et multi-plateformes telles que Mozilla Firebird."
http://www.mozilla-france.org/sect [...] le&artid=3


Message édité par Profil supprimé le 09-12-2003 à 02:48:05
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed