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

  FORUM HardWare.fr
  Programmation

  [Win32 et bidouille] Pomme d'API , memory DC et ses joyeux amis....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Win32 et bidouille] Pomme d'API , memory DC et ses joyeux amis....

n°30432
spark
Luc ?
Posté le 10-05-2001 à 15:27:45  profilanswer
 

Bon, on est en train de faire un ocx pour representer en gros des grands diagrammes. Pour l'instant, c'est fait à la porcos, quand le mec scrolle, on s'amuse a tout redessiner à la main. Ca rame a mort, surtout quand il y a plein d'éléments à l'ecran.
Alors on s'est dit, on va scroller une image au lieu de tout redessiner comme des cons.
Donc, on s'est dit, on va utiliser un DC en mémoire!
Yeah !
Seulement, on s'est vite rendu compte que c'était un peu de la merde pour ce qu'on veut faire... Car c'est limité en taille.... et nous on a besoin de beaucoup beaucoup de place...
C'est un peu un genre de calendrier et si le mec veut visualiser une année avec un précision de 10-20 pixels par heure, ca fait un peu plus de 175000 pixels de large...... et encore, c'est juste pour une année....
Donc, on s'est dit, pas de problemes, on va ruser comme des porcos
Et là, nouvelle idée, on va creer un super tableau de DC pour faire un genre de mosaique comme canalsatellite mais avec du scrolling.
Yeah !
Mais là, on se rend compte que c un peu chiant pour dessiner un trait qui passe entre plusieurs DC, mais ca pas impossible.
DONC, si t'es pas encore mort de rire en voyant comment on veut faire et que tu as une idée, fait moi signe.
Et si tu es blonde a forte poitrine aussi.... on sais jamais....
 
Bref, vu qu'un DC est limité un peu a 8.000.000 pixels² (4.000*2.000 pixels par exemple) et qu'on veut faire le pire scrolling FLUIDE sur une zone immense, comment qu'on doit faire ?
 
Merci de votre attention, et @ bientot pour de nouvelles aventures porcosiennes.
 
Spark & Smocky

mood
Publicité
Posté le 10-05-2001 à 15:27:45  profilanswer
 

n°30453
seblamb
Posté le 10-05-2001 à 16:17:51  profilanswer
 

La meilleur solution mais pas la plus simple, c'est de redessinner que la partie que tu fais apparaitre lors du scroling et de deplacer la partie deja affichée mais encore valable.
Le problème c'est que tu dois vachement optimiser la procédure d'afffichage pour cela.


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
n°30546
spark
Luc ?
Posté le 11-05-2001 à 00:29:44  profilanswer
 

Pas glop
D'autres idées ?
Comment y font a votre avis dans photoshop quand on zoom a mort ?
et internet explorer pour afficher des pages de 2km de haut ?

n°30547
ZZZzzz
Posté le 11-05-2001 à 00:37:22  profilanswer
 

t'as essayé de crée des image DIB ?? (CreateDIBitmap(...)) j'ai jamais essayé mais j'ai déjà vu des applics qui s'en servaient et ça avait l'air pas mal...
sinon à la limite tu utilises le directdraw... une géante surface Back que tu blit en partie dans ta surface primary... mais sur des tailles si grandes je sais pas ce que ça donne (il faudra de toute manière la crée en mémoire système la surface back)

n°30581
BENB
100% Lux.
Posté le 11-05-2001 à 09:18:30  profilanswer
 

Fait un DC de la taille de la fenetre, tu le scroll et tu rajoutes la partie qui apparait...

n°30604
seblamb
Posté le 11-05-2001 à 10:40:04  profilanswer
 

spark a écrit a écrit :

Pas glop
D'autres idées ?
Comment y font a votre avis dans photoshop quand on zoom a mort ?
et internet explorer pour afficher des pages de 2km de haut ?




Pour IE c'est comme j'ai indiqué.
Pour photoshop, il mettent le bitmap en mémoire puis affichent une partie le bitmap dans le DC pendant le scroling.


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
n°30694
HelloWorld
Salut tout le monde!
Posté le 11-05-2001 à 12:54:45  profilanswer
 

Pomme d'API, mdr :lol: :lol: :lol:
sinon : "La meilleur solution mais pas la plus simple, c'est de redessinner que la partie que tu fais apparaitre lors du scroling et de deplacer la partie deja affichée mais encore valable."
 
tu peux detailler un peu + : ca m'interresse bcp moi aussi, comment IE il se demerde pour afficher 10 km de txt + images en restant (assez) fluide. ;)
et si te le fait, je serais happy !! (API, bon d'accord c nul)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°30697
HelloWorld
Salut tout le monde!
Posté le 11-05-2001 à 13:04:21  profilanswer
 

et tant qu'on y est, comment il gere IE les liens hyper text ?
il cree un label expres en plein milieu du text et gere le mouseclick ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°30701
spark
Luc ?
Posté le 11-05-2001 à 13:20:27  profilanswer
 

Merci pour vos réponses, meme si je ne trouve pas ces solutions assez convainquantes...
La je me suis lancé dans une matrice de DC, on va voir si ca le fait...
Mais il est pas exclus que j'utilise la technique qui redessine seulement la partie nouvellement exposée.
Sinon, je sais toujours pas comment IE fait pour gérer des pages de 10km de long........ y a pas des browser open source pour voir comment y s'y prennent ?

n°30707
seblamb
Posté le 11-05-2001 à 13:44:45  profilanswer
 

HelloWorld a écrit a écrit :

et tant qu'on y est, comment il gere IE les liens hyper text ?
il cree un label expres en plein milieu du text et gere le mouseclick ?




Pour les liens hypertexts, IE à un tableau où sont regroupé tous les elements qui composent la pages et fais une recherche pour savoir lequel se trouve sous la souris à chaque fois que tu bouge la souris.
Cette fonction est même "publique", si tu utilise l'activeX IWebBrowser tu peux t'en servir.
Bien tout cela est très optimisé pour que la recherche ne prenne qu'un temp infime
 
Pour ce qui est l'affichage du texte un example  
  IE affiche sur un écran de 3 lignes la page html suivante
    AAAAA
    BBBBB
    CCCCC
    DDDDD
    EEEEE
 il affiche dans un 1er temp
   AAAAA
   BBBBB
   CCCCC
puis quand on scrole
 il deplace le bloc  
  BBBBB
  CCCCC  
 vers le haut avec une fonction Bitblt
 puis affiche la ligne  
  DDDDD
 Donc en fait il ne raffiche qu'une toute petite partie de la page ce qui est très rapide.  
Bien sur il faut toujours optimiser pour savoir quelle ligne il faut afficher, et puis gérer le fait qu'on ne se déplace pas d'une ligne à la fois mais de x pixels.


---------------
[:seblamb] Moi aussi je veux grater dédé!!!
mood
Publicité
Posté le 11-05-2001 à 13:44:45  profilanswer
 

n°30717
HelloWorld
Salut tout le monde!
Posté le 11-05-2001 à 13:52:48  profilanswer
 

merci merci :)
si j'ai bien compris, il affiche ce qu'il a calculé precedement et calcule ce qu'on va surement lui demander un peu + tard ? c pas con ... comment connais tu le fonctionnement de IE ? (c'est open source ? :??:)
 
mais ... qui est dédé ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°30723
seblamb
Posté le 11-05-2001 à 14:01:51  profilanswer
 

Non c'est pas open source, et je peux pas te garantir à 100% qu'il fait comme cela mais c'est la méthode usuelle pour ce genre de problèmes ( traitement de texte...).  
 
Sinon IE est très ouvert pour un programmeur qui sait utiliser les activeX, tous les tags HTML sont convertis en objets et on peut facilement modifier la page affiché en temps réel, recevoir de evenements,... dans un programme externe à ie. On peut même mettre ie dans son propre programme.


---------------
[:seblamb] Moi aussi je veux grater dédé!!!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Win32 et bidouille] Pomme d'API , memory DC et ses joyeux amis....

 

Sujets relatifs
API win[VB/API] Affichage d'un texte dans un rectangle avec clipping
Connaissez-vous un pgr freeware de vérif. de code source (memory leak)Comment changer la couleur des Contrôles texte Static en C Win32 Api ?
Supprimer une clé dans la base de registre avec l'API Win32Nom de partage des répertoires (API - VB)
[Win32] saloperie de winbase.hVisual C++, API Windows
Plus de sujets relatifs à : [Win32 et bidouille] Pomme d'API , memory DC et ses joyeux amis....


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