更改默认代码Visual Studio 2015社区

爱德华·卡拉克

如何更改VS为Win32项目自动生成的代码?代替这个:

// testproj.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "testproj.h"

#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE hInst;                                // current instance
WCHAR szTitle[MAX_LOADSTRING];                  // The title bar text
WCHAR szWindowClass[MAX_LOADSTRING];            // the main window class name

// Forward declarations of functions included in this code module:
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: Place code here.

    // Initialize global strings
    LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadStringW(hInstance, IDC_TESTPROJ, szWindowClass, MAX_LOADSTRING);
    MyRegisterClass(hInstance);

    // Perform application initialization:
    if (!InitInstance (hInstance, nCmdShow))
    {
        return FALSE;
    }

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

    MSG msg;

    // Main message loop:
    while (GetMessage(&msg, nullptr, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

    return (int) msg.wParam;
}



//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
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_TESTPROJ));
    wcex.hCursor        = LoadCursor(nullptr, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = MAKEINTRESOURCEW(IDC_TESTPROJ);
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

    return RegisterClassExW(&wcex);
}

//
//   FUNCTION: InitInstance(HINSTANCE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   hInst = hInstance; // Store instance handle in our global variable

   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;
}

//
//  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND  - process the application menu
//  WM_PAINT    - Paint the main window
//  WM_DESTROY  - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        {
            int wmId = LOWORD(wParam);
            // Parse the menu selections:
            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: Add any drawing code that uses hdc here...
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

// Message handler for about box.
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;
}

我希望它自动生成一些其他代码。我该怎么办?

编辑:另外,如何使VS不为全局生成预编译的标头(我知道如何为每个项目更改它,但这很烦人)。以及如何在A默认情况下而不是Win32下使用Win32版本W

https://msdn.microsoft.com/zh-cn/library/ms185319.aspx

找到包含模板的.zip文件。默认情况下,此文件位于
\ My Documents \ Visual Studio版本\ My Exported Templates \

解压缩.zip文件。

修改或删除当前模板文件,或向模板添加新文件。

打开,修改和保存.vstemplate XML文件,以处理更新的行为或新文件。有关.vstemplate架构的更多信息,请参见Visual Studio模板架构参考。有关可以在源文件中进行参数化的更多信息,请参见模板参数。

选择模板中的文件,右键单击,单击“发送到”,然后单击“压缩(压缩)文件夹”。您选择的文件被压缩为.zip文件。

将新的.zip文件放在与旧的.zip文件相同的目录中。

删除提取的模板文件和旧的模板.zip文件。

(以管理员身份)启动Developer Command Prompt实例(在开始菜单上,在Visual Studio 2010 / Visual Studio Tools / Developer Command Prompt下)。

运行以下命令:devenv / installvstemplates。

上面提到的其他事情也可以更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Visual Studio 2015(社区)中的Python(WinPython 3.4)抛出KeyError

来自分类Dev

在Visual Studio 2015社区中看不到“将部署包创建为zip文件”选项

来自分类Dev

Visual Studio 2015社区版中的WIC Explorer

来自分类Dev

Visual Studio 2015社区安装更新1失败

来自分类Dev

Visual Studio 2015社区-XAML Desginer加载速度极慢

来自分类Dev

浏览器链接在Visual Studio 2015社区中不起作用

来自分类Dev

Visual Studio 2015社区版是否具有MVC模板?

来自分类Dev

Visual Studio社区2015更新1生成问题

来自分类Dev

在Visual Studio 2015社区上使用Lync 2013 SDK开发吗?

来自分类Dev

Visual Studio 2015社区-调试器行为异常

来自分类Dev

Visual Studio 2015社区中的Crystal Reports

来自分类Dev

是否可以获取Codelense for Visual Studio 2015社区版?

来自分类Dev

更改默认版本的MSSqlLocalDB for Visual Studio 2015

来自分类Dev

从Visual Studio 2013专业版升级到Visual Studio 2015社区

来自分类Dev

Visual Studio 2015社区在Windows 10上不断损坏

来自分类Dev

Visual Studio 2015(社区)中的Python(WinPython 3.4)抛出KeyError

来自分类Dev

Visual Studio 2015社区版是否支持Roslyn?

来自分类Dev

Visual Studio社区2015:空闲时具有较高的CPU

来自分类Dev

NSIS安装程序和Visual Studio 2015社区版

来自分类Dev

Visual Studio 2015社区-调试器行为异常

来自分类Dev

Visual Studio 2015社区不会安装Windows SDK

来自分类Dev

Visual Studio 2015社区版本

来自分类Dev

Visual Studio 2015社区Interop.OSVersionHelper异常

来自分类Dev

运行Microsoft Visual Studio 2015社区版时出错

来自分类Dev

在Visual Studio Web Express 2013或Visual Studio 2015社区中调试JavaScript

来自分类Dev

开始安装时 Microsoft Visual Studio 2015 社区崩溃

来自分类Dev

Visual Studio 2015 和 Visual Studio 2017(社区版)+ Unity

来自分类Dev

无法在 Visual Studio 社区 2015 中完全加载项目

来自分类Dev

不会抛出 STL 异常 Visual Studio 2015 社区版

Related 相关文章

  1. 1

    Visual Studio 2015(社区)中的Python(WinPython 3.4)抛出KeyError

  2. 2

    在Visual Studio 2015社区中看不到“将部署包创建为zip文件”选项

  3. 3

    Visual Studio 2015社区版中的WIC Explorer

  4. 4

    Visual Studio 2015社区安装更新1失败

  5. 5

    Visual Studio 2015社区-XAML Desginer加载速度极慢

  6. 6

    浏览器链接在Visual Studio 2015社区中不起作用

  7. 7

    Visual Studio 2015社区版是否具有MVC模板?

  8. 8

    Visual Studio社区2015更新1生成问题

  9. 9

    在Visual Studio 2015社区上使用Lync 2013 SDK开发吗?

  10. 10

    Visual Studio 2015社区-调试器行为异常

  11. 11

    Visual Studio 2015社区中的Crystal Reports

  12. 12

    是否可以获取Codelense for Visual Studio 2015社区版?

  13. 13

    更改默认版本的MSSqlLocalDB for Visual Studio 2015

  14. 14

    从Visual Studio 2013专业版升级到Visual Studio 2015社区

  15. 15

    Visual Studio 2015社区在Windows 10上不断损坏

  16. 16

    Visual Studio 2015(社区)中的Python(WinPython 3.4)抛出KeyError

  17. 17

    Visual Studio 2015社区版是否支持Roslyn?

  18. 18

    Visual Studio社区2015:空闲时具有较高的CPU

  19. 19

    NSIS安装程序和Visual Studio 2015社区版

  20. 20

    Visual Studio 2015社区-调试器行为异常

  21. 21

    Visual Studio 2015社区不会安装Windows SDK

  22. 22

    Visual Studio 2015社区版本

  23. 23

    Visual Studio 2015社区Interop.OSVersionHelper异常

  24. 24

    运行Microsoft Visual Studio 2015社区版时出错

  25. 25

    在Visual Studio Web Express 2013或Visual Studio 2015社区中调试JavaScript

  26. 26

    开始安装时 Microsoft Visual Studio 2015 社区崩溃

  27. 27

    Visual Studio 2015 和 Visual Studio 2017(社区版)+ Unity

  28. 28

    无法在 Visual Studio 社区 2015 中完全加载项目

  29. 29

    不会抛出 STL 异常 Visual Studio 2015 社区版

热门标签

归档