ScreenSaver[My C++ code]

此博客展示了使用C++和WinAPI编写屏幕保护程序的代码。包含了所需头文件和库文件,定义了屏幕保护程序的回调函数,处理了绘制和销毁等消息,还实现了配置对话框的处理函数,处理命令消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 程序需要的头文件

#include <windows.h>

#pragma comment(lib,"scrnsave.lib") //使用库文件

#include "resource.h"
#include "stdlib.h"
#include "time.h"

LRESULT CALLBACK ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{
 
 switch (message)
 {
  
 case WM_PAINT:
  
  {
   
   PAINTSTRUCT ps;
   
   HDC hDC = BeginPaint(hWnd, &ps);
   
   SetBkMode(hDC, TRANSPARENT);
   
   SetTextColor(hDC, RGB(0x33, 0xcc, 0));
   
   TextOut(hDC, 150, 150, "WWW.VCKBASE.COM", 15);

   HDC dc;
   dc=GetDC(hWnd);
   
    srand((unsigned)time(NULL));

    RECT rc;
    GetWindowRect(hWnd,&rc);

    int s_x=rc.right-rc.left;
    int s_y=rc.bottom-rc.top;

   for(int i=0;i<1000;i++)
   {
    
    int x=rand()%s_x,y=rand()%s_y;
    long rgb=rand()+i;

    //CPen pen;
    //dc->SelectObject(pen(PS_SOLID,1,(long)rgb));
   
    HPEN pen;
    pen=CreatePen(PS_SOLID,10o,rgb);
    SelectObject(dc,pen);
    LineTo(dc,x,y);

   }
   
   EndPaint(hWnd, &ps);
   
  }
  
  break;
  
 case WM_DESTROY:
  
  PostQuitMessage(0);
  
  break;        
  
 default:
  
  // 缺省的消息处理函数
  
  return DefScreenSaverProc(hWnd,message,wParam,lParam);
  
 }
 
 return 0;
 
}

BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{
 
 switch (message) {
 
 case WM_COMMAND:
  
  //处理 确定 按钮
  
        if (LOWORD(wParam) == IDOK) {
   
   EndDialog(hDlg, LOWORD(wParam));
   
   return TRUE;
   
  }
  
  else
   
  {
   
   //系统的处理退出命令
   EndDialog(hDlg, LOWORD(wParam));
   return TRUE;
  }
  break;
 }
 return FALSE;
}

BOOL WINAPI RegisterDialogClasses(HANDLE hInst)
{
 return TRUE;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值