begin process at 2012 05 29 15:23:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

pb avec la fonction bitblt


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

pb avec la fonction bitblt

jeudi 25 mars 2004 à 21:17:38 | pb avec la fonction bitblt

torsepoilu


bonjour, depuis un moment je parcours tous les sites internet et je modifie mon code en consequence, mais cela ne marche toujours pas.

voici le code :

VOID DoPaint(HWND hwnd)
{
// dxCard et dyCard sont des variables globales

PAINTSTRUCT ps;
HDC hdc;
HDC hMemDC;
HBITMAP off;
int dwWidth, dwHeight;
RECT rTemp;

BeginPaint(hwnd, &ps);


// dimension de la zone client
dwWidth = GetDeviceCaps(hdc, HORZRES);
dwHeight = GetDeviceCaps(hdc, VERTRES);

hdc = GetDC(hwnd);
hMemDC = CreateCompatibleDC(hdc);


// create the off buffer
off = CreateCompatibleBitmap(hdc, dwWidth, dwHeight);
SelectObject(hMemDC, off);

rTemp.top = dyCard/3;
rTemp.left = dxCard*4 + (dxCard - dyCard/3)/2;
rTemp.right = dxCard*4 + dyCard/3 + (dxCard-dyCard/3)/2;
rTemp.bottom = dyCard - dyCard/3;

DrawEdge(hMemDC,
&rTemp, BDR_RAISEDOUTER, BF_RECT);


// copie de hdc
BitBlt(hdc, //hdc destination
0, //pos x en haut a gauche pour hdc destination
0, //pos y en haut a gauche pour hdc destination
dwWidth, //largeur
dwHeight, //hauteur
hMemDC, //hdc source
0, //pos x en haut a gauche pour hdc source
0, //pos y en haut a gauche pour hdc source
SRCCOPY); //tag de copy

DeleteDC(hMemDC);


EndPaint(hwnd, &ps);
}


drawEdge ne veut pas s'afficher pourtant si je remplace hMemDC par hdc dans la fonction, il s'affiche

quelqu'un pourrait-il me conseiller?
jeudi 25 mars 2004 à 23:17:06 | Re : pb avec la fonction bitblt

ymca2003


dwWidth = GetDeviceCaps(hdc, HORZRES);
dwHeight = GetDeviceCaps(hdc, VERTRES);

te donne la taille de l'écran pas de la zone cliente

c'est GetClientRect() qu'il faut appeler pour savoir la zone où dessiner

ensuite fait directement
hdc = BeginPaint(hWnd, &ps);

sauvegarde également l'ancine bitmap de hMemDC :
HBITMAP hOldBmp = (HBITMAP) SelectObject(hMemDC, off);

et remet le à la fin avant de détruire hmemdc:
SelectObject(hMemDC, hOldBmp);
DeleteDC(hmemDc);
DeleteObject(off);


sinon si les pb persistent, essayent de tracer une simple ligne vers des coordonnées faible (pour être sûr quelle seront visible) pour voir si BitBlt marche.



Cette discussion est classée dans : hwnd, hdc, hmemdc, dycard, rtemp


Répondre à ce message

Sujets en rapport avec ce message

Affichage bitmap [ par gregory6 ] GringoBonjour, je suis débutant ss visual C++ et j'aurai besoin d'un peu d'aide. Je crée un projet MFC ds lequel je crée une fenetre. Cette fenetre cr problème avec bitblt [ par gregory6 ] GringoBonjour,je suis développeur débutant sous visual C++ et les MFC. Je cherche à afficher le contenu d'un répertoire sur une page graphique que je dessiner dans une zone Picture [ par pidoumtimo ] Bonjour a tous.Je possede deux tableau de valeurs et j'aimerai tracer la courbe issue de ces deux tableau dans une zone Picture.Malheureusement mon co Un bouton imagé [ par victorcoasne ] Comment faire pour que sur un bouton apparaisse l'image ?J'ai trouvé comment faire apparaître une image : void PrintBmp(HWND hWnd, char *filename, i bitmap pixel par pixel [ par Galmiza ] Salut,J'ai besoin d'afficher des images bitmaps pixel par pixel et non via le BitBlt.J'aimerais pouvoir acceder à ce qu'on appelerait la memoire video API :: gestion du mulo [ par JackosKing ] LRESULT CALLBACK Twiny::WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ static bool activate = FALSE; switch ( message ) { case WM_MO disparition de mon bitmap. [ par oRTEEZ ] Voila j'ai une fenetre dans lequel je load mon un bitmap al'aide de la fonction suivante. Mon probleme es t que si je passe sur un autre prog mon imag probleme openGl niveau debutant [ par AmK ] salut je debute en openGL et j'ai du mal a creer une fenetre le compilateur me mets 2 erreurs :PS: les erreurs du compilateur(vc++ 6.0)sont plus bas ! Dessiner un texte dans un hwnd en mode non erase.. [ par JackosKing ] lo,voilà pour le moment j'utilisai ceci pour dessiner un texte dans un bdg: char buf[10];// SYSTEMTIME CurrentTime; HFONT hFont; hFont=Creat Fuite dans code (ci-joint) [ par Manson ] Salut a tous,voila j'ai fait ce bout de code pour redimensionner une bitmapau moment du WM_PAINT, ca marche bien, mais j'ai l'impressionque j'ai une f


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 1,888 sec (3)

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