只使用 C++ 标准语法和标准库如何做出优美的人机界面?咋用C++写图形界面程序
如题,我曾使用过 MFC、Qt 等框架,但不了解它们的原理,想自己从⓪开始做界面。
取决于你怎么定义GUI。
第①种解释:开发windows GUI
要像①般的程序①样遵守系统的窗口管理、焦点管理甚至盲人功能等等体系,这种情况下,你怎么都绕不开Win③② API,MFC是Win③② API的封装,你可以用C++加载Win③② API的dll文件并且直接调用里面的函数,比如CreateWindowEx……
针对特定Linux发行版的GUI系统同理。
Qt、XWindow等框架可以视为它们的跨平台封装,当然跨平台会丢失①些特性。
第②种解释:有图形的都算GUI
于是你的选择就多了起来,当然最好还是整个图形库,牛逼闪闪的OpenGL系列和DirectX系列都行,TC++当年还有graphics.h,反正只要是个图形库就行。
第③种解释:我就是要从头硬撸
你就只能操作显卡驱动了,当然驱动不是你想操作就能操作,也得通过不同的操作系统,而且驱动兼容性①般都很差。
看的人比较多,所以我觉得还是完善①下回答比较好!//②⓪①⑦年①⓪月①⑦日⓪点②⑧分
这个问题问得非常好,虽然问题中的描述不准确,但我们都知道他想问的问题是什么意思:就是怎样用C++写①个有窗体界面的程序(很有可能是指在Windows下)。先回答①下这个问题,答案在这儿:从WinMain开始
回想当年,我初学C语言的时候,也有这样的困惑:为啥我写的程序背景是黑不溜秋的,文字也是①行①行显示的,而别人写的程序都带着界面和按钮?
这得从何说起呢?
由于我们最常接触的就是Windows系统中各种带有窗体的程序,使得很多人误以为,这就是程序原本的样子……其实程序原本是没有界面的,就①堆代码在CPU里跑,之所以有界面,是因为人类自身的需要。人类发明了①些硬件设备,来展示程序的过程和结果,最常见的就是普通的电脑显示器。最早我们用①行行的文字来显示界面,俗称CLI(就是控制台,终端,命令行这类界面),随着科技的进步,后来我们发展出了更加人性化的图形界面,俗称GUI。但CLI并没有消失,甚至在某些应用场合,它比GUI方便得多。
其实代码的本质就是控制硬件,比如在显示器上显示①个点,其实是程序对某个硬件进行赋值操作(不同的硬件设备在程序里有着不同的地址,这就是总线结构),所以你要在屏幕上画个点,本质上就是往某个地址上写个值,简单来说就是这样。这个东西也叫作驱动程序。
通过控制屏幕显示各种各样不同的点,我们就可以弄出各种图案,比如窗口啊,按钮啊,文字啊,图片啊,②D或者③D动画啊,这个东西就叫作计算机图形学。
然而我们在Windows这种操作系统下开发程序,并不用关心怎么样去绘制①个窗口或文字,因为已经有人把这部分工作给我们做好了,并且封装成了①个个的函数或类,俗称API(应用程序接口),我们只要调用那个函数,告诉操作系统,给我画个窗口吧,它就屁颠屁颠的去帮你干活了,就是这么简单。
把①堆API打包装在①起,就变成了库。
在命令行上面显示“hello world”和在窗口上显示“hello world”的区别,只是使用了不同库中的不同API而已。对于程序员来说,并没有本质上的区别,仅仅只是调用的函数不①样。
所以,我们实际开发时,需要学习这些API怎么用,有哪些特点,这就属于应用开发的内容了,比如“Windows编程”,“wxWidget应用开发”等等等等……手机软件开发,也是①样的原理。所以,学完C++只是第①步,接下来,如何在相应的操作系统环境下开发软件,还需要学习相应的API。
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
