求问:C++可视化界面编写

Cmonarch 2021-03-30 01:00:21
学校的书上教的是基础的知识,像可视化界面怎么编写这种没有,百度了没有找到完整的教程,我用的工具是vs2019,希望各位前辈给点意见,想买本最好用vs编写可视化窗口的书本教材,或者有完整的教学视频的。
...全文
1954 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 17 楼 赵4老师 的回复:
说跨平台一定比不跨平台好,就和说双性恋一定比异性恋好一样。


人生自是有情痴,此恨不关风与月~
  • 打赏
  • 举报
回复
要用VS2019,MFC还是挺稳定的。就是风格复古,但是清楚套路后还是不错的。Qt也挺好,不过要额外
「已注销」 2021-04-04
  • 打赏
  • 举报
回复
引用 17 楼 赵4老师 的回复:
说跨平台一定比不跨平台好,就和说双性恋一定比异性恋好一样。
跨平台可以采用wine+win32 sdk,适合win32 平台、Linux Unix。据说原来wine for android 编译还申请了专利……
真相重于对错 2021-04-04
  • 打赏
  • 举报
回复
还是用qt吧,这个企业招聘的最多。
  • 打赏
  • 举报
回复
MFC=浪费生命
API写GUI=浪费生命**2

sichuanwww 2021-04-04
  • 打赏
  • 举报
回复
都VS了 直接上手MFC
beordie.cloud 2021-04-03
  • 打赏
  • 举报
回复
直接用mfc开发或者easyx,这些比较简单
亭台六七座 2021-04-03
  • 打赏
  • 举报
回复
引用 楼主 Cmonarch 的回复:
学校的书上教的是基础的知识,像可视化界面怎么编写这种没有,百度了没有找到完整的教程,我用的工具是vs2019,希望各位前辈给点意见,想买本最好用vs编写可视化窗口的书本教材,或者有完整的教学视频的。
MFC 不跨平台 Qt 跨平台
「已注销」 2021-04-02
  • 打赏
  • 举报
回复
引用 楼主 Cmonarch 的回复:
学校的书上教的是基础的知识,像可视化界面怎么编写这种没有,百度了没有找到完整的教程,我用的工具是vs2019,希望各位前辈给点意见,想买本最好用vs编写可视化窗口的书本教材,或者有完整的教学视频的。
今天终于要放假了...... 个人感觉如果是Win32 SDK方式实现,那么程序结构将接近于纯C,可以做到代码逻辑清晰,事件处理代码也可以写到case WM_消息中;但是需要 非常熟悉比较多的API。有很多开源的程序可以参照,比如俄罗斯的Rufus。 数据结构、逻辑业务则可重点体现在C++中;当然C也能通过指针,很好地体现“类”的思想。
棉猴 2021-04-02
  • 打赏
  • 举报
回复
VS2019自带的MFC程序,所见即所得,控件直接拖动,很好用的
ooolinux 2021-04-01
  • 打赏
  • 举报
回复 1
个人觉得SDK纯API方式编写Windows程序已经过时了,效率太低,了解一下原理就可以了,主要是消息机制。 图形用户界面(GUI)编程可以学习C++ Builder,架构先进(和C#一样拖控件),入门比较容易。   C++ Builder是真正的可视化的开发工具。C++ Builder可以用鼠标拖拉控件加上设置属性轻松的“设计”出一个程序的图形用户界面,利用可视的组件/控件像“搭积木”一样,以“所见即所得”的方式搭建应用程序的界面,这也是C++ Builder这个名字中Builder的概念。这样,只需要用C++语言编写业务逻辑代码,类似于DOS下文本界面编程,只要专注于实现业务逻辑功能就可以了,代码非常简洁。数据的输入和表现,都在图形用户界面,非常直观、易用。这就是RAD开发(Rapid Application Development,快速应用程序开发)。 书籍推荐: 《C++Builder 6程序设计教程(第二版)》 (陆卫忠,刘文亮 等编著 /2011-04-01 /科学出版社)(当当网) 《C++Builder 6编程实例精解》(赵明现),PDF,是数字版的,非扫描版的,里面还有一个俄罗斯方块游戏的完整实现。 《精彩C++Builder 6程序设计》(台湾 吴逸贤),里面有10几个简单小游戏的实现,可以自己看懂以后再重写,才是自己掌握的。 《C++ Builder 5高级编程实例精解》(刘滨 编著)都是较大的实用的程序。 C++ Builder 6.0几个示例程序项目源代码下载: C++ Builder第一个程序(模拟聊天室)v1.11 C++ Builder模拟数字双时钟示例(未完成)v0.2.1 C++ Builder纸牌游戏Demo v0.05 C++ Builder不规则图像透明贴图(位图的透明显示)三种方法及简单动画v1.3 C++ Builder写的《ZEC 四则运算练习程序》 海底海星情景v0.9.2 C++ Builder简单电话簿Demo例子v1.11
  • 打赏
  • 举报
回复
引用 6 楼 Cmonarch 的回复:
[quote=引用 5 楼 早打大打打核战争 的回复:]推荐C++Builder,不要浪费自己的时间
假设 无知=0.0000000000...0
那么 用API开发GUI程序=0.0000000000...1
秃头,我就想问问,有没有以vs2019为开发工具的教材或者视频,你们都说的啥哦[/quote]

看见秃头两个子就不想理你~
VC++写GUI真的不推荐,繁琐效率低、几乎没有可视化(除了那个非常简陋的对话框设计器),而且不能跨平台。推荐C++Builder(非商业开发可以用免费的社区版),纯免费的可以用Qt(除了技术支持和用于嵌入式系统开发收费外,其余用途均免费,包括商业开发)。

比如这种效果,用C++Builder 一分钟以内设计出来,如果用VC++的话,熟悉API开发套路的人(比如我 ),也得两个工作日(当然是指从头开始写,如果有类似的源码C&P大法也就两分钟改一下),不熟悉的人一周也未必能写得出来
赵4老师 2021-03-30
  • 打赏
  • 举报
回复
等你学会了以VS2019为开发工具开发的时候,估计微软都出VS2022了。
Cmonarch 2021-03-30
  • 打赏
  • 举报
回复
引用 5 楼 早打大打打核战争 的回复:
推荐C++Builder,不要浪费自己的时间 假设 无知=0.0000000000...0 那么 用API开发GUI程序=0.0000000000...1
秃头,我就想问问,有没有以vs2019为开发工具的教材或者视频,你们都说的啥哦
  • 打赏
  • 举报
回复
推荐C++Builder,不要浪费自己的时间
假设 无知=0.0000000000...0
那么 用API开发GUI程序=0.0000000000...1
Cmonarch 2021-03-30
  • 打赏
  • 举报
回复
引用 2 楼 赵4老师 的回复:
《Visual C++ 游戏开发经典案例详解》
是以vs2019作为开发工具的吗?我只要普通的软件界面设计,上面有吧?
赵4老师 2021-03-30
  • 打赏
  • 举报
回复
最小Windows API图形编程例子:
#pragma comment(lib,"user32")
#pragma comment(lib,"gdi32")
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    PAINTSTRUCT ps;
    HDC hdc;
    HFONT hfont,ohfont;
    RECT r;
    COLORREF oc;

    switch(message) {
    case WM_CLOSE://按Alt+F4退出
        PostQuitMessage(0);
        break;
    case WM_PAINT:
        BeginPaint(hWnd, &ps);
        hdc = ps.hdc; // the device context to draw in
        GetClientRect(hWnd, &r); // Obtain the window's client rectangle
        hfont = CreateFont(200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "宋体");
        ohfont=(HFONT)SelectObject(hdc,hfont);
        oc=SetTextColor(hdc,0x00C080FF);
        SetBkMode(hdc, TRANSPARENT);
        TextOut(hdc,r.left+r.right/2-600, r.top+r.bottom/2-100,"最短画图程序",12);
        SelectObject(hdc,ohfont);
        SetTextColor(hdc,oc);
        DeleteObject(hfont);
        EndPaint(hWnd, &ps);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    MSG msg             = {0};
    WNDCLASS wc         = {0};
    HBRUSH hbrh;
    hbrh=CreateSolidBrush(0x00000000);
    wc.lpfnWndProc      = WndProc;
    wc.hInstance        = hInstance;
    wc.hbrBackground    = hbrh;
    wc.lpszClassName    = "minwindowsapp";
    wc.hCursor          = LoadCursor(NULL,IDC_ARROW);
    if (0==RegisterClass(&wc)) return 1;

    if (NULL==CreateWindow(wc.lpszClassName,
                        "Minimal Windows Application",
                        WS_POPUP|WS_VISIBLE,
                        0,
                        0,
                        GetSystemMetrics(SM_CXSCREEN),
                        GetSystemMetrics(SM_CYSCREEN),
                        0,
                        0,
                        hInstance,
                        NULL))
        return 2;

    while( GetMessage( &msg, NULL, 0, 0 ) > 0 ) {
        DispatchMessage( &msg );
    }
    DeleteObject(hbrh);
    return 0;
}
赵4老师 2021-03-30
  • 打赏
  • 举报
回复
《Visual C++ 游戏开发经典案例详解》
熊猫呀 2021-03-30
  • 打赏
  • 举报
回复
调用 windows 系统 win32 原生API 或者QT 这种三方界面库

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧