简单的说,我取得桌面的DC后在其上面画了一个圆,现在我想把这个圆去掉该怎么办?
CDC *pdc = GetDesktopWindow()->GetWindowDC() ;
pdc->SetBkMode(TRANSPARENT);
pdc->SelectStockObject(HOLLOW_BRUSH);
CDC *pdc = GetDesktopWindow()->GetWindowDC() ;
pdc->SetBkMode(TRANSPARENT);
pdc->SelectStockObject(HOLLOW_BRUSH);
解决方案 »
- 图形显示 刷屏一次 内存增加,不释放
- CString * to CString &一个错误
- 【如何获取按纽的标识】
- 是不是全局函数调用不对导致的这个报错??
- 也是时钟的问题!
- 在CPropertyPage窗口里怎样能读到CPropertySheet窗口里的变量?
- 请教大家一个关于非法定义的问题:
- 我为什么在WINDOWS 2000 里老装不上VC,提示错误:安装程序无法创建一个DCOM用户帐号来注册
- MSDN有中文版的吗?哪个版本最好?
- 寻找解PKZIP、PAK、GZIP、BASE64、UUENCODE等压缩方式的源代码
- 请教一个小问题,在此谢谢
- media player 6 控件升级到 media player 9控件 的问题
RedrawWindow(GetDesktopWindow(), ...)
初学VC,希望大家不要见笑.
void CFUXIDlg::OnOK()
{
int i ;
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN); CDC dc;
dc.CreateDC("DISPLAY",NULL,NULL,NULL);
dc.SetBkMode(TRANSPARENT);
dc.SelectStockObject(HOLLOW_BRUSH);
CBitmap cbitmap;
cbitmap.CreateCompatibleBitmap(&dc,cx,cy);
CDC MemDC;
MemDC.CreateCompatibleDC(&dc);
CBitmap*pOld=MemDC.SelectObject(&cbitmap);
RECT rect; dc.MoveTo(cx/2,0);
dc.LineTo(cx/2,cy);
dc.MoveTo(0,cy/2);
dc.LineTo(cx,cy/2); while(TRUE)
{
for(i=0; i<=cy/2; i+=10)
{
rect.left = cx/2 - i;
rect.top = cy/2 - i;
rect.right = cx/2 + i;
rect.bottom = cy/2 + i;
MemDC.BitBlt(0,0,i * 2,i * 2,&dc,rect.left,rect.top,SRCCOPY );
dc.Ellipse(&rect);
Sleep(30);
dc.BitBlt(rect.left,rect.top,i * 2,i * 2,&MemDC,0,0,SRCCOPY);
}
for(; i>=0; i-=10)
{
rect.left = cx/2 - i;
rect.top = cy/2 - i;
rect.right = cx/2 + i;
rect.bottom = cy/2 + i; MemDC.BitBlt(0,0,i * 2,i * 2,&dc,rect.left,rect.top,SRCCOPY );
dc.Ellipse(&rect);
Sleep(30);
dc.BitBlt(rect.left,rect.top,i * 2,i * 2,&MemDC,0,0,SRCCOPY);
}
}
MemDC.SelectObject(pOld);
ReleaseDC(&dc);
ReleaseDC(&MemDC);
}