Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

papi

Impressão em .BMP

Recommended Posts

bom dia a todos,

 

tenho uma rotina de impressão que segue abaixo, o problema e que quando ele imprime a figura em .BMP ele coloca uns caracteres antes que deve ser (não sei) sujeira de buffer de memoria. A minha necessidade é como limpo a memoria antes de imprimir a figura.

 

 

deste ja agradeço a todos

 

xLeft = tLeft; // ===> Inicio de cada linha
		yMaxHeight = 0; // ===> Desenho mais alto da linha
		for (i = 0; i <= strlen(ptx); i++) // ===> Percorre todos os caracteres da linha
		{
		  tmp[0] = ptx[i];  // ===> Pega um caratere da linha
		  tmp[1] = 0;  // ===> adiciona 0 em seguida para finalizar a string
		  strcat(tmp,".bmp"); // ===> concatena .bmp ao caractere

		  hbitmap = (HBITMAP)LoadImage(GetModuleHandle(NULL),tmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);  // ===> Carrega imagem
		  GetObject((HBITMAP)hbitmap,sizeof(BITMAP),&bitmapinfo); // ===> Pega informacoes da imagem
		  xWidth = bitmapinfo.bmWidth; // ===> Pega largura
		  yHeight = bitmapinfo.bmHeight; // ===> Pega altura
		  if (yMaxHeight < yHeight)  // ===> Se a ultima imagem maior for inferior a atual
			yMaxHeight = yHeight; // ===> Atualiza o tamanho da imagem maior
		  hdc = GetDC(hWnd); 
		  image_dc = CreateCompatibleDC(hdc);  
		  SelectObject(image_dc,hbitmap);
		  BitBlt(pd.hDC,xLeft,yTop,xWidth,yHeight,image_dc,0,0,SRCCOPY);  // ===> Desenha imagem na folha
		  DeleteObject(hbitmap);  // ===> Apaga imagem
		  ReleaseDC(hWnd, hdc); 
		  DeleteDC(image_dc);
		  xLeft = (xLeft + xWidth);  // ===> Aumenta coordenada para a proxima imagem/caractere
		}
		  yTop = (yTop + yMaxHeight); // ===> Aumenta coordenada para proxima linha, com base na imagem maior da linha.
// ================================================================================
============

		ptx = strtok(NULL,"\n");
		Line++;
	  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.