3,882
社区成员
发帖
与我相关
我的任务
分享
CString strDefualtDev = TEXT("");
PRINTDLG pd;
LPDEVMODE lpDevMode;
if(AfxGetApp()->GetPrinterDeviceDefaults(&pd))
{
lpDevMode=(LPDEVMODE)GlobalLock(pd.hDevMode);
if(lpDevMode)
{
strDefualtDev = lpDevMode->dmDeviceName;
}
GlobalUnlock(pd.hDevMode);
}
if(AfxGetApp()->GetPrinterDeviceDefaults(&pd))
{
lpDevMode=(LPDEVMODE)GlobalLock(pd.hDevMode);
if(lpDevMode)
{
lpDevMode->dmPaperSize=DMPAPER_A4; // 设定打印纸张幅面
lpDevMode->dmOrientation=DMORIENT_LANDSCAPE; // 设定横向打印
lpDevMode->dmPrintQuality=600; // 设定打印机分辨率
}
GlobalUnlock(pd.hDevMode);
ResetDC(pd.hDC, lpDevMode);
}
DOCINFO info;
memset( &info, 0, sizeof(DOCINFO) );
info.cbSize = sizeof(DOCINFO);
info.lpszDocName = _T("打印图形"); // 设定打印文档名称
info.lpszOutput = (LPTSTR) NULL;
info.fwType = 0;
HDC hdc = ::CreateDC(NULL, _T("pdfFactory Pro"), NULL, lpDevMode); // 得到打印机设备句柄
int a = StartDoc(hdc,&info);
StartPage(hdc);
HDC hdc2 = GetDC(hWnd);
PIXELFORMATDESCRIPTOR *pfd=new PIXELFORMATDESCRIPTOR;
pfd->nSize=sizeof(PIXELFORMATDESCRIPTOR);
pfd->nVersion=1;
pfd->dwFlags=PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER|PFD_STEREO_DONTCARE;
pfd->iPixelType=PFD_TYPE_RGBA;
pfd->cColorBits=32;
pfd->cRedBits=8;
pfd->cRedShift=16;
pfd->cGreenBits=8;
pfd->cGreenShift=8;
pfd->cBlueBits=8;
pfd->cBlueShift=0;
pfd->cAlphaBits=0;
pfd->cAlphaShift=0;
pfd->cAccumBits=64;
pfd->cAccumRedBits=16;
pfd->cAccumGreenBits=16;
pfd->cAccumBlueBits=16;
pfd->cAccumAlphaBits=0;
pfd->cDepthBits=32;
pfd->cStencilBits=8;
pfd->cAuxBuffers=0;
pfd->iLayerType=PFD_MAIN_PLANE;
pfd->bReserved=0;
pfd->dwLayerMask=0;
pfd->dwVisibleMask=0;
pfd->dwDamageMask=0;
int informat = ChoosePixelFormat(hdc2,pfd);
if (informat == 0)
{
if (DescribePixelFormat(hdc2,informat,sizeof(PIXELFORMATDESCRIPTOR), pfd)==0)
{
return;
}
informat = 1;
}
if (::SetPixelFormat(hdc2, informat, pfd) == FALSE)
{
return;
}
HGLRC hrc = wglCreateContext(hdc2);
if(hrc!=NULL)
{
BOOL flag = wglMakeCurrent(hdc2,hrc);
int a= 0;
}
glMatrixMode(GL_MODELVIEW); // To operate on Model-View matrix
glLoadIdentity();
glPushMatrix();
glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
glVertex2f(100,2);
glVertex2f(4,130);
glVertex2f(4,170);
glEnd();
glPopMatrix();
wglMakeCurrent(NULL,NULL);//断开与着色环境的联系
EndPage(hdc);
EndDoc(hdc);
glMatrixMode(GL_MODELVIEW); // To operate on Model-View matrix
glLoadIdentity();
glPushMatrix();
glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
glVertex2f(100,2);
glVertex2f(4,130);
glVertex2f(4,170);
glEnd();
glPopMatrix();
我试了下没问题啊