开发平台: Microsoft visual Studio 2010
退出程序:
步骤一、【Alt】+【tab】 或 【Win】+【D】
步骤二、打开任务管理器,选中该程序退出进程
//1、设置窗口属性
// “Border - None”、“Application Window - False”、“Tool Window - True”
//2、在CWinApp中添加一个存放当前屏幕图像的DC
class CxxxApp : public CWinApp
{
//....
CDC m_MemDcBg;
//....
};
//3、在CWinApp的构造函数中获取当前屏幕图像,存放在m_MemDcBg中。
CxxxApp::CxxxApp()
{
//....
CDC m_MemDc;
HDC m_Hdc = ::GetDC(NULL);
m_MemDc.Attach(m_Hdc);
int nScreenWidth=GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight=GetSystemMetrics(SM_CYSCREEN);
if( !m_MemDcBg.m_hDC )
{
CBitmap m_MemMap;
m_MemDcBg.CreateCompatibleDC(&m_MemDc);
m_MemMap.CreateCompatibleBitmap(&m_MemDc,nScreenWidth,nScreenHeight);
m_MemDcBg.SelectObject(&m_MemMap);
m_MemMap.DeleteObject();
m_MemDcBg.SetBkMode( TRANSPARENT );
}
m_MemDcBg.SetBkMode( TRANSPARENT );
m_MemDcBg.BitBlt( 0,0,nScreenWidth,nScreenHeight,&m_MemDc,0,0,SRCCOPY);
m_MemDc.DeleteDC();
//....
}
//4、设置窗口位置为全屏
BOOL CxxxDlg::OnInitDialog()
{
//....
CDialogEx::OnInitDialog();
//....
int nScreenWidth=GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight=GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(NULL,0,0,nScreenWidth,nScreenHeight,SWP_NOZORDER);
//....
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
//5、在窗口中绘制存放桌面图像的dc
void CxxxDlg::OnPaint()
{
int nScreenWidth=GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight=GetSystemMetrics(SM_CYSCREEN);
CPaintDC dc(this); // device context for painting
CPaintDC* pDC=&dc;
pDC->SetBkMode( TRANSPARENT );
pDC->BitBlt( 0,0,nScreenWidth,nScreenHeight,&theApp.m_MemDcBg,0,0,SRCCOPY);
//....
}
源码下载: http://pan.baidu.com/s/1eRPBVZ8