Windows系统功能模拟 C++(EasyX插件)—— 4th 界面绘制(二)
来源:互联网 发布:高邮2016秋季网络培训 编辑:程序博客网 时间:2024/05/21 11:07
呵呵,中小学电脑制作活动竟然要5月才开始评选(我3月参加的···),说好的4月公投也没有出现···
好了,废话不多说,既然已经有了按钮,就为它添加一个事件响应,例如放上去的时候改变为鼠标悬浮状态。
之前我们调用了MOUSEMSG和HANDLE,现在该用到它们了。
直接上代码吧,这个不好一步步说:
#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;DWORD WINAPI DXC1(LPVOID lpParam){ IMAGE 开始按钮0; // 定义 IMAGE 对象 loadimage(&开始按钮0, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮0.jpg"); IMAGE 开始按钮1; // 定义 IMAGE 对象 loadimage(&开始按钮1, "G:\\程序制作\\Windows系统模拟\\素材\\开始按钮1.jpg"); Sleep(100);//防止出现清屏未完成的黑白条状况 while (true) { // 获取一条鼠标消息 m = GetMouseMsg(); //如果鼠标在开始图片的区域里 if (m.x > -1 && m.x < 61 && m.y>669 && m.y < 721) { for (i = 670; i < 720; i++) { setcolor(WHITE); line(0, i, 60, i); } putimage(0, 670, &开始按钮1, SRCAND); FlushBatchDraw(); } //如果鼠标不在开始图片的区域里 if (m.x > 60 || m.y < 670) { for (i = 670; i < 720; i++) { setcolor(WHITE); line(0, i, 60, i); } putimage(0, 670, &开始按钮0, SRCAND); FlushBatchDraw(); } FlushBatchDraw(); switch (m.uMsg) { case WM_LBUTTONDOWN:; } }}DWORD WINAPI DXC2(LPVOID lpParam){ for (;;) { }}DWORD WINAPI DXC3(LPVOID lpParam){ for (;;) { }}void main(){ 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(); for (i = 0; i < 720; i++) { setcolor(WHITE); line(0, i, 1280, i); } putimage(0, 670, &开始按钮0, SRCAND); FlushBatchDraw(); for (;;);}
这样就实现了鼠标在按钮上就变成鼠标悬浮状态,不在就恢复原样。
这里使用了批量绘图语句。
注意:批量绘图的所有语句必须在创建了图形界面后调用,否则会内存冲突直接中断
好了,按钮的悬浮显示完毕,等5th吧。
这一节好像没讲什么啊···
(这个···实在是不好讲啊,再说都是if和循环,很容易看懂)
0 0
- Windows系统功能模拟 C++(EasyX插件)—— 4th 界面绘制(二)
- Windows系统功能模拟 C++(EasyX插件)—— 5th 界面绘制(三)
- Windows系统功能模拟 C++(EasyX插件)—— 6th 界面绘制(四)
- Windows系统功能模拟 C++(EasyX插件)—— 8th 窗口(二)
- Windows系统功能模拟 C++(EasyX插件)—— 3rd 界面绘制(一)
- Windows系统功能模拟 C++(EasyX插件)—— 7th 窗口(一)
- Windows系统功能模拟 C++(EasyX插件)—— 1st 介绍
- Windows系统功能模拟 C++(EasyX插件)—— 2nd 基础设施
- Windows系统功能模拟 C++(EasyX插件(图形库))制作 开工!!!
- 晒几个界面(基于EasyX框架)
- 模拟模拟交易系统(五)——系统功能展示
- 做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码
- 模拟模拟交易系统(二)——系统设计
- 构建自己的C/C++插件开发框架(二)——总体功能
- 构建自己的C/C++插件开发框架(二)——总体功能
- 系统模拟登陆界面 二
- win32 绘制超酷界面(二)
- Android_Note(二)——主界面功能
- 微信小程序 canvas绘制雷达图
- iOS攻防
- 第一次做树的题,并且用到了vector<pair<int,int> >,收获很大
- deepin下mysql的卸载和重装
- STL之五:set/multiset用法详解
- Windows系统功能模拟 C++(EasyX插件)—— 4th 界面绘制(二)
- IOS之OC语言基础知识
- grundy值的求解
- 设计一个音乐播放器,用List列表显示手机中所有音乐,支持播放、暂停、继续、上一首、下一首等功能。
- 函数式编程入门
- 配置服务器 —— 安装PhpMyAdmin
- win10下基于anaconda安装tensorflow gpu版
- 单例设计模式
- HTML(4)——标题