Fwndproc.cpp
上传用户:wenliang_x
上传日期:2013-05-26
资源大小:19k
文件大小:2k
源码类别:

屏幕保护

开发平台:

Visual C++

  1. #include "ScreenSave.h"
  2. TPassward pwd;  //密码缓冲区对象(TPassward.h)
  3. const char* const PASSWARD = "lgsh";  //密码设置
  4. const char* const WRMSG = "呵呵,Wrong Passward,Input Again!!";
  5. static const int scrwth=GetSystemMetrics(SM_CXFULLSCREEN)-100;   //窗口宽度
  6. static const int scrhgt=GetSystemMetrics(SM_CYFULLSCREEN);   //窗口高度
  7. //窗口消息处理函数,程序自动调用
  8. LRESULT CALLBACK MainWndProc(HWND hWnd,UINT message,
  9.                             WPARAM wParam, LPARAM lParam)
  10. {
  11.    HDC hdc; 
  12.    switch (message)
  13.    {       
  14.    case WM_KEYUP:  //如果按下任一建 
  15.         {
  16. if (wParam == VK_RETURN) {  //回车键
  17. if (pwd == PASSWARD){
  18. PostQuitMessage(0); //发出关闭程序的消息
  19. }
  20. else {     //输出错误密码消息
  21. pwd.clear();
  22. hdc = GetDC(hWnd);
  23. SetTextColor( hdc, RGB(255,255,0) );
  24.                     SetBkMode(hdc, TRANSPARENT );                   
  25.         TextOut(  //Windows系统接口函数(Windows API)
  26. hdc,                    //窗口的设备环境
  27. scrwth*rand()/RAND_MAX, //起始的x坐标
  28. scrhgt*rand()/RAND_MAX, //起始的y坐标
  29. WRMSG,                  //输出的字符串  
  30. strlen(WRMSG)           //字符串长度
  31. );
  32. ReleaseDC(hWnd,hdc);
  33. }
  34. }
  35. //   if (wParam == VK_ESCAPE)  //ESC键
  36.     //        PostQuitMessage(0); //发出关闭程序的消息
  37.            break;
  38.         }
  39.    case WM_CHAR:
  40.    {
  41.    if (wParam<'z' && wParam>'a')
  42.    pwd = pwd + (char)wParam;  //输入字符存入密码缓冲区(TPassward.h)
  43.    break;
  44.    }
  45.    case WM_CLOSE:
  46.    {
  47.    break; 
  48.    }
  49.    case WM_DESTROY:            //如果按下关闭按钮
  50.         {
  51.            PostQuitMessage(0); //发出关闭程序的消息
  52.            break;
  53.         }
  54.    default:  //其他消息发给windows默认窗口处理函数
  55.             return (DefWindowProc(hWnd,message,wParam,lParam));
  56.    }
  57.    return 0;
  58. }