600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > c语言图形化界面开发 (一)

c语言图形化界面开发 (一)

时间:2019-07-30 08:49:01

相关推荐

c语言图形化界面开发 (一)

0x00 前言

1.说明

既然Android逆向是杂学,而且c语言又是我的本命学科,那么学习一下还是可以的,但是肯定不会占很多的时间,也就是一心三用,然后进行一个简单的博客说明。

3.环境

vs

4.推荐

推荐先去学习c语言基础

0x01 第一个窗口程序

1.创建

1.1 新建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UZb27ISo-1678030027633)(null)]

1.2 向导点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F186vBoU-1678030024059)(/o_1c5819ia31cv5l4vh95dbgocua.png-j.jpg)]

1.3 应用程序设置

不勾选安全周期,选择空项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BVjHjZCi-1678030024059)(/o_1c581bvjbuusbk7qh39ti15rva.png-j.jpg)]

1.4 新建文件

添加-新建项-cpp文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RyXF0hXq-1678030024060)(/o_1c5822nuk1r96f8i1mr510h3umfa.png-j.jpg)]

2.第一个项目

2.1 框架搭好

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){return 0;}

2.2 添加内容

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL, "LOVE猪猪", "LOVE", MB_OK);return 0;}

我们添加了一行代码。这个代码就是显示我们框框的代码。但是会因为字符问题出错,所以我们要进行修改。

2.3 修改

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"), MB_OK);return 0;}

使用text把我们需要输入的字符包裹起来就可以了。TEXT是一个宏,当字符串中有中文的时候用TEXT包裹起来。

2.4 编译运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTFQBtYH-1678030024060)(/o_1c582pp2r1lk618vv1mrj1kb4q5aa.png-j.jpg)]

2.5 代码分析

MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"), MB_OK);

这是我们的主要代码 ,这里有四个参数,第一个参数传入NULL,第二个参数就是显示内容,第三个参数就是标题,第四个参数就是样式。

0x02 其他样式的窗口

1.MB_OKCANCEL

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_OKCANCEL);return 0;}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VYGxlwmW-1678030024060)(/o_1c583gush6btca2tj4sms1mc2a.png-j.jpg)]

2.MB_ABORTRETRYIGNORE

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_ABORTRETRYIGNORE);return 0;}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypYYxPkp-1678030024060)(/o_1c583kmv1b3f15t71uae1thl1nuna.png-j.jpg)]

3.MB_ICONERROR

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_ICONERROR);return 0;}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ANPAMnrT-1678030027645)(null)]

4.组合使用

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_OKCANCEL|MB_ICONQUESTION);return 0;}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5OcGtuhW-1678030024061)(/o_1c5840uad1ko91bdo11cg1rc911jfa.png-j.jpg)]

5.结束语

还有很多种组合方式,可以进行自己尝试。

0x03 组合使用原理

1. “|”含义

在c语言中“|”的含义就是“或”的意思。

简单的说就是只要有1就为1,只有同为0的时候才为0。

2. 原理

首先来看一张图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QLtD1UhU-1678030024061)(/o_1c584d3i712o4vb0odt1pjrgida.png-j.jpg)]

#define MB_OK 0x00000000L#define MB_ICONHAND 0x00000010L

这两个进行或运算,也就是0x00000000和0x00000010进行或运算

使用软件进行转化:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SBYl4VBO-1678030024062)(/o_1c586pnjvua91nebqijpht1p7pa.png-j.jpg)]

00000和10000就是10000,所以会保留两个特征。

其他同理

0x04 默认按钮

1.使用原因

(1)方便使用者,enter选择默认按钮

(2)防止误操作,默认按钮是最优选

2.实现

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){MessageBox(NULL, TEXT("LOVE猪猪"), TEXT("LOVE"),MB_OKCANCEL|MB_ICONQUESTION|MB_DEFBUTTON2);return 0;}

这里可以通过指定BUTTON1,或者BUTTON2,BUTTON3,或者BUTTON4。

展示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q7fROvjF-1678030024062)(/o_1c587hd521e7dgj513jm1remjpna.png-j.jpg)]

0x05返回值

1.基础

首先来看这张图,是关于返回值的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IGswCzIo-1678030027658)(null)]

2.简单demo

#include <windows.h>int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevinstance, PSTR szCmdLine, int iCmdShow){int r=MessageBox(NULL, TEXT("你是猪吗"), TEXT("LOVE"),MB_OKCANCEL|MB_ICONQUESTION|MB_DEFBUTTON2);if (r == IDOK){MessageBox(NULL, TEXT("看来你很有自知之明嘛"), TEXT("LOVE"), MB_OK);}else{MessageBox(NULL, TEXT("想否认也没有办法,你还是猪"), TEXT("LOVE"), MB_OK);}return 0;}

这个就是简单的一个恶搞demo,当然如果写成其他的也是可以的。这个就看个人的发挥了。

0x06结束

以上就是c语言实战开发中的简单应用了,感觉下了一下午,但是收获还是有很多的。

有兴趣还可以看看其他系列

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。