Содержимое папки проекта

Заголовочные файлы
  Resource.h Стандартный файл заголовков, в котором определяются новые идентификаторы ресурсов. В Microsoft Visual C++ выполняется чтение и обновление содержимого этого файла.
  stdafx.h Эти файлы используются для построения файла предкомпилируемых заголовков (PCH) Пример.pch и файла предкомпилируемых типов StdAfx.obj.
  targetver.h  
  Пример.h Файл заголовков.
Файлы исходного кода
  Пример.cpp Основной исходный файл приложения.
  stdafx.cpp Исходный файл, содержащий только стандартные включаемые модули
Файлы ресурсов
  Пример.rc Перечень всех ресурсов Microsoft Windows, используемых в программе. К ним относятся значки, растровые изображения и курсоры, хранящиеся в подкаталоге RES. Этот файл можно редактировать непосредственно в Microsoft Visual C++.
  Пример.ico Файл значка для приложения (32x32). Этот значок включается в основной файл ресурсов Пример.rc.
  small.ico Файл, содержащий уменьшенную версию значка приложения (16x16). Этот значок включается в основной файл ресурсов Пример.rc.
Вспомогательные файлы
  ReadMe.txt В этом файле представлена сводка содержимого всех файлов, входящих в состав приложения Пример.
  Пример.vcproj Основной файл проекта VC++, автоматически создаваемый с помощью мастера приложений. В файле представлены сведения о версии Visual C++, использованной при создании файла, а также о параметрах платформы, конфигурации и проекта, заданных с помощью мастера приложений.
  Пример.sln Основной файл решения. В решении может быть несколько проектов.
  Пример.ncb Файл IntelliSence Database - подсистемы, которая делает подсказки по языку.

1.2. Код простейшего приложения

Это приложение создано автоматически с помощью мастера приложений. В него добавлены только комментарии.

// Пример.cpp: определяет точку входа для приложения.

//

#include "stdafx.h"

#include "Пример.h"

#define MAX_LOADSTRING 100 // определяем константу MAX_LOADSTRING

// Глобальные переменные:

HINSTANCE hInst; // текущий экземпляр

TCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка

TCHAR 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);

//функция _tWinMain - точка входа в приложение

int APIENTRY _tWinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPTSTR lpCmdLine,

int nCmdShow)

{//Этот макрос задает значения параметрам, которые не используются

UNREFERENCED_PARAMETER(hPrevInstance);

UNREFERENCED_PARAMETER(lpCmdLine);

// TODO: разместите код здесь.

MSG msg; // сообщение

HACCEL hAccelTable; //таблица акселераторов

// Инициализация глобальных строк

LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);

LoadString(hInstance, IDC_MY, szWindowClass, MAX_LOADSTRING);

// Вызывать функцию для регистрации класса приложения

MyRegisterClass(hInstance);

// Выполнить инициализацию приложения:

if (!InitInstance (hInstance, nCmdShow))

{

return FALSE;

}

// Загрузить ресурс – таблицу акселераторов

hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MY));

// Цикл основного сообщения:

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

{

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

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

return (int) msg.wParam;

}

//

// ФУНКЦИЯ: MyRegisterClass()

//

// НАЗНАЧЕНИЕ: регистрирует класс окна.

//

// КОММЕНТАРИИ:

//

// Эта функция и ее использование необходимы только в случае, если нужно, чтобы данный код был совместим с системами Win32, не имеющими функции RegisterClassEx' которая была добавлена в Windows 95. Вызов этой функции важен для того, чтобы приложение получило "качественные" мелкие значки и установило связь с ними.

//

ATOM MyRegisterClass(HINSTANCE hInstance)

{

WNDCLASSEX 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_MY));

wcex.hCursor = LoadCursor(NULL, IDC_ARROW);

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

wcex.lpszMenuName = MAKEINTRESOURCE(IDC_MY);

wcex.lpszClassName = szWindowClass;

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

return RegisterClassEx(&wcex);

}

//

// ФУНКЦИЯ: InitInstance(HINSTANCE, int)

// НАЗНАЧЕНИЕ: сохраняет обработку экземпляра и создает главное окно.

// КОММЕНТАРИИ:

// В данной функции дескриптор экземпляра сохраняется в глобальной переменной, а также создается и выводится на экран главное окно программы.

//

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

HWND hWnd;

hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной

// Создать окно:

hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

// Если окно не создалось, то завершить работу

if (!hWnd)

{

return FALSE;

}

ShowWindow(hWnd, nCmdShow); //отобразить окно

UpdateWindow(hWnd); //обновить содержимое окна (сообщение WM_PAINT)

return TRUE;

}

//

// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)

// НАЗНАЧЕНИЕ: обрабатывает сообщения в главном окне.

// WM_COMMAND - обработка меню приложения

// WM_PAINT -Закрасить главное окно

// WM_DESTROY - ввести сообщение о выходе и вернуться.

//

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

{

int wmId, wmEvent;

PAINTSTRUCT ps;

HDC hdc;

switch (message)

{

case WM_COMMAND:

wmId = LOWORD(wParam); // Идентификатор пункта меню или

//элемента управления

wmEvent = HIWORD(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:

hdc = BeginPaint(hWnd, &ps);

// TODO: добавьте любой код отрисовки...

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;

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: