begin process at 2012 05 28 12:50:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

API Setpixel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

API Setpixel

samedi 12 février 2005 à 22:06:51 | API Setpixel

Stephane

Membre Club
Salut a tous

voila, j'utilise l'API SetPixel pour remplir une zone dont je connais le HDC (passée en parametre par une appli VB).
Mon probleme est que quand la DLL C++ a fini de dessiner les pixels, et qu'elle rend la main a l'appli VB,  ce qui a été dessiné n'est pas "figé" cad que si je deplace la fenetre en dehors de l'écran, et que je la ramene, une partie s'efface !

comment faire pour "memoriser" cette nouvelle image dessinée ??

merci beaucoup par avance
++
[ Lien ]
dimanche 13 février 2005 à 00:11:01 | Re : API Setpixel

DeAtHCrAsH

Tout dépend du contexte sur lequel tu dessines.
Si je me rappelles bien, avec VB si tu dessines sur une picturebox, tu dois mettre la propriété autoredraw (ou autorefresh) a true.
Ainsi, l'image sera dessiné a chaque fois que l'événement WM_PAINT sera intercepté.

Shell
dimanche 13 février 2005 à 00:24:06 | Re : API Setpixel

Stephane

Membre Club
salut et merci pour ta réponse

c'est bien un picturebox, mais autoredraw a true ou false ne change rien au probleme
dimanche 13 février 2005 à 00:37:38 | Re : API Setpixel

DeAtHCrAsH

Hum,
C'est normal en fait.
Tu dessines sur ton contexte par l'intermediaire de ta DLL.
Autoredraw ne dois pas gérer cela.

T'as essayé de faire un PictureBox.Refreshaprès avoir dessiné dessus, tout en laissant le controle en autoredraw = true ?


Shell
dimanche 13 février 2005 à 09:47:39 | Re : API Setpixel

AlexMAN

Membre Club
J'ai peut etre une methode 'bourrin' mais qui marchera a coup sur :
Tu sous classes ton controle picture box, et tu geres son apparence a la reception de WM_PAINT.

Ca pourrait marcher non ?

+2(p - n)
dimanche 13 février 2005 à 11:24:15 | Re : API Setpixel

Stephane

Membre Club
oula

le picture box est gerer par VB je peux pas intercepter les evenements, en plus je debute completement en C++

y a pas une API qui ferait ca ? de memoriser l'image ?
[ Lien ]
dimanche 13 février 2005 à 12:25:48 | Re : API Setpixel

DeAtHCrAsH

AlexMAN> VB sous classe déjà les controles.

Le plus simple a faire et qu'une fois que tu as dessiné dans ta picturebox, tu sauvegardes sont contenu dans un .bmp puis tu le recharge ensuite tout en laisant l'autoredraw a true.
Ce sera transparent pour l'utilisateur.

Shell
dimanche 13 février 2005 à 13:38:11 | Re : API Setpixel

vecchio56

Administrateur CodeS-SourceS
C'est pas possible de "mémoriser" comme ca. De toutes facons, la DLL devra se charger de dessiner à chaque fois qu'il y en a besoin. Par ailleurs je ne comprends pas l'intérêt de ce que tu cherches à faire (tu peux pas appeler SetPixel directement en VB?), mais si c'est pour créer une bmp, ca ne sert à rien de faire une DLL.
dimanche 13 février 2005 à 14:55:03 | Re : API Setpixel

DeAtHCrAsH

vecchio56> Tu peux bien évidemment appeller l'api depuis VB mais le problèùe sera le meme.
L'avantage de sauvegarder l'image faite c'est de ne pas avoir a la redessiner systématiquement.
Je m'imagine mal faire ca si l'image résulte d'un calcul d'une minute...
Il est bien plus rapide de charger des pixels deja défini dans un bmp que de devoir tout recalculé (exemple mandelbrot ou julia).

De toute maniere quand tu mets la proriété AutaRedraw a true, tu ne fait rien de plus que sous classé le controle et genéré un WM_PAINT qui redessinera a partir de la mémoire.

A ce compte la autant libéré la mémoire et travaillé a partir d'un fichier.

Sinon tu peux toucher a ta DLL et sauvegarder le résultat dans un fichier bmp, puis après l'appelle a ta fonction de la DLL, tu charges l'image avec PictureBox1.LoadFromFile ( ca doit resembler a ca je crois).


Shell
dimanche 13 février 2005 à 18:04:17 | Re : API Setpixel

Stephane

Membre Club
salut

merci pour vos aide :

DeAtHCrAsH > j'ai essayé d'enregistrer le picturebox en BMP, mais l'enregistrement ne prend pas en compte les pixels déssiné lui non plus.

vecchio56> non car la DLL traite la partie décompression de l'image en fait

DeAtHCrAsH > c'est vrai le temps de calcul est pas rapide, donc recalculer le tout a chaque WM_Paint est impossible

ouai je crois que je vais faire comme ca : directement generer la BMP dans la DLL C++, ca doit pas etre trop complique si la structure du BMP ?
[ Lien ]

1 2

Cette discussion est classée dans : vb, appli, api, setpixel


Répondre à ce message

Sujets en rapport avec ce message

comment convertir un programme vb utilisant une api en porgramme c++ ?? [ par morgandetoi06 ] bonjour, j ai trouvé sur www.vbfrance.com cette source qui permet de modifier le pseudo sur msn messnger :Dim aDim MSN As New MsgrObjectPrivate Sub co presser une touche d'une autre appli [ par sena ] Bonjour,je voudrais savoir si il est possible de simuler la pression d'une touche (par exemple la lettre 'k') dans un prog C/C++ avec PostMessage(..) Api SetOneProp [ par bibifinal ] Bonjour tout le monde, j'aurais une question ou plutot je transfert ce que j'ai mis sur vb france, c'est pour transferer une base de messagerie lotus Lancer 2 fois la même appli. [ par elademri ] --API WIN32--Tout est dans le titre, mon problème : créer un prog permettant de lancer la même application 2 fois, chose impossible pour l'application Faire un timeout sur une question/réponse [ par gilleshugues ] Voila mon problème .J'ai 2 applis qui échangent des données via un socket . L'appli qui questionne est en C++ (MFC) et celle quirépond en VB . Jusqu'i appli en c utilisant l'api sql [ par bebel6 ] Ouf enfin l'installation de l'api sql terminé et qui fonctionne, je suis en train de télécharger une doc sur les fonctions présentes dans l'API mais j Envoi d'un mot binaire [ par seblutfr ] Bonjour à tous,Je suis en train de préparer en VB une appli qui se charge de créer un mot binaire de 25 éléments. Ce mot doit ensuite être envoyé vers Exporter dll pr VB avec VC++6 [ par anthraxx ] Je n'arrive pas à creer un dll qui exporte une fonction et qui soit utilisable avec Visual Basic...Avec Visual C++ 6 j'ai cree une "dll win32"Puis j'a dll VC++ -> VB [ par Galagan ] Voila j'essait de faire une dll sous VC++ pour l'utiliser sous VB. Il y a un problemme de compatibilité entre les string de Vb et celle de Vc++. Comme Chemin d'un projet... [ par neub ] Salut tt le monde et bonnes fetes de fin d'anneeVoici ma question urgente (mon projet se termine en se moment):Je souhaite recuperer le chemin de mon


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,122 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales