Création de boite de dialogue

cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 20 juin 2005 à 10:08
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 6 sept. 2005 à 10:40
Bonjour,



J'aimerais savoir comment créer une boite de dialogue standard Win32
pour saisir un texte. Les exemples que j'ai pu trouver sur le Web
conduisent à la création et l'enregistrement d'une winclass. J'ai cru
comprendre qu'il existait des classes existantes genre edit, button
etc. Quelqu'un aurait-il un exemple simple à me proposer du genre
saisie de texte puis affichage dans une MessageBox ?



Merci



PS j'ai également vu que l'on pouvait utiliser un fichier de ressource mais je souhaite créer cette boite par du code asm.

8 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 juin 2005 à 10:37
push 0
push offset szTitre
push offset szMessage
push 0
call MessageBox

Boite de dialog modale se charge avec DialogBoxParam, non modale avec CreateDialog.
Regarder MSDN pour détails.

Explications compètes avec exemple (en C):
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

ciao...
BruNews, MVP VC++
0
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
20 juin 2005 à 11:09
Salut,


Pour créer une boite par code asm,voir masm32 (passe par mon site).


Masm32 contient des macros pour la création de boites en dynamique ainsi qu'un exemple tout fait (inputbox).
Ce n'est pas le choix de la simplicité.
ToutEnmasm
0
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
20 juin 2005 à 15:03
Merci de votre réactivité. Malheureusement je suis débutant en programmation windows et je ne connais pas le C.

Ce dont je rève (on rève de ce qu'on peut!), c'est un exemple très
simple en pur asm pour saisir un texte (sans macro dépendante d'un
compilateur/Linkeur ou d'une librairie spécifique).

J'utilise Nasm et Alink et comprends un petit peu la syntaxe Masm (invoke par exemple).

Merci de votre aide
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 juin 2005 à 15:13
ben faudrait savoir le C, toute l'API est documentée en C, serait tout de même plus pratique pour toi.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
20 juin 2005 à 15:54
Pour les paramètres à passer aux API en C, j'arrive à peu près à savoir
quoi injecter à la fonction (nombre de paramètres, ordre d'empilage),
je dispose également d'un fichier texte sur les API win32 et du fichier
Win32.hlp. Malheureusement les exemples d'utilisation manquent et
peut-être que mon niveau en anglais est sans doute insuffisant pour
saisir toutes les nuances de l'aide windows.

Dans le pire des cas je me vois dessassembler un exemple compilé pour
comprendre comment ça marche et pour en sortir la substantielle moelle
!!! (supprimer les instructions inutiles générées par le compilateur de
langage évolué).



Je ne renonce cependant pas et garde bon espoir.
0
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
21 juin 2005 à 08:27
Salut,
Inutile d'en arriver a de telles extrémités
http://perso.wanadoo.fr/luce.yves/boites_1.htm
avec commentaires , exemples et tout ce qu'il faut en masm
ToutEnMasm
0
silkscalp Messages postés 27 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 20 janvier 2011
5 sept. 2005 à 23:31
Avec ce que je vais te donner comme adresse, tu as tout à ta disposition pour apprendre a programmer. Avec des textes ecrit dans un francais correct, un vrai travail pédagogique et progressif, bref le must du mmust.
En fait cela représente ce qui est nécéssaire pour apprendre à programmer avec MASM (sachant que la syntaxe de NASM est proche et que le RAD que je te conseil par la suite supporte Nasm)

1) Les célèbres tutoriaux officiellements officieux de Iczelion traduit en francais par Morgatte (Iczetutes.exe) : http://www.movsd.com/icz.htm
2) Le site complet avec des ressource partout : une mine d'or pour l'ASM :
http://win32asm.cjb.net/
3) Le compilateur MASM32v8 :
http://www.masm32.com/
4) Un RAD (les goûts et les couleurs) pour developper plus vite. Permet de gere des projet, permet de creer des fenêtres comme avec un IDE de genre de VB. Très pratique et très puissant.
<!--StartFragment --> http://radasm.visualassembler.com/
Il en existe d'autre mais celui me parait bien pour commencer.
5) Un déogueur : pour retrouver plus rapidement ses erreurs lorsque le programme ce compile sans probleme mais contient une erreur. Permet d'inspecter un executable ligne par ligne et de voir les registre, la stack , le code afin de trouver l'erreur :
Ollydbg par exemple :)
++
Sky
(google)

SILKSCALP

LE SAVOIR EST UN POUVOIR
LE TRANSMETTRE EST UN DEVOIR
Skyfront ou silk ou sky
0
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
6 sept. 2005 à 10:40
Merci pour ces dernières infos, surtout pour les exemples des tutoriels
d'Iczelion (j'avais déjà récupéré quelques traductions de Morgate).
Avec les exemples (sources et exécutables) je devrais trouver mon
bonheur.

Au départ je pensais pouvoir faire des boites de dialogue sans fichiers
ressource, c'est sans doute possible mais très lourd pour le code (rien
à voir avec une bête MessageBox !!!).

Avec ResHacker je peux aisément modifier des ressources existantes.



Il ne me reste plus qu'à retranscrire les sources Masm en Nasm puis me
lancer dans les macros. Pour l'instant je n'en suis qu'à l'assembleur
pur et dur avec les push en pagaille mais ça viendra un jour.
0
Rejoignez-nous