c++ gui 编程资源

标签 c++ user-interface

我正在参加 Skills USA 编程比赛,我不确定比赛将如何进行,但我知道一些规则。最大的问题是你不能带任何源代码。我也听老师说QT Creator是不允许的。

如果我要在没有 QT(或任何其他库包)的情况下使用 C++ 进行编码,但我必须使用 Windows 本地的东西...我应该怎么做。

我在一个网站上找到了这组代码。它所做的只是创建一个窗口,我会更多地探索这个选择,但看看它有多少代码......

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

static char sClassName[]  = "MyClass";
static HINSTANCE zhInstance = NULL;

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
        WNDCLASSEX WndClass;
        HWND hwnd;
        MSG Msg;

        zhInstance = hInstance;

        WndClass.cbSize        = sizeof(WNDCLASSEX);
        WndClass.style         = NULL;
        WndClass.lpfnWndProc   = WndProc;
        WndClass.cbClsExtra    = 0;
        WndClass.cbWndExtra    = 0;
        WndClass.hInstance     = zhInstance;
        WndClass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
        WndClass.hCursor       = LoadCursor(NULL, IDC_ARROW);
        WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
        WndClass.lpszMenuName  = NULL;
        WndClass.lpszClassName = sClassName;
        WndClass.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

        if(!RegisterClassEx(&WndClass)) {
                MessageBox(0, "Error Registering Class!", "Error!", MB_ICONSTOP | MB_OK);
                return 0;
        }

        hwnd = CreateWindowEx(WS_EX_STATICEDGE, sClassName, "db Tutorial", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 

CW_USEDEFAULT,
                    320, 240, NULL, NULL, zhInstance, NULL);

        if(hwnd == NULL) {
                MessageBox(0, "Error Creating Window!", "Error!", MB_ICONSTOP | MB_OK);
                return 0;
        }

        ShowWindow(hwnd, nCmdShow);
        UpdateWindow(hwnd);

        while(GetMessage(&Msg, NULL, 0, 0)) {
                TranslateMessage(&Msg);
                DispatchMessage(&Msg);
        }

        return Msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
        switch(Message) {
                case WM_CLOSE:
                        DestroyWindow(hwnd);
                        break;
                case WM_DESTROY:
                        PostQuitMessage(0);
                        break;
                default:
                        return DefWindowProc(hwnd, Message, wParam, lParam);
        }
        return 0;
}

学习更多这方面的知识我不会有问题,但由于不允许我携带源代码,我将不得不记住其中的大部分内容。那没有发生。

有没有什么方法可以在 C++ 中创建窗口/按钮而不需要我使用 QT 之类的东西或键入一页代码来创建一个空窗口?我看过谷歌,一切都是关于 QT 创建者的。任何帮助都会很棒。

我不是在寻找“简单的出路”,只是我能够记住并当场输入的东西,而无需访问 c++ 教科书之外的示例。

最佳答案

我查看了 web site它说
计算机程序设计

Competition consists of project coding and output, a skill-related written test and an interview. The contestants will receive a packet that includes instructions to the written test and each of the two projects. Each project's specifications are written for Visual Basic, Java, C#, C++ and RPG. The projects will be saved on the Desktop in a folder called "SkillsUSA Contestant#_." All projects will be downloaded to a jump drive or diskette (whichever the student prefers) and transferred to a main station to be printed, both code and screen.

似乎您可以使用上述任何一种语言。您将获得一两个作业,并被要求对其进行编码。如果要包含任何 UI,作为 C++ 编码器,您将处于劣势。 VB 编码人员可能最容易分配 UI 类型。

关于c++ gui 编程资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9536684/

相关文章:

android - 有人知道这个 ui 组件叫什么吗?

c++使用方法作为函数的参数

c++ - 在 WPF、wxWidgets、Win32 API 和 MFC 之间进行选择

c# - .NET 图形用户界面——C# 与 C++/CLI

c++ - 使用默认参数转发引用?

user-interface - Gui 测试花费的时间太长 - 您的方法是什么?

java - 如何从本地文件系统在 JEditorPane 中显示图像?

c# - Windows 8 商店应用程序 C++ 文件访问

c++ - 如何在 Eclipse (C++) 中设置 makefile?

c++ - 在 C++ 中什么是值语义类?我看到类似 "This component implements a fully value-semantic container class"的类描述