MFC中GetDC()如何获得指定区域的渲染环境?

MFC中,在CView类的继承类中,调用GetDC()函数,比如绘图前通过GetDC()函数后,获取相应的窗口句柄,但这应该是个全局函数,它如何准确知道用户要获取哪一部分的屏幕区域呢?是因为在对应的CView中,通过CView对应的窗口来查找的吗?

2个回答

对于create的dc应该予以deletedc,而对于getdc的应予以releasedc
一、 CDC *pDC = GetDC();
CPen pen(PS_SOLID, 2, RGB(0,0,255));
pDC->SelectObject(&pen);
pDC->MoveTo(10, 10);
pDC->LineTo(500, 450);
ReleaseDC(pDC);
二、
CClientDC dc(this);
CDC dcCompatible;
dcCompatible.CreateCompatibleDC(&dc);
dcCompatible.SelectObject(&m_bitmap);
pMemDC->BitBlt(m_rcWindowRect.left, m_rcWindowRect.top, m_rcWindowRect.Width(), m_rcWindowRect.Heigh(), &dcCompatible, 0, 0, SRCCOPY);
pMemDC->StretchBlt(m_rcWindowRect.left, m_rcWindowRect.top, m_rcWindowRect.Width(), m_rcWindowRect.Height(), &dcCompatible, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
DeleteDC(dcCompatible);
三、
CPaintDC dc(this);
//CPaintDC只在OnPaint函数里有效。
HDC hDC;
CDC *pDC = m_pParentDlg->GetDC();
hDC = CreateCompatibleDC(pDC->GetSafeHdc());
HGDIOBJ hOldBmp = SelectObject(hDC, m_hbitmap);
StretchBlt(pDC->m_hDC, 535, 70, 200, 150, hDC, 0, 0, m_tuwidth, m_tuheight, SRCCOPY);
SelectObject(hDC, hOldBmp);
DeleteDC(hDC);
m_pParentDlg->ReleaseDC(pDC);

wince从文件里面加载bmp格式图片:(要包含头文件ShellAPI.h)
#include HBITMAP hmap;
hmap = SHLoadDIBitmap(_T("\SDMMC\Test\kenan.bmp"));
CDC dcCompatible; dcCompatible.CreateCompatibleDC(pMemDC);
SelectObject(dcCompatible, hmap);
BitBlt(pMemDC->m_hDC, m_rcWindowRect.left, m_rcWindowRect.top, m_rcWindowRect.Width(), m_rcWindowRect.Height(), dcCompatible, 0, 0, SRCCOPY);
DeleteDC(dcCompatible)

你需要确定你是在哪个HWND窗口类中调用的GetDC()

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
3D 指定区域渲染
如题,通常,Direct3D/OpenGL 在渲染的时候都会占据整个窗口,如何才能像 GDI 绘制一样,指定 渲染 区域?rnrn只有一个 hWnd 窗口句柄,渲染这个窗口句柄上的指定区域,其它区域留着后用。rnrn如果是在这个 hWnd 窗口上新创建一个 窗口对象 hNewWnd,再在 hNewWnd 上 Render 的话,不是我的需求,我的意思是像 GDI rnrn一样,空余的部分空着,以后比如用来 GDI 绘制或者别的用处,有什么办法可以做到?rnrn如下所示,[url=http://www.huyuhan.net/][/url] 的作品,其是一个 DirectUI 的实现,其可以实现 我的要求,不知道原理是rnrn怎样的,而且可以 2D/3D 混合渲染,直接将 2D 文字混合到 3D 特效中,作者回答下,呵呵!rnrn[img=http://hi.csdn.net/attachment/201202/23/0_1329990146CMU3.gif][/img]
MFC中如何实现指定区域的重绘
我想做出一个类似股票分析软件K线图显示的鼠标拖动的重绘效果。也就是只让局部区域重绘。并在鼠标的平移拖动时才重绘。rn 方法大致有:rn (1)用双缓存以及画布来实现。rn (2)用位图方式不知道能否实现。rn (3)使用类的串行化功能,重写CDoc类中的Serialize()函数,实现图形数据的保存与再现。rn (4)使用MFC中的元文件来实现图形数据的保存与再现。rn (5)设置DC的重绘范围,获取所想要重绘区域的Rect;rn 不知道以上所说的方法对不对。但是我想知道第一种方法具体如何实现。望高手指点,小弟不胜感激!rn 万分紧急!
将画面渲染到指定区域
本课程带领至少具备我方进阶级技术的学员掌握如何使用Shader
如何保存图片的指定区域 VC6.0 MFC GDI+
[b]如何保存图片的指定区域 VC6.0 MFC GDI+ [/b][size=18px][/size]rnrn图片现在在 Image* currentImg 。rnrn请问怎样才能保存这个图片的制定区域为bmp文件。rnrn或者保存到内存为HBITMAP指向也可以rnrn一下是一些参考代码,我刚学MFC,弄了一天了,还没弄懂,谢谢!rn[code=C/C++]rnrn// DIB.cpprn//------------------------------------------------------------------------------//rn#include "stdafx.h"rn#include "DIB.h"rn//------------------------------------------------------------------------------//rnCDib::CDib()rnrnrn // Set the Dib pointer torn // NULL so we know if it'srn // been loaded.rn this->m_pDib = NULL;rn this->m_pBIH = NULL;rnrnrn//------------------------------------------------------------------------------//rnCDib::~CDib()rnrnrn // If a Dib has been loaded,rn // delete the memory.rn this->ReleaseBuffer();rnrn//------------------------------------------------------------------------------//rnvoid CDib::ReleaseBuffer()rnrn if( m_pDib != NULL )rn delete [] m_pDib; rn m_pDib = NULL;rnrn//------------------------------------------------------------------------------//rnBOOL CDib::Load( const char *pszFilename )rnrnrn CFile cf;rnrn // Attempt to open the Dib file for reading.rn if( !cf.Open( pszFilename, CFile::modeRead ) )rn return( FALSE );rnrn // Get the size of the file and storern // in a local variable. Subtract thern // size of the BITMAPFILEHEADER structurern // since we won't keep that in memory.rn DWORD dwDibSize;rn dwDibSize =rn cf.GetLength() - sizeof( BITMAPFILEHEADER );rnrn // Attempt to allocate the Dib memory.rn unsigned char *pDib;rn pDib = new unsigned char [dwDibSize];rn if( pDib == NULL )rn return( FALSE );rnrn BITMAPFILEHEADER BFH;rnrn // Read in the Dib header and data.rn tryrnrn // Did we read in the entire BITMAPFILEHEADER?rn if( cf.Read( &BFH, sizeof( BITMAPFILEHEADER ) )rn != sizeof( BITMAPFILEHEADER ) ||rnrn // Is the type 'MB'?rn BFH.bfType != 'MB' ||rnrn // Did we read in the remaining data?rn cf.Read( pDib, dwDibSize ) != dwDibSize )rnrn // Delete the memory if we had anyrn // errors and return FALSE.rn delete [] pDib;rn cf.Close();rn return( FALSE );rn rn rnrn // If we catch an exception, delete thern // exception, the temporary Dib memory,rn // and return FALSE.rn catch( CFileException *e )rn e->Delete();rn delete [] pDib;rn cf.Close();rn return( FALSE );rn rn rn // If we got to this point, the Dib has beenrn // loaded. If a Dib was already loaded intorn // this class, we must now delete it.rn if( m_pDib != NULL )rn delete m_pDib;rnrn // Store the local Dib data pointer andrn // Dib size variables in the class memberrn // variables.rn m_pDib = pDib;rn m_dwDibSize = dwDibSize;rnrn // Pointer our BITMAPINFOHEADER and RGBQUADrn // variables to the correct place in the Dib data.rn m_pBIH = (BITMAPINFOHEADER *) m_pDib;rn m_pPalette =rn (RGBQUAD *) &m_pDib[sizeof(BITMAPINFOHEADER)];rnrn // Calculate the number of palette entries.rn m_nPaletteEntries = 1 << m_pBIH->biBitCount;rn if( m_pBIH->biBitCount > 8 )rn m_nPaletteEntries = 0;rn else if( m_pBIH->biClrUsed != 0 )rn m_nPaletteEntries = m_pBIH->biClrUsed;rnrn // Point m_pDibBits to the actual Dib bits data.rn m_pDibBits =rn &m_pDib[sizeof(BITMAPINFOHEADER)+rn m_nPaletteEntries*sizeof(RGBQUAD)];rnrn // If we have a valid palette, delete it.rn if( m_Palette.GetSafeHandle() != NULL )rn m_Palette.DeleteObject();rnrn // If there are palette entries, we'll needrn // to create a LOGPALETTE then create thern // CPalette palette.rn if( m_nPaletteEntries != 0 )rnrn // Allocate the LOGPALETTE structure.rn LOGPALETTE *pLogPal = (LOGPALETTE *) new charrn [sizeof(LOGPALETTE)+rn m_nPaletteEntries*sizeof(PALETTEENTRY)];rnrn if( pLogPal != NULL )rnrn // Set the LOGPALETTE to version 0x300rn // and store the number of palettern // entries.rn pLogPal->palVersion = 0x300;rn pLogPal->palNumEntries = m_nPaletteEntries;rnrn // Store the RGB values into eachrn // PALETTEENTRY element.rn for( int i=0; ipalPalEntry[i].peRed =rn m_pPalette[i].rgbRed;rn pLogPal->palPalEntry[i].peGreen =rn m_pPalette[i].rgbGreen;rn pLogPal->palPalEntry[i].peBlue =rn m_pPalette[i].rgbBlue;rn rnrn // Create the CPalette object andrn // delete the LOGPALETTE memory.rn m_Palette.CreatePalette( pLogPal );rn delete [] pLogPal;rn rn rn cf.Close();rn return( TRUE );rnrnrn//------------------------------------------------------------------------------//rnBOOL CDib::Save( const char *pszFilename )rnrnrn // If we have no data, we can't save.rn if( m_pDib == NULL )rn return( FALSE );rnrn CFile cf;rnrn // Attempt to create the file.rn if( !cf.Open( pszFilename,rn CFile::modeCreate | CFile::modeWrite ) )rn return( FALSE );rn rn // Write the data.rn tryrnrn // First, create a BITMAPFILEHEADERrn // with the correct data.rn BITMAPFILEHEADER BFH;rn memset( &BFH, 0, sizeof( BITMAPFILEHEADER ) );rn BFH.bfType = 'MB';rn BFH.bfSize = sizeof( BITMAPFILEHEADER ) + m_dwDibSize;rn BFH.bfOffBits = sizeof( BITMAPFILEHEADER ) +rn sizeof( BITMAPINFOHEADER ) +rn m_nPaletteEntries * sizeof( RGBQUAD );rnrn // Write the BITMAPFILEHEADER and thern // Dib data.rn cf.Write( &BFH, sizeof( BITMAPFILEHEADER ) );rn cf.Write( m_pDib, m_dwDibSize );rn rnrn // If we get an exception, delete the exception andrn // return FALSE.rn catch( CFileException *e )rn e->Delete();rn return( FALSE );rn rnrn return( TRUE );rnrnrn//------------------------------------------------------------------------------//rnBOOL CDib::DrawPartion( HDC &pDC, int SrcnX, int SrcnY, int SrcnWidth, int SrcnHeight, int DestnX = 0, int DestnY = 0, int DestnWidth = -1, int DestnHeight = -1 ) // Draw BMP imagernrn // If we have not data we can't draw.rn if( m_pDib == NULL )rn return( FALSE );rnrn // Check for the default values of -1rn // in the width and height arguments. Ifrn // we find -1 in either, we'll set themrn // to the value that's in the BITMAPINFOHEADER.rn if( SrcnWidth == -1 ) return FALSE; rn if( SrcnHeight == -1 ) return FALSE; rn rn // Use StretchDIBits to draw the Dib.rn rn StretchDIBits( pDC, DestnX, DestnY,rn DestnWidth, DestnHeight,rn SrcnX, SrcnY,rn SrcnWidth, SrcnHeight,rn m_pDibBits,rn (BITMAPINFO *) m_pBIH,rn BI_RGB, SRCCOPY );rn rn return( TRUE );rnrnrn//------------------------------------------------------------------------------//rnBOOL CDib::Draw( HDC &pDC, int nX, int nY, int nWidth, int nHeight )rnrnrn // If we have not data we can't draw.rn if( m_pDib == NULL )rn return( FALSE );rnrn // Check for the default values of -1rn // in the width and height arguments. Ifrn // we find -1 in either, we'll set themrn // to the value that's in the BITMAPINFOHEADER.rn if( nWidth == -1 )rn nWidth = m_pBIH->biWidth;rn if( nHeight == -1 )rn nHeight = m_pBIH->biHeight;rn rn // Use StretchDIBits to draw the Dib.rn StretchDIBits( pDC, nX, nY,rn nWidth, nHeight,rn 0, 0,rn m_pBIH->biWidth, m_pBIH->biHeight,rn m_pDibBits,rn (BITMAPINFO *) m_pBIH,rn BI_RGB, SRCCOPY );rn rn return( TRUE );rnrnrn//------------------------------------------------------------------------------//rnBOOL CDib::SetPalette( CDC *pDC )rnrnrn // If we have not data wern // won't want to set the palette.rn if( m_pDib == NULL )rn return( FALSE );rnrn // Check to see if we have a palettern // handle. For Dibs greater than 8 bits,rn // this will be NULL.rn if( m_Palette.GetSafeHandle() == NULL )rn return( TRUE );rnrn // Select the palette, realize the palette,rn // then finally restore the old palette.rn CPalette *pOldPalette;rn pOldPalette = pDC->SelectPalette( &m_Palette, FALSE );rn pDC->RealizePalette();rn pDC->SelectPalette( pOldPalette, FALSE );rnrn return( TRUE );rnrnrn//------------------------------------------------------------------------------//rnunsigned char * CDib::GetDIB()rnrn return m_pDib;rnrn//------------------------------------------------------------------------------//rnunsigned char * CDib::GetDIBBits()// BMP Bits datarnrn return m_pDibBits;rnrn//------------------------------------------------------------------------------//rnBITMAPINFO * CDib::GetDIBInfo() //眔BMP Inforrnrn return (BITMAPINFO*)this->m_pBIH;rnrn//------------------------------------------------------------------------------//rnrnHBITMAP CDib::CreatBMP(int nWidth, int nHeight, int nColor, CClientDC *pDC, UINT c)rnrn void * pdata=0;rn rn BITMAPINFO bi;rn ZeroMemory(&bi,sizeof(bi));rn bi.bmiHeader.biSize=sizeof(bi.bmiHeader);rn bi.bmiHeader.biHeight=nHeight;rn bi.bmiHeader.biWidth=nWidth;rn bi.bmiHeader.biPlanes=1;rn bi.bmiHeader.biBitCount=nColor;rn bi.bmiHeader.biCompression=BI_RGB;rn bi.bmiHeader.biSizeImage=GetBMPImagePixelsPerLine(nWidth,nColor)*nHeight; rn HBITMAP hBitmap=CreateDIBSection(pDC->m_hDC,&bi,DIB_RGB_COLORS,&pdata,NULL,0);rn rn rn BYTE *p=(BYTE *)pdata;rn for(int i=0;i
MFC :想读取文件中指定区域的数据
要获取从第二行开始的数据:按列分别存入double型数组x[]和y[]rn103 ss navarn1.00000000 0.00000000rn0.99000000 0.00249000rn0.98000000 0.00457800rn0.97000000 0.00664700rn0.96000000 0.00871400rn0.95000000 0.01080100rn0.94000000 0.01291600rn0.93000000 0.01505900rn0.92000000 0.01723000rn0.91000000 0.01942800rn0.90000000 0.02164900rn0.87500000 0.02729000rn0.85000000 0.03302200rn0.82500000 0.03880500rn
如何读取excel中的指定区域
上传的excel是不规则的,如何读取其中的指定区域(比如$B$5:$E$22)?请给出详细的代码,谢谢。
opengl将画面渲染到屏幕的指定区域和多屏渲染
分别将画面渲染到屏幕的左上,坐下,右上,右下区域   效果图: 多屏渲染效果图: 原理见代码注释 #include "FullScreenQuad.h" void FullScreenQuad::Init() { glGenBuffers(1, &mVBO); glBindBuffer(GL_ARRAY_BUFFER, mVBO); gl
MFC中多窗口渲染
就像极品飞车一样,在右上角开一个小窗口显示路径。怎么实现呢?rn我想就是OpenGL环境的设置,我用CSplitter静态分了两个窗格,两个都是CView类的rn其中一个设置了OpenGL环境的窗格可以正确工作,可是当我在另一个中也如此时,两个都不行了。因为要用到WM_CREATE和 PreCreateWindow,我想是两个视图产生了冲突,那怎么解决呢??rnrn
::GetDC()和GetDc()
rnvoid CBView::OnLButtonUp(UINT nFlags, CPoint point) rn//m_ptOrigin起点,point终点rn HDC hdc;rn hdc=::GetDC (m_hWnd);rn MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);rn LineTo(hdc,point.x,point.y);rn ::ReleaseDC(m_hWnd,hdc);rn CView::OnLButtonUp(nFlags, point);rnrn加了冒号就是全局类是不是?那为什么一定要用HDC的?能不能改一下lineto之类的函数,然后用CDC来画线?抱歉,新手,一点都不懂,乱说请见谅...
opengl中如何渲染环境画圆
最近写了一个很简单的画圆程序,但是圆始终显示不出来。极度郁闷中。希望路过的过来看看,帮个忙吧!rn#include "GL/glut.h"rn#include"iostream.h"rn#includernrn#define PI 3.1415926536frnint r=100;rnvoid init()rnrn glClearColor(0.0,0.0,0.0,0.0);rn glShadeModel(GL_SMOOTH);rnrnvoid reshape(int w,int h)rnrn glViewport(0 ,0 ,(GLsizei) w , (GLsizei) h );rn glMatrixMode(GL_PROJECTION);rn glLoadIdentity();rn gluOrtho2D(0 ,0 ,(GLsizei) w , (GLsizei) h );rnrnvoid drawcircle()rnrn int i,n=360;rn float t = 2 * PI / n,x,y;rn glColor3f(1.0,1.0,1.0);rn glBegin(GL_LINES);rn for (i=0; i
怎样获得指定图形区域的指针?
void CMyView::Draw()rn static int i;rn float x1=100,y1=100,x2=600,y2=600;rn CRect rect((int)x1,(int)y1,(int)x2,(int)y2);rn float xLen=x2-x1,yLen=y2-y1;rn CClientDC dc(this);rn GetClientRect(&rect);rnrn//第一至第九个正方形的设定 rn re1.top=re2.top=re3.top=rect.top;rn re8.top=re9.top=re4.top=xLen/3.0;rn re7.top=re6.top=re5.top=2.0*yLen/3.0;rnrn re1.right=re8.right=re7.right=xLen/3.0;rn re2.right=re9.right=re6.right=2*xLen/3.0;rn re3.right=re4.right=re5.right=rect.right;rnrn re1.left=re8.left=re7.left=rect.left;rn re2.left=re9.left=re6.left=xLen/3.0;rn re3.left=re4.left=re5.left=2.0*xLen/3.0;rnrn re1.bottom=re2.bottom=re3.bottom=xLen/3.0;rn re8.bottom=re9.bottom=re4.bottom=2.0*xLen/3.0;rn re7.bottom=re6.bottom=re5.bottom=rect.bottom;*/rn CRect re[9];rn re[0].top=re[1].top=re[2].top=rect.top;rn re[7].top=re[8].top=re[3].top=(int)(yLen/3);rn re[6].top=re[5].top=re[4].top=(int)(2*yLen/3.0);rnrn re[0].right=re[7].right=re[6].right=int(xLen/3.0);rn re[1].right=re[8].right=re[5].right=int(2*xLen/3.0);rn re[2].right=re[3].right=re[4].right=rect.right;rnrn re[0].left=re[7].left=re[6].left=rect.left;rn re[1].left=re[8].left=re[5].left=int(yLen/3.0);rn re[2].left=re[3].left=re[4].left=int(2.0*yLen/3.0);rnrn re[0].bottom=re[1].bottom=re[2].bottom=int(yLen/3.0);rn re[7].bottom=re[8].bottom=re[3].bottom=(int)(2*yLen/3.0);rn re[6].bottom=re[5].bottom=re[4].bottom=rect.bottom;rn //画图形rn CBrush br[9];rn br[0].CreateSolidBrush(RGB(255,0,0));rn br[1].CreateSolidBrush(RGB(0,255,0));rn br[2].CreateSolidBrush(RGB(0,0,255));rn br[3].CreateSolidBrush(RGB(200,20,0));rn br[4].CreateSolidBrush(RGB(200,0,80));rn br[5].CreateSolidBrush(RGB(180,90,0));rn br[6].CreateSolidBrush(RGB(150,0,40));rn br[7].CreateSolidBrush(RGB(90,100,0));rn br[8].CreateSolidBrush(RGB(50,10,170));rn for(i=0;;)rn rn dc.SelectObject(&br[i]);rn dc.Rectangle(&re[i]);rn ++i;rn i=i%9;rnrn 问题就是在画图时显示的是整个客户区图形,而我本只想在rect所指定的正方形中画图,即把整个rect( ((int)x1,(int)y1,(int)x2,(int)y2)分成9块,请大家给我指点一下,先谢谢各位好友啦。rn rnrn rn
渲染语音识别和图文区域
<p>n <span style="color:#333333;"><span style="font-size:16px;"><strong>【课程介绍】</strong></span></span>n</p>n<p>n <span style="color:#333333;"><span style="font-size:16px;">课程目标:从零基础到学会实战开发vue项目</span><br /><span style="font-size:16px;">适用人群:会基础HTML,CSS,JS</span><br /><span style="font-size:16px;">接口后台:python</span><br /><span style="font-size:16px;">课程特色:提供项目接口,用python开发,提供短信验证码接口,接口和文档永久有效,学生的项目上线后可直接访问,可当做面试作品和大学生毕业设计</span></span><span style="color:#333333;"> </span><span style="font-size:16px;"></span>n</p>n<p>n <span style="font-size:16px;"><br /></span>n</p>n<p>n <span style="font-size:16px;"><strong>【课程收益】</strong></span>n</p>n<p>n <span style="font-size:16px;">1.从零基础掌握vue开发</span>n</p>n<p>n <span style="font-size:16px;">2.掌握vue组件思维<br /></span>n</p>n<p>n <span style="font-size:16px;">3.了解什么是前后端分离开发</span>n</p>n<p>n <span style="font-size:16px;">4.学会请求数据</span>n</p>n<p>n <span style="font-size:16px;">5.学会vue高级功能使用</span>n</p>n<p>n <span style="font-size:16px;">6.做出一个完整的上线项目</span>n</p>n<p>n <span style="font-size:16px;">7.课程可当做大学生毕业设计</span>n</p>n<p>n <span style="font-size:16px;">8.课程可当做面试作品</span>n</p>
如何获得图形中某个区域的图形?
如题
如何获得窗体中控件所处的区域?
我在窗体中有一个Static控件,我想得到这个控件在窗体中的Rectange区域。rn如何得到?谢谢各位兄弟姐妹指点。
内存中的位图如何显示到指定区域
目前在研究截屏并回传到服务器的问题。把屏幕截下来了,在内存里面,如何显示到对话框上。rnrnrnrnBITMAPINFOHEADER *lpbmih;//里面的数据已经填充好了。(16位以下的图如何显示、32位的呢)rnrn我想在按一下按钮的时候显示图片,不知道如何显示,请指教,希望用这个函数StretchBlt,有时候大小会变的。rnrnCRect rect;//这个也填充好了。要显示的区域!rnrn
如何查询Excel中指定区域的内容?
SELECT * rnFROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source="F:\NMUP\d\a.xls";rnUser ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]rnrn这样是查出Excel所有的内容,问题是我只想查询Excel的Sheet1中A6:H30这个区域的内容,急...
如何打印框架中的指定的区域!
我的页面中有frametop、frameleft、framerightrn如果想在frametop设置打印按钮,打印frameright的区域,请问如何设置!rnrn使用了scriptX,但是也不知道怎么设置!rn请有经验的人指点!
pictureBox中图像如何指定显示区域
我想在pictureBox中显示图像的时候,指定图像的一块地方来显示rn即指明坐标来显示图像rn请问高手如何解决~rn谢谢
MFC获取当前窗口指定区域的图片
// 获取窗口DC CDC* pDC = GetDC();// 创建并绑定绘画DC和Bitmap CDC memDC; CBitmap bitmap; memDC.CreateCompatibleDC(pDC); bitmap.CreateCompatibleBitmap(pDC, 200, 80); memDC.SelectObject(&bitmap);// 把指定窗口区域的图片画到绘图DC中
MFC 对话框 指定区域 显示不同的对话框
现在我要设计一个对话框,右边一个区域我放了八个按钮,左边我想指定一个区域来显示子对话框,rn每按下右边一个按钮,左边的区域就改变;rn问:怎么样实现,思路,用到哪些函数,希望有代码解释,rn谢谢rnrn
如何加载swf到指定的区域,并且缩放到指定区域
做了一个空的flash,底部为一个播放进度控制条。要求点击播放按钮时播放本地路径下的另一个flash如1.swf,在第一帧添加动作loadMovie("1.swf", "0");后新的swf挡住了播放进度控制条,而且不能自动缩放。能否让1.swf运行在除了控制条以外的方框区域里并且自动缩放,请高手指教rn
mfc 对话框 怎样在指定区域绘图
mfc的一个对话框中,怎样才能在指定区域绘图?绘出一幅完整的图片?
按下button,如何实现在一个“指定区域”中绘制图形?如何获得“指定区域”这个对象呢?
例如这个“指定区域”为 groupBox?rn多谢了!
GetDC()可以让区域有效吗?
对话框程序的OnPaint()函数:rnvoid CdiaDlg::OnPaint()rnrn if (IsIconic())rn rn.....rn rn elsern rn CDC *pDC=GetDC();rn pDC->TextOut(0,0,_T("宝钢股份"));rn ReleaseDC(pDC);rn CDialog::OnPaint();rn rnrnrnBeginPaint或者CPaintDC对象通过BeginPaint可以让整个客户区有效,这样就不会继续产生WM_PAINT消息。那么GetDC()有同样的功能吗?如果不是的话对话框程序是在哪里让区域有效的呢?
如何获得位图中的区域
要实现一个pie menu,在http://www.codeproject.com/dialog/transparentdialog.asp找到了透明对话框的代码,如何在位图上实现,点击不同的区域,实现不同的功能呢,就像菜单一样。就像这样:rnvoid CTransparentDialogDlg::OnLButtonDown(UINT nFlags, CPoint point) rnrn // TODO: Add your message handler code here and/or call defaultrn PostMessage( WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM( point.x, point.y));rnrn if(point.ym_Bitmap.bmHeight/2)rn MessageBox("unten",0,0);rnrn CDialog::OnLButtonDown(nFlags, point);rnrnrn不过如果要在一个圆环形的bitmap上划分不同的区域,如何实现呢?
javascript 如何获得图片上某指定区域的颜色值
javascript 如何获得图片上某指定区域的颜色值?
如何获得这个区域的高度?
需要在一个指定宽度的区域中把所有文本显示出来,如何得到这个区域的高度?(包括超长换行和回车换行增加的高度)
如何获得模态窗口的窗口区域?
意图在模态窗口中动态绘制控件,可是如何得到窗口区域呢?rn用GetWindowRect总是断言错误!
SampleGrabber如何指定抓图区域????
我建了个FilterGraph:CaptureFilter->SampleFilter->ColourSpace->VideoRenderer, 现在可以预览也可以抓图了。rn现在抓图的大小默认是320*240,抓的是全屏的,我想在屏幕中指定一块区域,抓图的时候只抓这一块区域的,请问rnSampleGrabber可以实现么,还是要自己写一个Filter?如果可以,谁能教教我怎么做,先谢谢了!在线等。
如何指定区域响应文件拖拽
我的界面是自绘的,简单的响应拖拽不适合。。rn如果指定区域大小响应文件拖拽呢,鼠标到了指定区域才变成+号
如何打印屏幕指定区域?
现在有一个winform应用程序,要打印屏幕上指定的区域,最好能用鼠标拖动指定。请问应该如何实现?.net中有哪些类提供了这方面的支持?rn谢谢!!
如何重画一个指定区域 ?
如何重画一个指定区域 ? 有一个picture控件 ID为 IDC_Picrnrn如何重画这个控件所在区域而不影响其它区域 ?
请教如何指定区域抓图?
比如说俺做一个form,上面有若干标签,还有一个picturebox,然后只抓picbox的图,其他的不要抓,该如何做??
如何刷新窗口指定区域,
---------------------------|rn| | |rn| | |rn| | | rn| | |rn-------| |rn| | |rn| 刷新 | |rn| 部分 | |rn| | |rn---------------------------|rnrn切分视图之后,我该如何刷新那部分呢?rnrnrnrn
GetDC()
视图类的GetDC();创建和获得设备环境句柄。什么意思?
如何获得指定句柄?
最近做一个东东需要获取QQ对战平台的房间的句柄(比如高手大厅-1,高手大厅-2等房间),但用SPY++却获取不到,请问这类轻量级控件怎样取得其句柄?rn愿闻其详^rnrn
如何获得指定日期格式
现在要获得20090104213002的当期日期时间格式,请问如何实现?
MFC中如何获得编辑框中的值?
程序运行前编辑框输入一个速度值,程序根据设置的速度值运行,但在运行过程中,我想改变速度值,让程序不停止,但改过速度后能依照新速度运动,请问大家怎么做啊?谢啦!
JSP 中 指定打印区域
第二种方法:指定打印区域 把要打印的内容放入一个 span或div,然后通过一个函数打印。 &amp;lt;span id='div1'&amp;gt;把要打印的内容放这里&amp;lt;/span&amp;gt;&amp;lt;p&amp;gt;所有内容&amp;lt;/p&amp;gt;&amp;lt;div id=&quot;div2&quot;&amp;gt;div2的内容&amp;lt;/div&amp;gt;&amp;lt;a href=&quot;javascrīpt:printme()&
c# 获取图片中指定区域
我要用一张图片作为窗体背景图,我不需要整张图片,我只要图片中某个区域,比如从这张图片内的位置点(50,50)开始,宽100,长100的矩形区域图象.如何获得?rnBitmap pic = new Bitmap(@"C:\bmp.bmp");rn......
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview