Invasion 5 smilie

Soyez le premier à donner votre avis sur cette source.

Vue 3 656 fois - Téléchargée 243 fois

Description

5 smilie transparent sur l ecran

utilisation de
HRGN BitmapToRegion (HBITMAP hBmp, COLORREF cTransparentColor = 0, COLORREF cTolerance = 0x101010)

qui vien de
http://www.cppfrance.com/codes/MP3-PLAYER_44687.aspx
et
http://www.cppfrance.com/codes/DEV-CPLUSPLUS-FENETRE-TRANSPARENTE-NON-RECTANGULAIRE_44803.aspx

rajouter 2 fonction
int SaveRegion(HRGN hRgn,char *name);
sauver la region a utiliser et

pour utiliser dans un program extern
HRGN LoadRegion(char *name);

Source / Exemple :


int SaveRegion(HRGN hRgn,char *name);
HRGN  LoadRegion(char *name);

////////////////////////////////////////////////////
int SaveRegion(HRGN hRgn,char *name)
{
  
   int iSize = GetRegionData(hRgn, sizeof(RGNDATA), NULL);

   // Allocate memory to hold the region data
   RGNDATA* pData = (RGNDATA*)calloc(iSize, 1);
   pData->rdh.dwSize = iSize;

   // Get the region data
   int iSize2 = GetRegionData(hRgn, iSize, pData);
   // Sanity check
   if (iSize != iSize2) return 0; //
     // ::MessageBox(NULL, L"Something wrong with GetRegionData...", L"Error", MB_ICONERROR);

   // Save region data to a file
   FILE* f = fopen(name, "wb");
   fwrite((char*)pData, sizeof(char), iSize, f);
   fclose(f);

   // Free allocated memory
   free(pData);

   // Delete our region
   //DeleteObject(hRgn);
   return 1;
}

////////////////////////////////////////
HRGN  LoadRegion(char *name)
{
	// Open file to read region data
	FILE* f = fopen(name, "rb");
	// Get size of the file
	fseek(f, 0, SEEK_END);
	int iSize = ftell(f);
	fseek(f, 0, SEEK_SET);
	// Allocate memory to hold the region data
	RGNDATA* pData = (RGNDATA*)calloc(iSize, 1);
	// Read region data from file
	fread((char*)pData, sizeof(char), iSize, f);
	fclose(f);

	// Create region from loaded region data
	HRGN hRgn = ExtCreateRegion(NULL, iSize, pData);

	// As a demonstration, set the loaded region as window region
	// so it is visually clear that it got loaded correctly.
	//::SetWindowRgn(g_hWnd, hRgn, TRUE);
	// Free allocated memory
	free(pData);

	return hRgn;
}
/////////////////////////////////////////////////

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.