Type | Description |
The following VB sample saves the control's content to a file:
Clipboard.Clear ChartView.Copy SavePicture Clipboard.GetData(), App.Path & "\test.emf"
Now, you can open your MS Windows Word application, and you can insert the file using the Insert\Picture\From File menu.
The following C++ function saves the clipboard's data ( EMF format ) to a picture file:
BOOL saveEMFtoFile( LPCTSTR szFileName ) { BOOL bResult = FALSE; if ( ::OpenClipboard( NULL ) ) { CComPtrspPicture; PICTDESC pictDesc = {0}; pictDesc.cbSizeofstruct = sizeof(pictDesc); pictDesc.emf.hemf = (HENHMETAFILE)GetClipboardData( CF_ENHMETAFILE ); pictDesc.picType = PICTYPE_ENHMETAFILE; if ( SUCCEEDED( OleCreatePictureIndirect( &pictDesc, IID_IPicture, FALSE, (LPVOID*)&spPicture ) ) ) { HGLOBAL hGlobal = NULL; CComPtr spStream; if ( SUCCEEDED( CreateStreamOnHGlobal( hGlobal = GlobalAlloc( GPTR, 0 ), TRUE, &spStream ) ) ) { long dwSize = NULL; if ( SUCCEEDED( spPicture->SaveAsFile( spStream, TRUE, &dwSize ) ) ) { USES_CONVERSION; HANDLE hFile = CreateFile( szFileName, GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, NULL, NULL ); if ( hFile != INVALID_HANDLE_VALUE ) { LARGE_INTEGER l = {NULL}; spStream->Seek(l, STREAM_SEEK_SET, NULL); long dwWritten = NULL; while ( dwWritten < dwSize ) { unsigned long dwRead = NULL; BYTE b[10240] = {0}; spStream->Read( &b, 10240, &dwRead ); DWORD dwBWritten = NULL; WriteFile( hFile, b, dwRead, &dwBWritten, NULL ); dwWritten += dwBWritten; } CloseHandle( hFile ); bResult = TRUE; } } } } CloseClipboard(); } return bResult; }
The following VB.NET sample copies the control's content to the clipboard ( open the mspaint application and paste the clipboard, after running the following code ):
Clipboard.Clear() With AxChartView1 .Copy() End With
The following C# sample copies the control's content to a file ( open the mspaint application and paste the clipboard, after running the following code ):
Clipboard.Clear; axChartView1.Copy();