Accueil > Forum > > > > Dimensions de la surface client
Dimensions de la surface client
mercredi 29 mars 2006 à 23:13:18 |
Dimensions de la surface client

julienbornet
|
Bonjour Brunews (je dit Brunews car en general c'est lui qui repond a mes messages le pauvre, bon d'un autre cote c'est lui l'admin) et bounjour au autre aussi. Bon voila je te remercie de m'avoir renseigner pour le trace des graphiques. Le Petzold ma bien aider. Cependant j'ai un petit probleme que je n'arrive pas a resoudre. Dailleur a se sujet je ne sais pas si c'est moi ou s'il y a une erreur mais page 46 du chapitre 5 il dit que pour changer l'origine de la fenetre il faut utiliser SetViewportOrgEx(hdc, 0, cyClient,NULL) et il indique qd meme temps ceci change le sens de l'axe y mais chez moi ca na change pas le sens (bon c'est pas tres grave mais voila). En fait je cherche a trace un graphique plus long que haut. Je voudrais donc avoir une tres longue zone client dans la fenetre avec une barre de defilement horizontale, mais je n'ai pas trouver comment faire. Bon je supposes que tu vas m'indiquer un chapitre du Petzold (comme ca au fur et a mesure je le lit en entier lol). Bon j'ai bien compris quec'est a la réception du message WM_SIZE, que nous récupérons les dimensions de la surface client de la fenêtre dans le paramètre lParam joint au message. La largeur étant dans son mot de poids faible et la hauteur dans son mot de poids fort. Nous les extrayons à l'aide des macros LOWORD et HIWORD. mais comment faire pour avoir donc une barre de defileemnt sur le bas et une zone client tres tres longue? Bon dvance merci
|
|
jeudi 30 mars 2006 à 00:09:51 |
Re : Dimensions de la surface client

BruNews
|
Regarde MSDN à ScrollWindowEx, tu lis bien et ensuite tu suis le lien d'exemples en bas. ciao... [ Lien ]BruNews, MVP VC++
|
|
jeudi 30 mars 2006 à 00:45:49 |
Re : Dimensions de la surface client

julienbornet
|
euh c'est pas pour faire mon boulet mais je suis aller sur le site [ Lien ] et j'ai rechercher ScrollWindowEx et la ben y en tout tout pelin alors c lequel que je prend stp merci
|
|
jeudi 30 mars 2006 à 00:53:14 |
Re : Dimensions de la surface client
|
jeudi 30 mars 2006 à 00:55:11 |
Re : Dimensions de la surface client

BruNews
|
Je reconnais que c'est un peu galère à trouver avec MSDN sur le net, en local va nettement mieux. ciao... [ Lien ]BruNews, MVP VC++
|
|
jeudi 30 mars 2006 à 10:50:04 |
Re : Dimensions de la surface client

buno
|
T'as pensé à lancer ton fan-club BruNews? :P Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai... Le site de mon mariage
|
|
jeudi 30 mars 2006 à 19:33:04 |
Re : Dimensions de la surface client

julienbornet
|
Ok ok ok , bon apres avoir bien lu et essayer d'implementer quelque chose j'ai pu m'apercevoir que c'etait bien complique tout ca. Ben oui en fait comme je t'ai dit je trace mon graph a aprtir de donnes que je lit au fur et a mesure dans un fichier. Le probleme c'est que moi je pensais que je pouvait trace tout mon graph dans la zone client , et ensuite n'en montre qu'une parti dans la fenetre. En fait c'est comme si on deplacait un loupe sur un pelicule photo par exemple. Mais en fait d'apres ce que j'ai pu voir dans l'exemls, il faut redessiner la zoen client qui se trouve dans la fentre a chaque fois que l'on depace la scroll bare (en gros ca revient a dessiner le graph par parti quoi). Le probeleme c'est que pour faire ca j'ai deux solution, soit je deplace ma tete de lecture de fichier pour pouvoir redessiner la bonne partie, soit j'enregistre tous le fichiers en memoire(dans un tableau avec malloc par exmeple) puis je lui dit d'acceder a tel valeur du tableau. En tous les cas dit moi si je fais fausse route car la franchement j'avoue que c'est quand meme pas tres simple. d'avance merci PS: Bruno a eu une bonne idee, mettons en place le fan club de Brunews mais je previens d'avance c pas moi la pompom girl 
|
|
jeudi 30 mars 2006 à 20:04:18 |
Re : Dimensions de la surface client

BruNews
|
Si ce n'est pas trop énorme, la version tableau me semble préférable pour la vitesse. ciao... [ Lien ]BruNews, MVP VC++
|
|
jeudi 30 mars 2006 à 20:33:27 |
Re : Dimensions de la surface client

julienbornet
|
Ben justement c'est bien mon probleme car la taille des fichiers sera sans doute tres variable (mais a mon avis jamis en dessous de 20Mo). Car en fait la taille du fichier depend directement du temps que dure l'aquisition, et du nombre de paramtres que l'on enregistre lors de cette aquisition. Du coup je penses que ca peut atteindre une taille dans les 200 Mo. Au quel est ce possble de faire les deux methode en diasnt par exemple que si le fichier lu depasse la taille de 100 Mo par exemple on passe en mode lecture ficheir? merci
|
|
jeudi 30 mars 2006 à 22:40:02 |
Re : Dimensions de la surface client

julienbornet
|
AAAAAAAAAAhhhhhhhhhh je coris que je vais finir par me sucider. Bon j'ai passer ma journe la dessus, et j'ai un gros probleme ca na marce pas. En fait deja je ne sais meme pas si ma zone client est relleemnt redimensionner, en plus lorsque je fait bouger ma scroll barre mon graph ne s'actualise po. Enfin je peux dire que dans un sens, il continu a trace la ligne en continu a la place de trace la suite. Bon je sais que c'est pas bien mais comme je ne penses pas y arriver tout seul voici mon code qui gere la fenetre graphique: /*=================================================================================*/ /* Fonction qui scan le fichier pour connaitre le nombre de points */ /*=================================================================================*/ int readfile(void) { int endfile; int i; int xRead; float yRead; FILE * open; open = fopen("tab1.txt","r"); i = 0; DefineN: endfile = feof(open); if (endfile == 0) { i++; fscanf (open,"%d ",&xRead); fscanf (open,"%f\n",&yRead); goto DefineN; } else { fclose(open); } return i; } /*==================================================================================*/ /* fonction used to record the file in a table */ /*==================================================================================*/ int recintable(void) { int N; FILE * open; int xRead; float yRead; open = fopen("tab1.txt","r"); //Ouvre le fichier des points N = readfile(); x=( int *)calloc(N,(sizeof(int))); y=( float *)calloc(N,(sizeof(float))); if(x==NULL) { return FALSE; } if(y==NULL) { return FALSE; } /*on enregistre le fichier en memoire*/ for (int cpt = 1; cpt <= N; cpt = cpt++) { fscanf (open,"%d ",&xRead); x[cpt] = xRead; fscanf (open,"%f\n",&yRead); y[cpt] = yRead; } fclose(open); return 0; } /*==================================================================================*/ /* Procedure servant a desssiner dans la fenetre */ /*==================================================================================*/ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static int cxClient; static int cyClient ; static int xClientMax; static int xPos; int Nbpoint; HDC hdc ; PAINTSTRUCT ps ; SCROLLINFO si; switch (message) { case WM_CREATE : recintable(); Nbpoint = readfile(); xClientMax = Nbpoint*2; return 0; /*===============================Gets the size of the client area=============================*/ case WM_SIZE: cxClient = LOWORD (lParam) ; cyClient = HIWORD (lParam) ; si.nMax = xClientMax; return 0 ; /*===================================Control of the scroll bar================================*/ case WM_HSCROLL: // Get all the vertial scroll bar information si.cbSize = sizeof (si); si.fMask = SIF_ALL; // Save the position for comparison later on GetScrollInfo (hwnd, SB_HORZ, &si); xPos = si.nPos; switch (LOWORD (wParam)) { // user clicked left arrow case SB_LINELEFT: si.nPos -= 1; break; // user clicked right arrow case SB_LINERIGHT: si.nPos += 1; break; // user clicked the scroll bar shaft left of the scroll box case SB_PAGELEFT: si.nPos -= si.nPage; break; // user clicked the scroll bar shaft right of the scroll box case SB_PAGERIGHT: si.nPos += si.nPage; break; // user dragged the scroll box case SB_THUMBTRACK: si.nPos = si.nTrackPos; break; default : break; } // Set the position and then retrieve it. Due to adjustments // by Windows it may not be the same as the value set. si.fMask = SIF_POS; SetScrollInfo (hwnd, SB_HORZ, &si, TRUE); GetScrollInfo (hwnd, SB_HORZ, &si); // If the position has changed, scroll the window if (si.nPos != xPos) { ScrollWindow(hwnd, (xPos - si.nPos), 0, NULL, NULL); } return 0; /*==========================================Plot the graph==============================*/ case WM_PAINT: hdc = BeginPaint (hwnd, &ps) ; int xBeg ,xEnd ; float yBeg, yEnd; int numpoint; int N; N = readfile(); static HPEN hpen1, hpen2; hpen1 = CreatePen (PS_SOLID,1,RGB(255,0,0)); hpen2 = CreatePen (PS_SOLID,1,RGB(160,160,160)); GetScrollInfo (hwnd, SB_HORZ, &si); numpoint = si.nPos* (N*3)/(si.nMax); SetViewportOrgEx(hdc,0,cyClient/2,NULL); // redefinition du repere SelectObject(hdc,hpen2); //selectionne le stylo gris MoveToEx(hdc,0,0,NULL); //Se place au point de depart pour trace l'axe des abscisse LineTo(hdc,cxClient,0); //Trac la'xe des abscisse xBeg = x[numpoint]; yBeg = y[numpoint]; numpoint = numpoint + 1; for (int pos = numpoint ; pos <= N; pos++) { SelectObject(hdc,hpen1); MoveToEx(hdc,xBeg,yBeg,NULL); // permet de se deplacer au point de depart xEnd = x[pos]/50; // Definit l'abisce point d'arrive yEnd = -(y[pos]*300); // Definit l'ordonne du point d'arrive LineTo(hdc,xEnd,yEnd); // Trace la ligne entre ces deux point xBeg = xEnd; // Indique que l'abscisse du prochain point de depart est egale a l'abscisse de ce point d'arrive yBeg = yEnd; // Indique que l'ordonne du prochain point de depart est egale a l'ordonne de ce point d'arrive } EndPaint (hwnd, &ps) ; return 0 ; case WM_DESTROY: DeleteObject(hpen1); DeleteObject(hpen2); PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, message, wParam, lParam) ; }
|
|
Cette discussion est classée dans : client, dit, dimensions, brunews, surface
Répondre à ce message
Sujets en rapport avec ce message
création de client [ par sub-zero ]
comment mettre un client en écoute tout en gérant les événements ???p.s: hmm ca marche mais le processus reste bloquant jusqu'à la première connexion
client IRC ?? [ par crAzYJoJoo ]
Slt, je cherche le code source d'un client irc pour voir comment ca marcheest ce que qq1 sait ou je peux trouver ca ?merci d'avance ++
Visual C++ Affichage dans la zone client [ par Winhotto ]
Bonjour,je cherche un support qui me permette de faire la mise en page de la zone client.Par exemple un support quadrillé sur lequel je peux mettre mo
C++ Builder et Telnet [ par Sylvain ]
bonjour,je fais une petite appli en c++ builder ou j'ai 1 client FTP et un client Telnet.Pour le premier, aucun pb, j'utilise TNMFTP mais, je n'arrive
client/serveur FTP [ par fab ]
Salut!!!Je développe un prog client/serveur FTP en C++ Builder . Je veux pouvoir envoyer un fichier image au serveur . Pour cela j'utilise le composan
Client IRC [ par SAtaN ]
quelqu'un aurait il un tutoriel, des infos, pour m'aider à creer un client IRC ???PS : j'utilise Borland C++a+
programmation client [ par CyraX ]
bonjour tout le monde...Voila je souhaiterais programmer un client pour un server de message instantanés style AIM ou MSN.Cependant, je manque d'infor
Lecture/Ecriture/Modification d'une structure dans un fichier [ par paniX ]
Bonjour. Alors voici mon probleme:j'ai créé une structure client qui a cette forme :struct client{ int id; char nom[30]; char prenom[30]; char adresse
Pointeurs sur des tableaux de plusieurs dimensions [ par ProGamer ]
J'ai besoin de faire des pointeurs sur ce genre de tableaux. Voici comment je m'y prends (et surtout, voici comment ça ne marche pas...):unsigned char
tableau [ par zeratul67 ]
J'ai une fonction qui doit me renvoyer un tableau à deux dimensions, mais la taille de l'une des ces 2 dimensions est inconue. (tableau: char cp[x][25
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : CXIMAGERE : CXIMAGE par rt15
Cliquez pour lire la suite par rt15
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|