作图

截屏功能代码
 HDC hdcSrc = GetDC(NULL);
 int nBitPerPixel = GetDeviceCaps(hdcSrc, BITSPIXEL);
 int nWidth = GetDeviceCaps(hdcSrc, HORZRES);
 int nHeight = GetDeviceCaps(hdcSrc, VERTRES);
 CImage image;
 image.Create(nWidth, nHeight, nBitPerPixel);
 BitBlt(image.GetDC(), 0, 0, nWidth, nHeight, hdcSrc, 0, 0, SRCCOPY);
 ReleaseDC(NULL, hdcSrc);
 image.ReleaseDC();
 image.Save(L"snapshot.jpg", Gdiplus::ImageFormatJPEG);
CImage
CDC* pImgDC = CDC::FromHandle(image.GetDC());
CRect rect(0,0,sz.cx,sz.cy);
pImgDC->DrawText(str,rect,DT_BOTTOM|DT_CENTER);
image.ReleaseDC();
CDC::SetROP2

 返回值:绘图模式的前一次取值。参数: nDrawMode 指定新的绘制模式,可以为下列值之一:

· R2_BLACK 像素始终为黑色。  
· R2_WHITE 像素始终为白色。  
· R2_NOP 像素保持不变。  
· R2_NOT 像素为屏幕颜色的反色。  
· R2_COPYPEN 像素为笔的颜色。  
· R2_NOTCOPYPEN 像素为笔颜色的反色。  
· R2_MERGEPENNOT 像素为笔颜色屏幕颜色反色。  
· R2_MASKPENNOT 像素为笔颜色屏幕颜色反色。  
· R2_MERGENOTPEN 像素为笔颜色反色屏幕颜色。  
· R2_MASKNOTPEN 像素为笔颜色反色屏幕颜色。  
· R2_MERGEPEN 像素为笔颜色屏幕颜色。  
· R2_NOTMERGEPEN R2_MERGEPEN的反色。  
· R2_MASKPEN 像素为笔颜色屏幕颜色。  
· R2_NOTMASKPEN R2_MASKPEN的反色。  
· R2_XORPEN 像素为笔颜色异或屏幕颜色。连续异或两次会变为原来颜色  
· R2_NOTXORPEN R2_XORPEN的反色(同或)。   
设置绘图模式。绘图模式指出笔与被填充对象的颜色是怎样同显示表面的颜色组合的。绘图模式只用于光栅设备,不用于矢量设备。绘图模式是双重的光栅操作代码,代表了两个变量所有可能的布尔组合,分别使用AND、OR、XOR(异或)和NOT运算符。
R2_NOT可以用橡皮色模式用
dc.SetROP2(R2_NOT); 
 ::SetCursor(m_HCross);  
dc.MoveTo(m_startPoint);    dc.LineTo(m_OldPoint);     
 
dc.MoveTo(m_startPoint);     dc.LineTo(point);  
 m_OldPoint=point;  

posted @ 2016-11-10 10:51  fyk1Ex  阅读(282)  评论(0)    收藏  举报