Windows系统功能模拟 C++(EasyX插件)—— 8th 窗口(二)
来源:互联网 发布:windows共享文件夹 编辑:程序博客网 时间:2024/05/21 11:01
这次要做的就是窗口主体。
窗口主体就是有白色填充造成,周围有蓝色线。
其实跟上一篇差不多,需要的就是跟根据窗口坐标和窗口宽度、高度来进行绘画。
直接放代码。
#pragma warning(disable: 4996)#include <windows.h> //系统相关#include <stdio.h>#include <graphics.h> //图形库#include <ctime>#include <iostream>#include <stdlib.h>#include <conio.h>#include <fstream> //文件读写#include <time.h> //随机数#include <iomanip> //输出格式#include <direct.h> //创建文件夹用 不推荐using namespace std; //使用后可以省略名字空间MOUSEMSG m; // 定义鼠标消息HANDLE hEvent;// 获取标准输入输出设备句柄 HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);DWORD dwRes, dwState = 0;INPUT_RECORD keyRec;COORD crHome = { 0, 0 }, crPos;bool bCaps, bNum, bScroll;char ch;CONSOLE_SCREEN_BUFFER_INFO bInfo;int i, j;int 窗口i, 窗口j;int 开始按钮状态 = 0;int 开始菜单状态 = 0;int 窗口x=100;int 窗口y=100;int 窗口宽 = 200;int 窗口高 = 100;DWORD WINAPI DXC1(LPVOID lpParam){ IMAGE 壁纸; // 定义 IMAGE 对象 loadimage(&壁纸, "G:\\程序制作\\Windows系统模拟\\素材\\壁纸.jpg"); IMAGE 开始菜单; // 定义 IMAGE 对象 loadimage(&开始菜单, "G:\\程序制作\\Windows系统模拟\\素材\\开始菜单.jpg"); IMAGE 开始按钮0; // 定义 IMAGE 对象 loadimage(&开始按钮0, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮0.jpg"); IMAGE 开始按钮1; // 定义 IMAGE 对象 loadimage(&开始按钮1, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮1.jpg"); IMAGE 开始按钮2; // 定义 IMAGE 对象 loadimage(&开始按钮2, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮2.jpg"); IMAGE 最小化按钮; // 定义 IMAGE 对象 loadimage(&最小化按钮, "G:\\程序制作\\Windows系统模拟\\素材\\最小化按钮.jpg"); IMAGE 关闭按钮0; // 定义 IMAGE 对象 loadimage(&关闭按钮0, "G:\\程序制作\\Windows系统模拟\\素材\\关闭按钮0.jpg"); Sleep(100); while (true) { // 获取一条鼠标消息 m = GetMouseMsg(); switch (m.uMsg) { case WM_LBUTTONDOWN: //开始按钮 if (m.x > -1 && m.x < 61 && m.y>669 && m.y < 721) { 开始按钮状态 = 1; if (开始菜单状态 == 0) { 开始菜单状态 = 1; } else if (开始菜单状态 == 1) { 开始菜单状态 = 0; for (i = 181; i < 670; i++) { setcolor(WHITE); line(0, i, 926, i); } putimage(0, 0, &壁纸, SRCAND);//防止壁纸被覆盖后无法再出现 } } if (开始菜单状态 == 1) { if (m.x > 926 || m.y>670 || m.y < 182) { if (m.x > 60) { 开始菜单状态 = 0; for (i = 181; i < 670; i++) { setcolor(WHITE); line(0, i, 926, i); } putimage(0, 0, &壁纸, SRCAND);//防止壁纸被覆盖后无法再出现 } } } } //窗口 setcolor(RGB(15, 162, 195)); line(窗口x, 窗口y, 窗口x + 窗口宽, 窗口y); setcolor(RGB(0, 152, 189)); setfillcolor(RGB(0, 152, 189)); fillrectangle(窗口x, 窗口y, 窗口x + 窗口宽, 窗口y + 37); setcolor(WHITE); setfillcolor(WHITE); fillrectangle(窗口x + 窗口宽 - 76, 窗口y, 窗口x + 窗口宽 - 38, 窗口y + 37); setcolor(WHITE); setfillcolor(WHITE); fillrectangle(窗口x + 窗口宽 - 38, 窗口y, 窗口x + 窗口宽 - 1, 窗口y + 37); putimage(窗口x + 窗口宽 - 76, 窗口y, &最小化按钮, SRCAND); putimage(窗口x + 窗口宽 - 38, 窗口y, &关闭按钮0, SRCAND); setcolor(RGB(24, 160, 191)); line(窗口x, 窗口y + 38, 窗口x, 窗口y + 38 + 窗口高); setcolor(RGB(24, 160, 191)); line(窗口x + 窗口宽, 窗口y + 38, 窗口x + 窗口宽, 窗口y + 38 + 窗口高); setcolor(RGB(24, 160, 191)); line(窗口x, 窗口y + 38 + 窗口高, 窗口x + 窗口宽, 窗口y + 38 + 窗口高); setcolor(WHITE); setfillcolor(WHITE); fillrectangle(窗口x + 1, 窗口y + 38, 窗口x + 窗口宽 - 1, 窗口y + 38 + 窗口高-1); //开始按钮 if (m.x > -1 && m.x < 61 && m.y>669 && m.y < 721) { setcolor(WHITE); setfillcolor(WHITE); fillrectangle(0, 670, 59, 719); putimage(0, 670, &开始按钮1, SRCAND); } if (m.x > 60 || m.y < 670) { setcolor(WHITE); setfillcolor(WHITE); fillrectangle(0, 670, 59, 719); putimage(0, 670, &开始按钮0, SRCAND); } if (开始菜单状态 == 1) { setcolor(WHITE); setfillcolor(WHITE); fillrectangle(0, 181, 925, 669); putimage(0, 181, &开始菜单, SRCAND); } switch (m.uMsg) { case WM_LBUTTONDOWN: //开始按钮 if (m.x > -1 && m.x < 61 && m.y>669 && m.y < 721) { setcolor(WHITE); setfillcolor(WHITE); fillrectangle(0, 670, 59, 719); putimage(0, 670, &开始按钮2, SRCAND);//点击开始按钮后改变图片为开始菜单2(点击时) } } FlushBatchDraw(); }}DWORD WINAPI DXC2(LPVOID lpParam){ for (;;) { IMAGE 开始按钮1; // 定义 IMAGE 对象 loadimage(&开始按钮1, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮1.jpg"); if (开始按钮状态 == 1)//点击开始按钮后图片改变后返回 { Sleep(500); putimage(0, 670, &开始按钮1, SRCAND); FlushBatchDraw(); 开始按钮状态 = 0; } }}DWORD WINAPI DXC3(LPVOID lpParam){ for (;;) { }}void main(){ IMAGE 壁纸; // 定义 IMAGE 对象 loadimage(&壁纸, "G:\\程序制作\\Windows系统模拟\\素材\\壁纸.jpg"); IMAGE 开始按钮0; // 定义 IMAGE 对象 loadimage(&开始按钮0, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮0.jpg"); IMAGE 开始按钮1; // 定义 IMAGE 对象 loadimage(&开始按钮1, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮1.jpg"); HANDLE hThread1, hThread2, hThread3; SetEvent(hEvent); hThread1 = CreateThread(NULL, 0, DXC1, NULL, 0, NULL); hThread2 = CreateThread(NULL, 0, DXC2, NULL, 0, NULL); hThread3 = CreateThread(NULL, 0, DXC3, NULL, 0, NULL); initgraph(1280, 720); BeginBatchDraw(); setcolor(WHITE); setfillcolor(WHITE); fillrectangle(0, 0, 1280, 720); putimage(0, 0, &壁纸, SRCAND); putimage(0, 670, &开始按钮0, SRCAND); FlushBatchDraw(); for (;;);}
这就是现在的代码,总的来说,改善了一些代码,把循环画线变成了填充,并且增加了窗口主体的绘制。
大家可以自己研究研究,虽然我写的注释不多,但是看着还是简单明了的。
话说,我以后就会开辟一个新的系列哦~~~
编程能力训练系列!!!!!!!!!!!!
0 0
- Windows系统功能模拟 C++(EasyX插件)—— 8th 窗口(二)
- Windows系统功能模拟 C++(EasyX插件)—— 7th 窗口(一)
- Windows系统功能模拟 C++(EasyX插件)—— 4th 界面绘制(二)
- Windows系统功能模拟 C++(EasyX插件)—— 5th 界面绘制(三)
- Windows系统功能模拟 C++(EasyX插件)—— 6th 界面绘制(四)
- Windows系统功能模拟 C++(EasyX插件)—— 3rd 界面绘制(一)
- Windows系统功能模拟 C++(EasyX插件)—— 1st 介绍
- Windows系统功能模拟 C++(EasyX插件)—— 2nd 基础设施
- Windows系统功能模拟 C++(EasyX插件(图形库))制作 开工!!!
- 模拟模拟交易系统(五)——系统功能展示
- 做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码
- 模拟模拟交易系统(二)——系统设计
- 构建自己的C/C++插件开发框架(二)——总体功能
- 构建自己的C/C++插件开发框架(二)——总体功能
- C++Builder 高手进阶 (二)系统窗口分析器
- C语言+EasyX实现——鼠标坐标实时显示
- easyX图形函数库开发的俄罗斯方块游戏(C版本)
- 在vs中安装Easyx图形库(仅c++)
- unit2.2控制对文件的访问
- PAT L1-033. 出生年
- ONGL表达式在jsp中获取各种数据的方法
- 大话设计模式读书笔记(十五) 备忘录模式
- 1062. 最简分数(20)
- Windows系统功能模拟 C++(EasyX插件)—— 8th 窗口(二)
- 文章标题 Silver Cow Party
- 笔记本外接显示器设置全屏壁纸
- linux中的atexit
- java byte/char/string/int之间的转化
- Android之如何让Android studio编译更快
- 2017.4.19 细胞分裂 思考记录
- IIC学习
- 解决Jupyter notebook[import tensorflow as tf]报错