Example #1
0
void CGelView::OnEditCopy() 
{

	if ( !OpenClipboard() ) {
		AfxMessageBox("Cannot Open Clipboard", MB_OK | MB_ICONEXCLAMATION);
		return;
	}
	
	if ( !EmptyClipboard() ) {
		AfxMessageBox("Cannot Empty Clipboard", MB_OK | MB_ICONEXCLAMATION);
		return;
	}

	CGenedocDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	CDC* pDC = GetDC();

	double xpi = (double)pDC->GetDeviceCaps(HORZSIZE) / (double)pDC->GetDeviceCaps(HORZRES);
	double ypi = (double)pDC->GetDeviceCaps(VERTSIZE) / (double)pDC->GetDeviceCaps(VERTRES);

	double tXSize, tYSize;

	tXSize = GetGelSize().cx * xpi * 100.0;

	tYSize = GetGelSize().cy * ypi * 100.0;

	CRect rectView(0,0,(int)tXSize, (int)tYSize );

	CMetaFileDC dcMeta;

	dcMeta.CreateEnhanced(pDC, NULL, rectView, "GeneDoc\0MetaFile\0\0" );

	dcMeta.SetAttribDC( pDC->m_hAttribDC );


	OnPrepareDC( &dcMeta );

	DrawGel( &dcMeta, rectView );

	HENHMETAFILE hMeta = dcMeta.CloseEnhanced();


	if ( SetClipboardData(CF_ENHMETAFILE, hMeta) == NULL ) {
		AfxMessageBox( "Select Failed in SetClipBoardData", MB_OK | MB_ICONEXCLAMATION );
	}

// CBitmap
//
	if ( !CloseClipboard() ) {
		AfxMessageBox( "CloseClipboard Failed", MB_OK | MB_ICONEXCLAMATION );
	}

	ReleaseDC(pDC);	// Moved this down here so nt4.0 would work.
	return;

}
Example #2
0
void CFDMSView::OnEditCopy()
{

    if (testGraph)
    {
        CMetaFileDC * pMetaDC = new CMetaFileDC();
        pMetaDC->CreateEnhanced(GetDC(),NULL,NULL,testGraph->GetGraphTitle());
        //draw meta file

        //do what ever you want to do: bitmaps, lines, text...
        if (testGraph)
            testGraph->DrawGraph(pMetaDC);
        //close meta file dc and prepare for clipboard;
        HENHMETAFILE hMF = pMetaDC->CloseEnhanced();

        //copy to clipboard
        OpenClipboard();
        EmptyClipboard();
        ::SetClipboardData(CF_ENHMETAFILE,hMF);
        CloseClipboard();
        //DeleteMetaFile(hMF);
        delete pMetaDC;
    }
}