Int winapi winmain ( hinstance hinst, hinstance, lpstr, int ) — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Int winapi winmain ( hinstance hinst, hinstance, lpstr, int )

2017-11-28 197
Int winapi winmain ( hinstance hinst, hinstance, lpstr, int ) 0.00 из 5.00 0 оценок
Заказать работу

{

char szClassName[]="MainWindow";

char szTitle[]="Программа 2-1";

MSG Msg;

WNDCLASS wc;

// --- Обнуление и инициализация структуры wc

memset (&wc, 0, sizeof(wc));

wc.lpfnWndProc = WndProc;

wc.hInstance = hInst;

wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);

wc.hCursor = LoadCursor (NULL, IDC_ARROW);

wc.hbrBackground = GetStockBrush (LTGRAY_BRUSH);

wc.lpszClassName = szClassName;

// --- Регистрация класса главного окна в системе

RegisterClass (&wc);

// --- Создние главного окна

HWND hwnd = CreateWindow (szClassName, szTitle,

WS_OVERLAPPEDWINDOW, 10, 10, 250, 100,

HWND_DESKTOP, NULL, hInst, NULL);

// --- Показать главное окно

ShowWindow (hwnd, SW_SHOWNORMAL);

// --- Цикл обработки оконных сообщений

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

DispatchMessage (&Msg);

// --- Возврат в систему

return 0;

}

/* --- Оконная функция главного окна */

LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

Switch (msg)

{ case WM_DESTROY:

PostQuitMessage (0);

return 0;

default:

return DefWindowProc (hwnd, msg, wParam, lParam);

}

}


// File 8-3.cpp

#define STRICT

#include <windows.h>

#include <windowsx.h>

#include <commctrl.h>

#include <math.h> // sin(), acos()

#include "8-3.h"

/* --- Глобальные переменные прорграммы */

//int nPhase=0; // Сдвиг фаз

int nFreq=1; // Отношение частот

HINSTANCE hInstance;

HWND hwndGraph, hwndTrack, hwndScroll, hwndStatic;

HPEN hRedPen;

HBRUSH hGreyBrush;

SCROLLINFO sinfo;

/* --- Главная функция */

Int WINAPI WinMain (HINSTANCE hInst, HINSTANCE, LPSTR, int)

{

char szClassName[]="MainWindow";

char szTitle[]="Программа 8-3";

MSG Msg;

WNDCLASS wc;

// --- Обнуление и инициализация структуры wc главного окна

hInstance = hInst;

InitCommonControls();

memset (&wc, 0, sizeof(wc));

wc.lpfnWndProc = WndProc;

wc.hInstance = hInst;

wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);

wc.hCursor = LoadCursor (NULL, IDC_ARROW);

//wc.hbrBackground = GetStockBrush (LTGRAY_BRUSH);

hGreyBrush = CreateSolidBrush (RGB (160, 160, 160));

wc.hbrBackground = hGreyBrush;

wc.lpszClassName = szClassName;

// --- Регистрация класса главного окна в системе

RegisterClass (&wc);

// --- Инициализация структуры wc окна графики

wc.lpszClassName = "Graph";

wc.lpfnWndProc = GraphWndProc;

wc.hbrBackground = GetStockBrush (WHITE_BRUSH);

// --- Регистрация класса окна графики в системе

RegisterClass (&wc);

// --- Создние главного окна

HWND hwnd = CreateWindow (szClassName, szTitle,

WS_OVERLAPPEDWINDOW, 10, 10, 0, 0,

HWND_DESKTOP, NULL, hInst, NULL);

// --- Показать главное окно

ShowWindow (hwnd, SW_SHOWNORMAL);

// --- Цикл обработки оконных сообщений

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

DispatchMessage (&Msg);

// --- Возврат в систему

return 0;

}

/* --- Оконная функция главного окна */

LRESULT CALLBACK WndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)

{

Switch (msg)

{ HANDLE_MSG (hwnd, WM_CREATE, OnCreate);

HANDLE_MSG (hwnd, WM_HSCROLL, OnHScroll);

HANDLE_MSG (hwnd, WM_GETMINMAXINFO, OnGetMinMaxInfo);

HANDLE_MSG (hwnd, WM_DESTROY, OnDestroy);

default:

return DefWindowProc (hwnd, msg, wParam, lParam);

}

}

/* --- Обработчик сообщения WM_CREATE */

BOOL OnCreate (HWND hwnd, LPCREATESTRUCT)

{

// --- Окно графики

hRedPen = CreatePen (PS_SOLID, 1, RGB (255, 0, 0));

hwndGraph = CreateWindow ("Graph", NULL,

WS_CHILD|WS_VISIBLE|WS_BORDER,

10, 10, 220, 220,

hwnd, NULL, hInstance, NULL);

// --- Линейка с ползунком

hwndTrack = CreateWindowEx (0, TRACKBAR_CLASS, NULL,

WS_CHILD|WS_VISIBLE|TBS_AUTOTICKS,

250, 55, 208, 30,

hwnd, NULL, hInstance, NULL);

SendMessage (hwndTrack, TBM_SETRANGE, TRUE, MAKELPARAM(1,10));

SendMessage (hwndTrack, TBM_SETPAGESIZE, 0, 1);

SendMessage (hwndTrack, TBM_SETPOS, TRUE, 1);

// --- Поясняющие надписи на линейке с ползунком

CreateWindow ("STATIC", "Отношение частот по осям",

WS_CHILD|WS_VISIBLE|SS_LEFT,

260, 25, 220, 22,

hwnd, NULL, hInstance, NULL);

CreateWindow ("STATIC", "1 2 3 4 5 6 7 8 9 10",

WS_CHILD|WS_VISIBLE|SS_LEFT,

260, 85, 220, 22,

hwnd, NULL, hInstance, NULL);

// --- Линейка прокрутки

sinfo.cbSize = sizeof(SCROLLINFO);

sinfo.fMask = SIF_ALL;

sinfo.nMin = 0;

sinfo.nMax = 180;

sinfo.nPage = 15;

sinfo.nPos = 0;

hwndScroll = CreateWindow ("SCROLLBAR", NULL,

WS_CHILD|WS_VISIBLE,

260, 160, 200, 20,

hwnd, NULL, hInstance, NULL);

SetScrollInfo (hwndScroll, SB_CTL,&sinfo, TRUE);

// --- Поясняющие надписи для линейки прокрутки

CreateWindow ("STATIC", "Сдвиг фаз в градусах",

WS_CHILD|WS_VISIBLE|SS_LEFT,

280, 130, 200, 22,

hwnd, NULL, hInstance, NULL);

CreateWindow ("STATIC", "0",

WS_CHILD|WS_VISIBLE|SS_LEFT,

280, 180, 22, 22,

hwnd, NULL, hInstance, NULL);

CreateWindow ("STATIC", "180",

WS_CHILD|WS_VISIBLE|SS_LEFT,

430, 180, 40, 22,

hwnd, NULL, hInstance, NULL);

// --- Статический элемент для вывода сдвига фаз

hwndStatic = CreateWindow ("STATIC", "00",

WS_CHILD|WS_VISIBLE|SS_LEFT,

355, 200, 50, 20,

hwnd, NULL, hInstance, NULL);

return TRUE;

}


Поделиться с друзьями:

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.016 с.