windows程序设计教程

2025-11-06 02:47:01

1、打开Visual Studio 2015,如下图所示:

windows程序设计教程

2、选择“文件”->“新建”->“项目”,如下图所示:

windows程序设计教程

3、选择"其他语言"->"Visual C++",如下图所示:

windows程序设计教程

4、弹出Win32应用程序向导对话框,点击“下一步”,如下图所示:

windows程序设计教程

5、进行应用程序设置,点击“完成”,如下图所示:

windows程序设计教程

6、在程序主文件中,添加如下图代码:

// Win32Project1.cpp : 定义应用程序的入口点。

//

#include "stdafx.h"

#include "Win32Project1.h"

#define MAX_LOADSTRING 100

// 全局变量: 

HINSTANCE hInst;                                // 当前实例

WCHAR szTitle[MAX_LOADSTRING];                  // 标题栏文本

WCHAR szWindowClass[MAX_LOADSTRING];            // 主窗口类名

// 此代码模块中包含的函数的前向声明: 

ATOM                MyRegisterClass(HINSTANCE hInstance);

BOOL                InitInstance(HINSTANCE, int);

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

INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,

                     _In_opt_ HINSTANCE hPrevInstance,

                     _In_ LPWSTR    lpCmdLine,

                     _In_ int       nCmdShow)

{

    UNREFERENCED_PARAMETER(hPrevInstance);

    UNREFERENCED_PARAMETER(lpCmdLine);

    // TODO: 在此放置代码。

    // 初始化全局字符串

    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);

    LoadStringW(hInstance, IDC_WIN32PROJECT1, szWindowClass, MAX_LOADSTRING);

    MyRegisterClass(hInstance);

    // 执行应用程序初始化: 

    if (!InitInstance (hInstance, nCmdShow))

    {

        return FALSE;

    }

    HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WIN32PROJECT1));

    MSG msg;

    // 主消息循环: 

    while (GetMessage(&msg, nullptr, 0, 0))

    {

        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))

        {

            TranslateMessage(&msg);

            DispatchMessage(&msg);

        }

    }

    return (int) msg.wParam;

}

//

//  函数: MyRegisterClass()

//

//  目的: 注册窗口类。

//

ATOM MyRegisterClass(HINSTANCE hInstance)

{

    WNDCLASSEXW wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);

    wcex.style          = CS_HREDRAW | CS_VREDRAW;

    wcex.lpfnWndProc    = WndProc;

    wcex.cbClsExtra     = 0;

    wcex.cbWndExtra     = 0;

    wcex.hInstance      = hInstance;

    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WIN32PROJECT1));

    wcex.hCursor        = LoadCursor(nullptr, IDC_ARROW);

    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);

    wcex.lpszMenuName   = MAKEINTRESOURCEW(IDC_WIN32PROJECT1);

    wcex.lpszClassName  = szWindowClass;

    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

    return RegisterClassExW(&wcex);

}

//

//   函数: InitInstance(HINSTANCE, int)

//

//   目的: 保存实例句柄并创建主窗口

//

//   注释: 

//

//        在此函数中,我们在全局变量中保存实例句柄并

//        创建和显示主程序窗口。

//

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

   hInst = hInstance; // 将实例句柄存储在全局变量中

   HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);

   if (!hWnd)

   {

      return FALSE;

   }

   ShowWindow(hWnd, nCmdShow);

   UpdateWindow(hWnd);

   return TRUE;

}

//

//  函数: WndProc(HWND, UINT, WPARAM, LPARAM)

//

//  目的:    处理主窗口的消息。

//

//  WM_COMMAND  - 处理应用程序菜单

//  WM_PAINT    - 绘制主窗口

//  WM_DESTROY  - 发送退出消息并返回

//

//

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

    switch (message)

    {

    case WM_COMMAND:

        {

            int wmId = LOWORD(wParam);

            // 分析菜单选择: 

            switch (wmId)

            {

            case IDM_ABOUT:

                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);

                break;

            case IDM_EXIT:

                DestroyWindow(hWnd);

                break;

            default:

                return DefWindowProc(hWnd, message, wParam, lParam);

            }

        }

        break;

    case WM_PAINT:

        {

            PAINTSTRUCT ps;

            HDC hdc = BeginPaint(hWnd, &ps);

            // TODO: 在此处添加使用 hdc 的任何绘图代码...

MessageBox(NULL, TEXT("Hello World!"), TEXT("Windows程序设计之Hello World!"), MB_OK);

            EndPaint(hWnd, &ps);

        }

        break;

    case WM_DESTROY:

        PostQuitMessage(0);

        break;

    default:

        return DefWindowProc(hWnd, message, wParam, lParam);

    }

    return 0;

}

// “关于”框的消息处理程序。

INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{

    UNREFERENCED_PARAMETER(lParam);

    switch (message)

    {

    case WM_INITDIALOG:

        return (INT_PTR)TRUE;

    case WM_COMMAND:

        if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)

        {

            EndDialog(hDlg, LOWORD(wParam));

            return (INT_PTR)TRUE;

        }

        break;

    }

    return (INT_PTR)FALSE;

}

windows程序设计教程

7、选择“调试”->"开始执行(不调试)",如下图所示:

windows程序设计教程

8、编译生成,弹出提示框,选择“是”,如下图所示:

windows程序设计教程

9、运行以后,会弹出一个提示框,至此一个简单的Windows程序编写的案例就完成了,如下图所示:

windows程序设计教程

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢