我的画图程序中,当拖动一个图形(例如矩形)从另外的图形上(例如椭圆)拖过,就会把另外的那个图形(椭圆)擦除了,怎么才能避免这种情况???
解决方案 »
- 关于状态栏图标(位图)问题
- 我在vc++2005 MFC 环境下 用ADO+DataGrid两个控件连接数据库中的表,出现好多问题,datagrid控件中 字段不能更新,数据出错等好多错误
- 如何在一个Form中嵌入另一个程序?
- 崩溃了~关于遍历硬盘下所有文件的问题
- 有谁用过skinMagic 2.21 Trial????
- 请问:DWORD GetLogicalDriveStrings()这个函数是怎么用的??
- 请问钩子程序是什么东西?
- 送分啊!
- 想要一个setup 的原程序!!要多少分都给!!
- 关于RichEdit的问题
- 怎么才能从VC中把数据导出到TXT文件?
- 请问用JPEGLib编写的打开JPEG文件的程序在运行时出现了这样的错误是怎么回事
-------------------------
那你还想怎么样,双缓冲加保存重绘
cbrush* pbrush=cbrush::fromhandle((hbrush)getstockobject(null_brush));
dc.selectobject(pbrush);具体可以参考MSDN。
如下:
GetClientRect(&RectFirst);
pDCFirst=GetDC(); WidthFirst =RectFirst.Width();
HeightFirst = RectFirst.Height();
XLast = WidthFirst - 50;
m_aXout =int( WidthFirst%LN );
m_Xunit = WidthFirst/LN;
for( int i = 0;i< LN;i++ )//取得坐标X的对应值
aXout[i] = m_aXout + i*m_Xunit;
m_nYb = RectFirst.bottom - 30;//原点Y坐标 pMemDCFirst = new CDC;
pMemDCFirst->CreateCompatibleDC( pDCFirst );
cBitmapFirst.CreateCompatibleBitmap( pDCFirst, WidthFirst, HeightFirst );
pMemDCFirst->SelectObject(&cBitmapFirst);然后把要做的动作先在pMemDCFirst 画好
最后在onpaint中贴出来
如下:
CPaintDC dc(this);
if( pMemDCFirst == NULL )
{
CreatBuffer();
MyDrawCoordinate();
}
// if ( bSign == True )
pDCFirst->BitBlt( 0, 0 , WidthFirst, HeightFirst, pMemDCFirst, 0,0, SRCCOPY);应该就没有问题了