Accueil > Forum > > > > api win32
api win32
jeudi 25 novembre 2004 à 21:16:27 |
api win32

_Jonathan
|
je cherche a creer une zone dans une fenetre dans laquelle l'on puisse afficher des trucs basiques (lignes, rectangles pleins ou vides,...) y-a-t-il un controle qui existe, sinon, comment en creer un???
|
|
jeudi 25 novembre 2004 à 21:26:09 |
Re : api win32

AlexMAN
|
Il te faut créer une fenetre (CreateWindow(Ex)()) et ensuite dessiner dessus avec des fonctions tels que Rectangle(), LineTo()...etc. Je pense que tu devrais commencer par regardes des sources sur le site, et si tu as le courage et la motivation, de lire petzold (a telecharger sur brunews.free.fr)..
Voila, bonne chance !
+2(p - n)
|
|
vendredi 26 novembre 2004 à 00:25:38 |
Re : api win32

racpp
|
Salut, Pas besoin d'un controle. Tu dois d'abord obtenir un handle de device context (HDC) pour la fenêtre sur laquelle tu veux dessiner : HDC hdc=GetDC(hWnd); // hWnd=handle de la fenêtre
Tu utilises ce HDC pour dessiner des rectangles etc... : Rectangle(hdc,10,10,150,100);//desine un rectangle vide RECT rect; rect.top=rect.left=10; rect.bottom=rect.right=100; HBRUSH hBrush=CreateSolidBrush(RGB(255,0,0)); FillRect(hdc,&rec,hBrush);//carré plein rouge
Moi aussi je te conseille de lire le Petzold, tu y trouveras tout ce qui concerne la programmation des fenêtres.
|
|
vendredi 26 novembre 2004 à 06:56:12 |
Re : api win32

AlexMAN
|
racpp > Ce serait mieux de lui conseiller de dessiner a la reception de WM_PAINT :
case WM_PAINT: hdc = BeginPaint(hwnd, &ps); //Dessins.. EndPaint(hwnd, &ps); return 0;
Car sinon, a la premiere 'invalidation' de la fenetre, pouf, plus de rectangle ! Petzold est vraiment TRES agreable a lire, et l'anglais qu'il utilise est 'simple', donc serieux, fonce !
Bonne chance
++
+2(p - n)
|
|
vendredi 26 novembre 2004 à 14:25:32 |
Re : api win32

racpp
|
Salut, AlexMan > Si les dessins sont figés au lancement de la fenêtre, ta solution est convenable. Mais si le programme doit dessiner pendant son exécution suivant des paramètres entrés par l'utilisateur par exemple, les fonctions de dessin doivent être appelées en dehors du message WM_PAINT. En effet, ce dernier n'est reçu par la fenêtre que lorsqu'elle revient au premier plan (ou à la suite d'un appel à une fonction comme RedrawWindow() etc...). C'est vrai que le problème du rafraichissement de la fenêtre se pose. Pour moi, la meilleure solution est d'utiliser un metafichier en mémoire. Au lieu de dessiner directement sur la fenêtre, on dessine sur un metafichier créé avec CreateEnhMetaFile(). Cette fonction retourne un HDC comme celui d'une fenêtre. On affiche ce métafichier là où on veut sur notre fenêtre mère avec PlayEnhMetaFile(). Pour le rafraichissement, il suffit d'appeler la fonction d'affichage du metafichier durant le traitement du message WM_PAINT. Ce n'est pas compliqué et c'est parfait.
|
|
vendredi 26 novembre 2004 à 14:49:45 |
Re : api win32

AlexMAN
|
racpp > Pkoi doivent elles etre placées en dehors de WM_PAINT ? Dans un truc que je suis en train de faire, des que l'utilisateur entre un parametre, je fais un InvalidateRect() et toutes mes fonctions de dessin (une demi douzaine d'appels) sont placés dans WM_PAINT, est ce une bonne solution ?
+2(p - n)
|
|
vendredi 26 novembre 2004 à 17:17:11 |
Re : api win32

racpp
|
AlexMan > Oui c'est une bonne solution aussi, mais dans ce cas encore les paramètres entrés doivent être définis en dehors de WM_PAINT. Ce qui conduit à l'utilisation de variables globales (ou en static dans la procédure). Si le nombre de ces variables est grand ça devient un peu gênant. Dans ma méthode de programmation j'essaie toujours d'éviter au maximum ce genre de variables. Je préfère ainsi que les variables soient définies (et parfois même déclarées) juste avant l'appel des fonctions. L'autre problème c'est qu'on appellera toutes les fonctions contenues dans le traitement de WM_PAINT même si on n'a besoin que d'une seule. Pour éviter cela on sera amené à ajouter des tests (et des variables). J'ajoute encore que si les dessins sont un peu complexes le rafraichissement de la fenêtre devient trop lent. Bref, ce sont des choses que j'ai vécu avant de découvrir l'astuce des métafichiers. Grâce à ces derniers, le programme devient plus performant et mieux organisé. Pour les dessins complexes, on n'affiche le métafichier qu'une fois le dessin terminé. Pendant le rafraichissement de la fenêtre, on n'a pas besoin de tout redéssiner, on affiche juste le métafichier d'un seul coup. Cela offre, en plus beaucoup d'autres avantages: sauvegarde des dessins dans un fichier (.emf de très petite taille), les imprimer, avoir un aperçcu avant impression ou faire un zoom etc... C'est pour tout cela que je pense que c'est la meilleure solution.
|
|
vendredi 26 novembre 2004 à 17:36:51 |
Re : api win32

AlexMAN
|
Ok jte remercie pour ces explications, c tres simpa, merci. Je prends note, et vais decouvrir cette methode...
Merci encore, Bonne soirée
++
+2(p - n)
|
|
samedi 27 novembre 2004 à 11:32:14 |
Re : api win32

_Jonathan
|
merci a tous pour ces quelques conseils, je voudrai creer un affichage qui se raffraichi souvent, en fait, c 2 compteur, avec donc 2 aiguilles representées par 2 triangles, voila. sa risque donc de sacader ou de clignoter, mé je v lire pedzold, voir ce qu'il y a d'interressant, et j'ai aussi trouvé une source win32 sur ce site, parlant du dessin dans une fenetre...
|
|
samedi 27 novembre 2004 à 11:35:35 |
Re : api win32

AlexMAN
|
Pour eviter le clignotement, utilise ou bien la methode de racpp, ou bien le 'double buffering', méthode exploitée par gagah ou encore aardman. Si tu as besoin de precisions concernant cette derniere, fais moi signe.
+2(p - n)
|
|
Cette discussion est classée dans : creer, api, win32
Répondre à ce message
Sujets en rapport avec ce message
Lien DLL 16 / API WIN32 [ par CoreBreaker ]
Bonjour quelqu'un sait-il comment une fonction de l'API Win32 dans une DLL 16bits ?Et de manière générale comment appeler une fonction d'une DLL 32bit
api win32 sdk [ par fabpdg ]
je recherche comment utiliser les fonfions, comme netsessionemun en delphi.Delphi ne reconnaît pas les fonctions api win32 sdk.Comment et quels sont l
equivalent win32 pour linux [ par mbab ]
Bonjour, je debute en c++ et je dois realiser une interface graphique en c++ sous linux. Y a t-il des api tel win32 (pour windows )mais sous linux. Si
l'API win32 sait-elle lire? [ par supergrey ]
Bonjour, je voudrais savoir s'il est possible de récupérer le texte visible dans les page web que je visite sur le net avec un programme.Merci.
2 questions en api win32 [ par youpiyoyo ]
j'aimerai tout d'abord savoir comment mettre un titre sur ma boite de dlg en api win32 sachant ke a border=none dans la gestion des ressources. a mon
Question API Win32 [ par LordBob ]
Bonjours a tous,j'aimerais avoir quelques info sur les API suivante:EnumWindowsGetWindowcar sinon il faudrai que j'aille voir sur le site de la MSDN m
Existe-t-il un InvokeHelper en Api win32 [ par youpiyoyo ]
comme le titre l'indique j'aurai besoin de sauvegarder un fichier. j'aurais aimer un boite de dlg pour cela.merci d'avance...
API Win32 ActiveX [ par redwarrior2 ]
RedWarrior2RedWarrior2Salut,je developpe une application win32 sous visual 5 dans lequel j'ai ajouté des composants activex, seulement je n'ai trouve
Coloration de texte dans un EDIT (API WIN32) [ par Nebula ]
Tout est dit dans le sujet...Petites précisions : je ne travaille qu'en C, et j'aimerais savoir si la chose est possible, car les RICHEDIT sont (beauc
Coloration de texte dans un EDIT (API WIN32) [ par Nebula ]
---Hum, apparemment mon premier post n'est pas passé, je retente le coup !---Tout est dit dans le sujet...Petites précisions : je ne travaille qu'en C
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|