谢谢!
解决方案 »
- 问个很很很很小的问题!
- 中国程序员的跳槽问题!!-年轻程序员的思考.
- 问一个基础的关于虚函数的问题
- 困扰我多天的问题 --- 如何检测ADSL Modem??
- 请教一个根据当前时间做不同事情的程序
- 小弟在做个mdi的ie浏览器,在每个mid窗口上重画了一个图标,就是所除了窗口的最小,普通,最大化外又添加了一个,现在的问题是当最小化mdi窗口
- 求助:如何获得非标准windows窗口的hwnd,用findwindow根本就找不到。
- 批量取股票DDE数据
- 那位哥哥姐姐知道去哪儿下载x86 sdk for wince,国内的?
- 网络编程中的疑问
- 关于在同一区域在不同时间DrawText,不同文字的问题!
- 包函有WinSock 的DLL程序中出错?
BOOL CMyWnd::Create()
{ if(lpszClassName==NULL)
{
lpszClassName=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,
::LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_NOCURSOR)));
//注册类;IDC_NOCURSOR为新建光标的ID,这个光标没有任何图案
}
CRect rect(0, 0, ::GetSystemMetrics(SM_CXSCREEN),
::GetSystemMetrics(SM_CYSCREEN));
CreateEx(WS_EX_TOPMOST, lpszClassName, _T(""), WS_VISIBLE|WS_POPUP,
rect.left,rect.top,rect.right - rect.left, rect.bottom - rect.top,
GetSafeHwnd(), NULL, NULL); //创建一个全屏窗口
SetTimer(ID_TIMER, 500, NULL);//计时器,ID_TIMER别忘了定义 return TRUE;
}
//为了防止同时运行两个相同的程序,下面两个函数是必需的
void CMyWnd::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CWnd::OnActivate(nState,pWndOther,bMinimized);
if(nState==WA_INACTIVE)
PostMessage(WM_CLOSE);
}
void CMyWnd::OnActivateApp(BOOL bActive, HTASK hTask)
{
CWnd::OnActivateApp(bActive, hTask);
if(!bActive) //is being deactivated
PostMessage(WM_CLOSE);
}
//OnPaint()函数将全屏窗口置为黑色
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
CBrush brush(RGB(0,0,0));
CRect rect;
GetClientRect(rect);
dc.FillRect(&rect,&brush);
}
//由计数器调用DrawBitmap()函数,切换图片;
//注意,下面两个函数中的IDB_BITMAP1, dc.BitBlt(0,0,800,600……以及if(nIndexBit>=5)中的
//有关数据依据你的bmp图片个数、尺寸、位置不同而不同,我是选择了5张
//800x600的bmp图片。注意,ID值是连续的,IDB_BITMAP1最小
void CMyWnd::DrawBitmap(CDC& dc, int nIndexBit)
{
CDC dcmem;
dcmem.CreateCompatibleDC(&dc);
CBitmap m_Bitmap;
m_Bitmap.LoadBitmap(IDB_BITMAP1+nIndexBit);
dcmem.SelectObject(m_Bitmap);
dc.BitBlt(0,0,800,600,&dcmem,0,0,SRCCOPY);
}
void CMyWnd::OnTimer(UINT nIDEvent)
{
CClientDC dc(this);
static nIndexBit=0;
if(nIndexBit>=5)
nIndexBit=0;
DrawBitmap(dc, nIndexBit++);
CWnd::OnTimer(nIDEvent);
}
//响应键盘、鼠标是屏幕保护程序不可缺少的
void CMyWnd::OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags)
{
PostMessage(WM_CLOSE);
}
void CMyWnd::OnLButtonDown(UINT nFlags,CPoint point)
{
PostMessage(WM_CLOSE);
}
void CMyWnd::OnMButtonDown(UINT nFlags,CPoint point)
{
PostMessage(WM_CLOSE);
}
void CMyWnd::OnRButtonDown(UINT nFlags,CPoint point)
{
PostMessage(WM_CLOSE);
}
void CMyWnd::OnSysKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags)
{
PostMessage(WM_CLOSE);
}
void CMyWnd::OnMouseMove(UINT nFlags,CPoint point)
{
if(m_prePoint == CPoint(-1,-1))
m_prePoint = point;
else if(m_prePoint!=point)
PostMessage(WM_CLOSE);
}
void CMyWnd::OnDestroy()
{
//删掉计时器
KillTimer(ID_TIMER);
}
void CMyWnd::PostNcDestroy()
{
delete this;
}
再在"Project"-->"Settings"中更改Debug和Realease,将Link页的"Out put file"项的XXX.exe改为XXX.scr
在InitInstance函数中显示屏保窗口,添加代码:
CMyWnd* pWnd = new CMyWnd;
pWnd->Create();
m_pMainWnd = pWnd;
return TRUE;
"SCRNSAVE.EXE"="C:\\WINDOWS\\System32\\ssbezier.scr"明白了吗?自己改动就行了。