begin process at 2012 05 28 08:07:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

cherche explication d'un code


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

cherche explication d'un code

samedi 7 janvier 2006 à 19:59:37 | cherche explication d'un code

jopiou

Bonsoir voila je cherche quelqu'un pouvant m'expliquer ce code

HBITMAP hbmp;
int cxDib, cyDib,idximg;
char *szimages = {"Chat.jpg"};

void __stdcall ImgLoad()
{
  HANDLE file; ===> le handle c'est quoi deja ? enfin si on peut m'expliquer rapidement
  DWORD bmpsz, val; ===> ledword aussi si on peut m'expliquer
  HANDLE hheap;
  BYTE *pmem;
  BITMAP bmp;
  if(hbmp) {DeleteObject(hbmp); hbmp = 0;}
  file = CreateFile(szimages, GENERIC_READ, 0, 0, OPEN_EXISTING,
                   FILE_FLAG_SEQUENTIAL_SCAN, 0);
  if(file == INVALID_HANDLE_VALUE) return;
  bmpsz = GetFileSize(file, 0);
  hheap = GetProcessHeap();  ===> qu'est-ce que cette fonction?
  pmem = (BYTE*) HeapAlloc(hheap, 0, bmpsz); ===> pareil pour heapalloc
  if(pmem) ReadFile(file, pmem, bmpsz, &val, 0);
  CloseHandle(file);
  if(!pmem) return;
  hbmp = bnBmpFromMemory(pmem, bmpsz);
  HeapFree(hheap, 0, pmem);
  if(hbmp) {
    if(GetObject(hbmp, sizeof(bmp), &bmp)) {
      cxDib = bmp.bmWidth; cyDib = bmp.bmHeight;
    }
  }
}

void __stdcall onPaint(HWND hdlg)
{
  PAINTSTRUCT ps;
  HDC hdc, memdc;
  RECT rct;
  hdc = BeginPaint(hdlg, &ps);
  if(hbmp) {
    GetClientRect(hdlg, &rct);
    memdc = CreateCompatibleDC(hdc);
    SelectObject(memdc, hbmp);
    StretchBlt(hdc, 0, 0, (rct.right-150), rct.bottom, memdc, 0, 0, cxDib, cyDib, SRCCOPY);
    DeleteDC(memdc);
  }
  EndPaint(hdlg, &ps);
}

BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  switch(mssg) {
    case WM_PAINT:
      onPaint(hdlg);
      break;
    case WM_TIMER:
      if(++idximg > 2) idximg = 0;
      ImgLoad();
      InvalidateRect(hdlg, 0, 0);
      break;
    case WM_INITDIALOG:
      SetClassLong(hdlg, GCL_HICON, (long)LoadIcon(0, IDI_APPLICATION));
      idximg = 0;
      ImgLoad();
      SetTimer(hdlg, 1, 1500, 0);
      return 1;
    case WM_COMMAND:
      if(wParam == IDCANCEL) {KillTimer(hdlg, 1); EndDialog(hdlg, 0);}
  }
  return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
  DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_APP), 0, AppDlgProc, 0);
  return 0;
}

Merci beaucoup si vous pouvez m'aider

samedi 7 janvier 2006 à 20:08:59 | Re : cherche explication d'un code

Joky

Membre Club
Réponse acceptée !
Un HANDLE c'est comme n'importe qu'elle variable, elle permet d'identifier un Objet
Un DWORD c'est une variable codée sur 8*4 = 32 Bits donc en binaire de la forme
00000000000000000000000000000000

BYTE *pmem; un tableau de BYTE (attention terme très ambigu lol)
Pour ce qui est des Heap c'est un méthodes d'allocation de mémoire, pour plus de détails faut lire Richter

Et après j'vois pas ce qui te pose problème :o

if(!Meilleur("Joky")) return ERREUR;<

samedi 7 janvier 2006 à 20:29:55 | Re : cherche explication d'un code

jopiou

J'aimerais bien savoir en plsu a quoi sert

StretchBlt(hdc, 0, 0, (rct.right-150), rct.bottom, memdc, 0, 0, cxDib, cyDib, SRCCOPY);

merci



samedi 7 janvier 2006 à 20:51:12 | Re : cherche explication d'un code

Joky

Membre Club
Réponse acceptée !
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_9cok.asp

if(!Meilleur("Joky")) return ERREUR;<



Cette discussion est classée dans : file, hdlg, hbmp, pmem, bmpsz


Répondre à ce message

Sujets en rapport avec ce message

File mapping [ par deck_bsd ] Bonsoir / Bonjour à tous,Voila j'ai trouvé l'exelente source de BruNews concernant les instance unique de programme. Plutot que de recopier bêtement l comment afficher un icone dans la caption d'une boite de dialog [ par Batman60 ] bonjour comment afficher un icone dans la caption d'une boite de dialogue?j'y arrive dans la fenêtre seulementmerci d'avance<img src="http://www.cppfr filemapping [ par skotmarud ] bonjour, j'ai besoin d'aide car je ne sais pas lire un "buffer" octet par octet pour traiter chaque octet un par un à la lecture d'un fichier binair combo box api win 32 [ par lafolle24320 ] Bonjour, je tente de faire fonctionner une combox mais je n'y parviens pas... Voici comment je procède : j'ai une variable globale UINT Jour j'initial Header File [ par teddybe4r ] Bonjour ca fais depuis quelques heures que je me casse la tête a trouver comment faire des header file ( les utilisés ) jai beau chercher ds La Bible Envoi de fichier non complet [ par trafounet ] bonjour à tous,je cherche à envoyer un fichier par socket et ca marche pour les fichiers de petite taille (quelques ko) mais malheuresement dès que le file fifo [ par sendouda ] bonjour tout le monde,svp j'ai besoin d'aide, je travaille en MFC et j'ai besoin de définir une file FIFO dans laquelle je vais stocker des paquets sn Ouvrir et afficher un fichier texte en C [ par AsM0DeUz ] 'lut Je m'initie actuellement au C. Apres avoir fait les exos les plus basiques ... je passe au basique niveau 2 J'ai ecris qques lignes pour afficher utiliser une string avec switch/case [ par potimarara ] Salut a tous,J ai le code suivant qui a partir de un nom de ficher (avec extension) me renvoir un content-type.Le probleme est que lorsque j extrais l Boite de dialogue [ par bioopovega ] Bonjour,J'ai un petit probleme, quand je créer une boite de dialogue dans le fichier main.cpp, je n'est pas d'erreur, mais quand je veux inclure la cr


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,466 sec (3)

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