如何编写屏幕保护程序
MSDN中有个例子
\Samples\Vc98\Mfc\General\Saver
这是一个基于对话框的程序
在CxxApp::InitInstance()中确定打开方式
屏保程序有三种打开方式:
1,设置对话框;
2,小窗口预览;
3,全屏显示。
if(__argc==1||Match(__argv[1],_T("c")))//Match()是自编的字符串比较函数 DoConfig();//自编的打开设置对话框 else if(Match(__argv[1],_T("p")))//小窗口预览 { CWnd *pParent=CWnd::FromHandle((HWND)atol(__argv[2])); ASSERT(pParent!=NULL); CDrawWnd* pWnd=new CDrawWnd;//预览窗口类 CRect rect; pParent->GetClientRect(&rect); pWnd->Create(NULL,WS_VISIBLE|WS_CHILD,pParent,NULL); m_pMainWnd=pWnd; return TRUE; } else if(Match(__argv[1],_T("s")))//全屏运行 { CSaverWnd* pWnd=new CSaverWnd;//全屏窗口类 pWnd->Create(); m_pMainWnd=pWnd; return TRUE; } return FALSE;
预览窗口类CDrawWnd负责绘图。
全屏窗口类CSaverWnd是从预览窗口类CDrawWnd派生出来的,负责响应鼠标和键盘消息,退出程序。
BOOL CSaverWnd::Create()//这个函数使窗口全屏显示 { CRect rect(0, 0, ::GetSystemMetrics(SM_CXSCREEN), ::GetSystemMetrics(SM_CYSCREEN)); return CDrawWnd::Create(WS_EX_TOPMOST, WS_VISIBLE|WS_POPUP, rect, NULL, 0, NULL); }
注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1169985758110.html
如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:)
我得意,我用他的代码;
我自豪,他用我的代码!
void main() { printf("hello, vcer!"); }
A B C D E