KaaPexei 发表于 2021-9-3 21:30

首先纠正一下题主的问题,程序不能“变成”有界面的东西,你所谓的“有界面的东西”属于一类程序。

看到点赞最多的回答下的评论(对不起请允许我笑一会儿),我帮你百度到了一篇MFC版贪吃蛇教程:手把手教MFC贪吃蛇
顺便提醒一下,学MFC的话首先一定要知道程序的入口WinMain函数在哪里。

当然你也可以学其他的界面编程,比如gtk,qt等。

最后,如果你还有类似的问题比如“怎么把程序变成能在手机上使用的东西”等,欢迎邀请我。

c0d3n4m 发表于 2021-9-3 21:32

我觉得题主误解了,程序就是一段可以运行的代码。题主可能刚开始学c/c++,比较功利,不过另一个方面,界面的东西也比较直观,可以给人直接的反馈。楼上的朋友推荐了一些Windows下界面框架的东西。我觉得题主现在应该做的是找一本数据结构的书,好好把数据结构学一学。

franciscochonge 发表于 2021-9-3 21:37

Qt不谢
一周速成GUI一周速成网络+多线程,嗯很简单的(笑

闲鱼技术01 发表于 2021-9-3 21:42

//代码来自MSDN,链接Module 1. Your First Windows Program (Windows)

#ifndef UNICODE
#define UNICODE
#endif

#include <windows.h>

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow)
{
    // Register the window class.
    const wchar_t CLASS_NAME[]= L"Sample Window Class";
   
    WNDCLASS wc = { };

    wc.lpfnWndProc   = WindowProc;
    wc.hInstance   = hInstance;
    wc.lpszClassName = CLASS_NAME;

    RegisterClass(&wc);

    // Create the window.

    HWND hwnd = CreateWindowEx(
      0,                              // Optional window styles.
      CLASS_NAME,                     // Window class
      L"Learn to Program Windows",    // Window text
      WS_OVERLAPPEDWINDOW,            // Window style

      // Size and position
      CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,

      NULL,       // Parent window   
      NULL,       // Menu
      hInstance,// Instance handle
      NULL      // Additional application data
      );

    if (hwnd == NULL)
    {
      return 0;
    }

    ShowWindow(hwnd, nCmdShow);

    // Run the message loop.

    MSG msg = { };
    while (GetMessage(&msg, NULL, 0, 0))
    {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    }

    return 0;
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_DESTROY:
      PostQuitMessage(0);
      return 0;

    case WM_PAINT:
      {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hwnd, &ps);

            FillRect(hdc, &ps.rcPaint, (HBRUSH) (COLOR_WINDOW+1));

            EndPaint(hwnd, &ps);
      }
      return 0;

    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

pc8888888 发表于 2021-9-3 21:43

为什么“程序”就是“有界面的东西”?

七彩极 发表于 2021-9-3 21:47

逃离控制台不要入微软大坑,加入我们Qt门派吧!(注意不是TM Qt语音)

kirin77 发表于 2021-9-3 21:55

左有微软自家的winSDK,MFC,ATL
右有第三方的Qt,轮子哥的gui

当然你也可以用C#unsafe合着WPF,WinForm来写,不过这样你会被C++和C#的人联合打死x_x

以上名词均可百度并寻找教程学习

量子计算9 发表于 2021-9-3 21:57

你需要一本mfc教程或者qt
→_→~mfc的确挺恶心的。还是qt好

zifa2003293 发表于 2021-9-3 22:05

这是曾困扰我很久的一个问题!我能理解提问的朋友想知道什么!仿佛看到八年前的自己一样亲切!手机码字借别字见谅!

回答:去找一本书 这里面会教你使用各种api在windows下创建窗口,使用gdi画东画西,学到这里就差不多了,我当年就是学到这里做了个五子棋…
然后进阶可以去另外找资料学习一下d3d和opengl!
学习过程中请尽量使用百度查找各种api的用途!

加油吧骚年,向着夕阳的方向奔跑!

rustum 发表于 2021-9-3 22:13

需要安利 @vczh 的gaclib吗→_→
页: 1 [2] 3
查看完整版本: 怎么用C++写图形界面程序?