Windows系统功能模拟 C++(EasyX插件)—— 7th 窗口(一)

原创 2017年04月18日 21:47:14

对不起,可能让大家失望了,经过我7秒的静思神算,发现开始菜单出现的动画虽然可以用清屏+调用图片+延迟呈现,但是会导致很多问题,例如黑白条(前文讲过)、卡死等情况,原因不明···


但是我们可以接着做些别的,例如一个窗口!!!


但是这个貌似很难啊···
但是我还是研究出来了解决办法,我们一步步做。
说道窗口肯定会有几个必备的外貌特征,例如:窗口框(可拖动),关闭按钮(关闭窗口),最小化按钮(这个我们就先不做了,等有了任务栏再做)等。
所以说,首先最难的就是窗口框的拖动,但是呢——————

我们先不做那个,我们先“创建”一个窗口。
既然这样,请各位打开“文件资源管理器”···
截取窗口框(及窗口最上面可拖拽部分,我知识量小···才上初中,没学过专业术语···)
然后用大神级P图工具:画图(呵呵,但是我真的是用这个来P图)
P成这几个部分:
最小化按钮(38*38):
这里写图片描述
关闭按钮(38*38):
这里写图片描述

OK,这就是我们需要的两个图片,对于窗口框我们可以通过画图提取这个按钮的颜色然后用EasyX的颜色调节功能来自行绘制,这样也便于后期制作窗口大小改变功能。

这是我提取的颜色:
窗口框最上边/最又边(图片最上面的一个像素):
红:15 绿:162 蓝:195
窗口框大部分的颜色:
红:0 绿:152 蓝:189

然后随便在程序里调用一下试一试,最好让这两个图片在一块,看看有没有明显颜色区别。

然后我们在主函数外定义一下窗口相关数据(目前先不用数组,而且我也不太会用类······):

int 窗口x=10;
int 窗口y=10;
int 窗口宽 = 200;
int 窗口高 = 100;

然后在多线程的鼠标消息循环里添加这些代码:

//窗口
setcolor(RGB(15, 162, 195));
line(窗口x, 窗口y, 窗口x + 窗口宽, 窗口y);
for (窗口i = 1; 窗口i < 38; 窗口i++)
{
    setcolor(RGB(0, 152, 189));
    line(窗口x, 窗口y + 窗口i, 窗口x + 窗口宽, 窗口y + 窗口i);
}
for (i = 窗口y; i < 窗口y+38; i++)
{
    setcolor(WHITE);
    line(窗口x + 窗口宽 - 76, i, 窗口x + 窗口宽 - 38, i);
}
for (i = 窗口y; i < 窗口y + 38; i++)
{
    setcolor(WHITE);
    line(窗口x + 窗口宽 - 38, i, 窗口x + 窗口宽 - 1, i);
}
putimage(窗口x + 窗口宽 - 76, 窗口y, &最小化按钮, SRCAND);
putimage(窗口x + 窗口宽 - 38, 窗口y, &关闭按钮0, SRCAND);

好吧,这样的话一个窗口框就显示出来了,为测试可行性,修改窗口宽试一试,如果相应的窗口框也变更了就算成功了。

下一篇讲到的是创建窗口本体

版权声明:本文为博主原创文章,转载请注明此出处,否则不可转载,详情请联系QQ540809998 https://blog.csdn.net/yiwenyoucod/article/details/70196993

基于EasyX图形库的天天爱消除

基于EasyX图形库的天天爱消除 什么是EasyX图形库 EasyX 是针对 C++ 的图形库,可以帮助 C++语言初学者快速上手图形和游戏编程。 http://www.easyx.c...
  • weixin_40739833
  • weixin_40739833
  • 2017-12-29 19:28:32
  • 243

Windows系统功能模拟 C++(EasyX插件)—— 6th 界面绘制(四)

还是截图吧,截下来开始菜单,这是我现在未处理的样子: 这是我处理后的样子: 把除了最左边一列的快捷选项其他的全部填掉。注意:因为是JPG图像,质量没有PNG号,所以很多图案都会变得十分出招,所...
  • yiwenyoucod
  • yiwenyoucod
  • 2017-04-16 18:28:45
  • 886

Windows系统功能模拟 C++(EasyX插件)—— 7th 窗口(一)

对不起,可能让大家失望了,经过我7秒的静思神算,发现开始菜单出现的动画虽然可以用清屏+调用图片+延迟呈现,但是会导致很多问题,例如黑白条(前文讲过)、卡死等情况,原因不明··· 但是我们可以接着...
  • yiwenyoucod
  • yiwenyoucod
  • 2017-04-18 21:47:14
  • 690

C++窗体示范

#include HWND HMainwnd = NULL; //窗体句柄 int run(); //消息循环函数 bool InitWindowsApp(HINSTANCE instance...
  • tangyanzhi1111
  • tangyanzhi1111
  • 2015-09-16 15:41:20
  • 272

Windows系统功能模拟 C++(EasyX插件)—— 8th 窗口(二)

这次要做的就是窗口主体。窗口主体就是有白色填充造成,周围有蓝色线。 其实跟上一篇差不多,需要的就是跟根据窗口坐标和窗口宽度、高度来进行绘画。直接放代码。#pragma warning(disable...
  • yiwenyoucod
  • yiwenyoucod
  • 2017-04-19 20:47:45
  • 270

Windows系统功能模拟 C++(EasyX插件)—— 3rd 界面绘制(一)

照旧,不再多说。既然要界面绘制肯定需要各类win10的图片,我们先做出开始菜单的按钮,有win10的各位直接截图吧,方法: 将win10背景设置为纯白(因为win10任务栏有一定的透明效果) 然后...
  • yiwenyoucod
  • yiwenyoucod
  • 2017-04-16 16:53:44
  • 557

WindowsApi+Easyx图形库的透明时钟

前言:在当了这么久的吸血鬼(学习技术不写博)之后,今天终于决定写一篇属于自己的文章...
  • CoderMannul
  • CoderMannul
  • 2015-07-10 17:08:08
  • 659

vs 2015 GDI+ EasyX 实现图片窗口显示

首先需要安装VS 2015或者VC (其实都可以反正都是一家)我建议安装VS 2015 因为功能更强大。环境搭建好了之后,就进入今天的正题:1、下载EasyX C++图形库,内置多种绘图函数接口,可以...
  • sinat_26483043
  • sinat_26483043
  • 2018-02-08 19:05:42
  • 49

Windows系统功能模拟 C++(EasyX插件(图形库))制作 开工!!!

注意:此博客持续更新,请大家关注 RT我的目标是做出一个Windows系统开玩笑,我是要做Windows系统的部分功能。 例如开始菜单,窗口移动,开关窗口等功能。 请期待: Windows系统...
  • yiwenyoucod
  • yiwenyoucod
  • 2017-04-16 15:29:33
  • 618

Windows系统功能模拟 C++(EasyX插件)—— 4th 界面绘制(二)

呵呵,中小学电脑制作活动竟然要5月才开始评选(我3月参加的···),说好的4月公投也没有出现···好了,废话不多说,既然已经有了按钮,就为它添加一个事件响应,例如放上去的时候改变为鼠标悬浮状态。 之...
  • yiwenyoucod
  • yiwenyoucod
  • 2017-04-16 17:28:52
  • 420
收藏助手
不良信息举报
您举报文章:Windows系统功能模拟 C++(EasyX插件)—— 7th 窗口(一)
举报原因:
原因补充:

(最多只允许输入30个字)