打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
什么?C语言也可以抢红包,速度来围观。

抢红包啦,全球狂欢节。

C语言抢红包源码+注释

//抢红包 用了windows API

#include<windows.h>

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<time.h>

//api 现成的函数 数据结构 + 算法

//rand srand随机数

char text[800];

//抢红包 把文本信息写到数组里面

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口处理器函数

void money(char * text)

{

int count = 0;

double a[10];

double total = 100.0;

int num = 10;

int i; //循环

double min = 0.01;

double avg;//平均值

double s_total; //范围值

srand(time(NULL));//随机种子

for(i = 0;i < num - 1;i++)

{

avg = total / (10 - i + 1);

s_total = 2 * avg;//波动

a[i] = (rand() % (int)(s_total * 100) + (int)min *100)/100.0 + min;

total -= a[i];

snprintf(text + count,800,"%d -> %0.2f\n",i+1,a[i]);

count = strlen(text);

}

a[i] = total;

snprintf(text + count,800,"%d -> %0.2f\n",i+1,a[i]);

}

//程序当前实例的句柄 先前 命令行参数 模式

int WINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstace,

PSTR szCmdLine,int iCmdShow)

{

money(text);

TCHAR name[] = TEXT("window");

HWND hwnd; //句柄

MSG msg; //消息

//typedef struct {...} WNDCLASS;

WNDCLASS wndclass; //窗口类 结构体

wndclass.lpfnWndProc = WndProc; //窗口处理函数 Linux 处理器

wndclass.lpszClassName = name; //类名

wndclass.style = CS_VREDRAW | CS_HREDRAW;

wndclass.hInstance = hInstance; //当前实例句柄

wndclass.hCursor = LoadCursor(NULL,IDC_ARROW); //光标

wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);//图标

wndclass.cbClsExtra = 0;//实例扩展

wndclass.cbWndExtra = 0;//窗口扩展

wndclass.lpszMenuName = NULL; //菜单

//Brush int int int

wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

//注册类

RegisterClass(&wndclass);

//创建窗口

//类名 ,标题,风格,坐标,大小,父窗口句柄,菜单句柄

hwnd = CreateWindow(name,TEXT("抢红包程序"),WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,CW_USEDEFAULT,800,600,NULL,

NULL,hInstance,NULL);

//本窗口相关信息句柄 传递给窗口wm_creat的值

ShowWindow(hwnd,iCmdShow);//显示出来

UpdateWindow(hwnd);//刷新

//接受消息 写进msg 消息窗口句柄 数据 wm_quit

while(GetMessage(&msg,NULL,0,0)) //系统维护 队列

{

//翻译

TranslateMessage(&msg);

//分发

DispatchMessage(&msg);

}

return msg.wParam; //退出值

}

//回调函数 窗口句柄 消息id 消息参数

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

{

static HWND btnHwnd;//子窗口句柄

HDC hdc;//显示设备句柄

hdc = GetDC(hwnd);

RECT rect;

GetClientRect(hwnd,&rect);//写到窗口的客户区域

switch(message)

{

case WM_CREATE://常见一个按钮

btnHwnd = CreateWindow(TEXT("BUTTON"),TEXT("抢红包"),WS_CHILD

| WS_VISIBLE | BS_PUSHBUTTON,600,400,

100,30,hwnd/*父窗口句柄*/,(HMENU)1/*id*/,

(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE)

,NULL);

return 0;

case WM_COMMAND:

switch(LOWORD(wParam)) //子窗口的id

{

case 1:

switch(HIWORD(wParam))//判断消息类型

{

case BN_CLICKED:

DrawText(hdc,text,-1,&rect,DT_CENTER|DT_VCENTER

|DT_WORDBREAK);

break;

}

break;

}

return 0;

case WM_DESTROY: //摧毁

PostQuitMessage(0);//终止消息

return 0;

}

//缺省处理 为了确保每个消息都得到出力

return DefWindowProc(hwnd,message,wParam,lParam);

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
孙鑫VC视频教程笔记之第一课“Windows程序的内部运行原理”
windows窗口的创建
windows程序设计(5)使用滚动条
Windows程序基本结构
给托盘图标增加气球提示
《白手起家Win32SDK应用程序》(完整版+目录)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服