📄 vtkmfcview.cpp
字号:
// vtkMFCView.cpp : implementation file//#include "stdafx.h"#include "vtkMFCView.h"#include "vtkMFCDocument.h"#include "resource.h"#include "vtkWindowToImageFilter.h"#include "vtkBMPWriter.h"#include "vtkTIFFWriter.h"#include "vtkPNMWriter.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// vtkMFCViewIMPLEMENT_DYNCREATE(vtkMFCView, CView)vtkMFCView::vtkMFCView(){ this->PrintDPI = 100;}vtkMFCView::~vtkMFCView(){}BEGIN_MESSAGE_MAP(vtkMFCView, CView) //{{AFX_MSG_MAP(vtkMFCView) ON_COMMAND(ID_EDIT_COPY, OnEditCopy) //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// vtkMFCView drawingvoid vtkMFCView::OnDraw(CDC* pDC){ CDocument* pDoc = GetDocument(); // TODO: add draw code here}/////////////////////////////////////////////////////////////////////////////// vtkMFCView diagnostics#ifdef _DEBUGvoid vtkMFCView::AssertValid() const{ CView::AssertValid();}void vtkMFCView::Dump(CDumpContext& dc) const{ CView::Dump(dc);}#endif //_DEBUG/////////////////////////////////////////////////////////////////////////////// vtkMFCView message handlersBOOL vtkMFCView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Add your specialized code here and/or call the base class // the CREATESTRUCT cs cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CS_OWNDC; return CView::PreCreateWindow(cs);}BOOL vtkMFCView::OnPreparePrinting(CPrintInfo* pInfo) { // TODO: call DoPreparePrinting to invoke the Print dialog box // default preparation pInfo->SetMinPage(1); pInfo->SetMaxPage(1); return DoPreparePrinting(pInfo);}void vtkMFCView::OnEditCopy() { // TODO: Add your command handler code here LPBITMAPINFOHEADER lpbi; // pointer to BITMAPINFOHEADER DWORD dwLen; // size of memory block HANDLE hDIB = NULL; // handle to DIB, temp handle vtkWindow *vtkWin = this->GetVTKWindow(); int *size = vtkWin->GetSize(); int dataWidth = ((size[0]*3+3)/4)*4; if (OpenClipboard()) { BeginWaitCursor(); EmptyClipboard(); dwLen = sizeof(BITMAPINFOHEADER) + dataWidth*size[1]; hDIB = ::GlobalAlloc(GHND, dwLen); lpbi = (LPBITMAPINFOHEADER) ::GlobalLock(hDIB); lpbi->biSize = sizeof(BITMAPINFOHEADER); lpbi->biWidth = size[0]; lpbi->biHeight = size[1]; lpbi->biPlanes = 1; lpbi->biBitCount = 24; lpbi->biCompression = BI_RGB; lpbi->biClrUsed = 0; lpbi->biClrImportant = 0; lpbi->biSizeImage = dataWidth*size[1]; this->SetupMemoryRendering(size[0],size[1], this->GetDC()->GetSafeHdc()); vtkWin->Render(); memcpy((LPSTR)lpbi + lpbi->biSize, this->GetMemoryData(),dataWidth*size[1]); SetClipboardData (CF_DIB, hDIB); ::GlobalUnlock(hDIB); CloseClipboard(); this->ResumeScreenRendering(); EndWaitCursor(); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -