local hDC := CreateCompatibleDC( 0 )
local hBmp := CreateCompatibleBitmap( hDC, nAncho, nAlto )
local hOldBmp := SelectObject( hDC, hBmp ) // ya tenemos el nuevo bitmap seleccionado en un hDC
local hEMF := GetEnhMetaFile( cFileName ) // nombre del fichero EMF
PlayEnhMetaFile( hDC, hEMF, { 0, 0, nAncho, nAlto } ) // hay que crear esta función para que tome el 3er parametro como un rect
CloseEnhMetafile( hEMF )
SelectObject( hDC, hOldBmp )
DeleteDC( hDC )
FUNCTION createBmp()
LOCAL hDib
local hDC := CreateCompatibleDC( 0 )
local hBmp := CreateCompatibleBitmap( hDC, 50, 75 )
local hOldBmp := SelectObject( hDC, hBmp ) // ya tenemos el nuevo bitmap seleccionado en un hDC
local hEMF := GetEnhMetaFile( '1.emf' ) // nombre del fichero EMF
PlayEnhMetaFile( hDC, hEMF,, .T., 50, 75 ) // hay que crear esta función para que tome el 3er parametro como un rect
CloseEnhMetafile( hEMF )
hDib := DibFromBitmap( hBmp )
DibWrite( "file.bmp" , hDib )
GloBalFree( hDib )
SelectObject( hDC, hOldBmp )
DeleteDC( hDC )
RETURN( NIL )
#ifdef __XPP__
CLIPPER PLAYENHMET( PARAMS ) // () hDC, hMetaFile, hWnd, lPrinter --> lSuccess
#else
CLIPPER PLAYENHMETAFILE( PARAMS ) // () hDC, hMetaFile, hWnd, lPrinter --> lSuccess
#endif
{
RECT rect;
BOOL lRet;
if( _parl( 4 ) )
{
rect.left = 0;
rect.top = 0;
rect.right = GetDeviceCaps( ( HDC ) _parnl( 1 ), HORZRES );
rect.bottom = GetDeviceCaps( ( HDC ) _parnl( 1 ), VERTRES );
if( _parni( 5 ) )
rect.right += _parni( 5 );
if( _parni( 6 ) )
rect.bottom += _parni( 6 );
}
else
GetClientRect ( ( HWND )_parnl( 3 ), &rect );
lRet = ( BOOL ) PlayEnhMetaFile( ( HDC ) _parnl( 1 ), ( HENHMETAFILE ) _parnl( 2 ), &rect );
if( ! lRet && lRet != ERROR_SUCCESS )
{
char sBuffer[ 200 ];
wsprintf( sBuffer, "Error (%d) showing Enhanced Metafile\n\nError description:", GetLastError() );
MessageBox( NULL, sBuffer, ( LPSTR ) "Printing EMF", MB_OK | MB_ICONEXCLAMATION );
}
_retl( lRet );
}
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 42 guests