标题:c++学了很久很久了,现在还面对黑呼呼的界面
只看楼主
e小陌
Rank: 1
来 自:陕西汉中
等 级:新手上路
帖 子:8
专家分:0
注 册:2019-10-4
结帖率:0
已结贴  问题点数:20 回复次数:13 
c++学了很久很久了,现在还面对黑呼呼的界面
都说c++能做界面,可是我研究了很久都写不出界面!网上差资料都说用QT 等其他软件来写???? c++ 只能写控制台对吧?
搜索更多相关主题的帖子: 界面 其他 软件 c++ 控制台 
2020-12-31 14:16
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:5 
VC++了解一下,qt,mfc都是图形界面库,并不是其他软件。
c++只是个工具语言,需要用它做什么就需要相应的类库支持,比如数据库,网络等操作。
2020-12-31 16:17
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
c++ 只能写控制台对吧?
不好直接回答“是”或“否”。

操作系统是C/C++写的,QT/MFC也是C/C++写的,OpenGL/DirectX也是C/C++写的,AutoCAD/Photoshop也是C++写的,……。你说C++能不能写图形界面?图形界面最终还是离不开C/C++。
但C/C++自身并不提供GUI接口(图形用户接口)。而C++之所以不提供GUI接口,那是C++认为自身高贵,不应该去做“图形用户接口”等低贱的活儿。
打个比方,C/C++是个设计农用机械的工程师,你问他会不会挖挑粪浇大蒜?他会肯定是会的,毕竟你挑粪浇大蒜用的工具都是他设计的。但他一定不擅长于挑粪浇大蒜,因为挑粪浇大蒜与其本职工作相差太远。

使用C++编写GUI,你可以
a. 使用操作系统提供的APIs。优点是可以写出最完美最精瘦的代码;缺点是需要的知识点太多,编写起来也很麻烦。
b. windows下可以使用MFC。优点是比直接调用系统APIs要简单轻松多了;缺点是MFC已经过时了,M$已经抛弃了它。
c. 使用QT。优点是它的代码可以跨平台,我就用它写过Android上的APP,全部C/C++代码;缺点是……(很多,略,)
d. 其它各种偏门下三滥的手段,比如基于浏览器的



2020-12-31 16:33
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:5 
如果钟爱MS,用C#写图形界面吧,MFC框架太大。
2020-12-31 19:38
OpenGLNewer
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2021-1-7
得分:5 
自己靠着书上 老师教的研究不出图形界面的,还是得精准的找教程,比如win32教程(用系统API),mfc教程(封装好的MFC API,个人觉得很乱,没有自己一句一句写理得清除) 这种就有图形界面了, 当然也可以OpenGL(真`图形化)
最近学OpenGL给整吐了,没买书,学的都是断断续续的,网上目前没看到好的中文OpenGL入门教程QAQ
2021-01-08 00:06
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:0 
你用的是什么版本的C++呢,控制台程序就是黑乎乎的吧,是dos界面。
我也学了很久的C++,用的是vc++软件,想用他做一些别的软件的二次开发程序,按照开发手册写的代码,都是提示找不到头文件。
我感觉学c语言,要有老师带路才可以。自学很难。
现在我只能用vc++做一些窗体界面的程序,像vb一样的,呵呵,这样窗体程序,用vb更简单。
2021-01-08 10:02
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:620
专家分:3020
注 册:2011-4-22
得分:0 
回复 6楼 cwa9958
vb程序,对api的调用很多功能达不到,数据多的时候效率也达不到,这就是vc的优势所在。
做二次开发,需要原软件商提供api,而好多是收费的。所以你找不到头文件,可能就没给你api包。
2021-01-08 14:27
cwa9958
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:247
专家分:1228
注 册:2006-6-25
得分:0 
回复 7楼 zbjzbj
谢谢你的回答。
但是那些文件都是存在的,路径也正确。

还在继续研究中...........

[此贴子已经被作者于2021-1-8 16:41编辑过]

2021-01-08 16:40
时间的熵
Rank: 2
等 级:新手上路
威 望:3
帖 子:4
专家分:0
注 册:2021-1-12
得分:0 
如果从零开始用C/C++写用户界面必然要接触系统底层,同时还需要很多与底层相关的知识。
所以一般都是用已经写好了的界面库完成这些工作,我个人比起臃肿繁杂的Qt、MFC等东西,还是更青睐于一些轻量简洁的库。
SFML库很适合作为你学完C++基础后,进入C++游戏开发(如果你有兴趣的话)领域的第一脚,它实现一个窗口的代码十分简洁:
程序代码:
// SFML图形库
#include "SFML/Graphics.hpp"

int main()
{
    // 创建窗口
    sf::RenderWindow window(sf::VideoMode(800,600),L"测试窗口",sf::Style::Close);
    window.setFramerateLimit(60);

    // 启动窗口主进程
    while(window.isOpen())
    {
        // 遍历窗口事件
        sf::Event e;
        while(window.pollEvent(e))
        {
            // 关闭事件触发窗口关闭
            if(e.type==sf::Event::Closed){ window.close(); }
        }

        // 清洗窗口
        window.clear();
        // 显示窗口
        window.display();
    }
}

另外它也可以与主流的图形库OpenGL配合使用,使用方法就在它们的官网上:
https://www.
,不过都是英文的……
如果你急切的想尝试一些图形编程,可以用用看这个库,它们官网上还有一份教程和可供下载的API文档。(虽然也是英文的……)
希望这个回答能让你对C++编程更感兴趣。
2021-01-12 22:45
时间的熵
Rank: 2
等 级:新手上路
威 望:3
帖 子:4
专家分:0
注 册:2021-1-12
得分:0 
回复 6楼 cwa9958
文件路径存在,但却提示“找不到头文件”,那可能是你没有配置好工程属性。
VC++一般用的IDE都是Visual Studio,在“解决方案资源管理器”中右键点击你的工程可以查看“属性”一栏,其中“C/C++”的“常规”->“附加包含目录”、“链接器”的“常规”->“附加库目录”需要尤为关注。
你说的问题在“C/C++”->“常规”->“附加包含目录”中填写正确的头文件目录即可解决。
2021-01-12 22:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504460-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.407862 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved