Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
API_lab_Гребенюк(всі лістинги л_р).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
416.26 Кб
Скачать

Гребенюк І. А. Системне програмування засобами АPI ПЗС-1644

Лабораторна робота 1

Програма 1

#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)

{

int masBox = MessageBox(0, "Попереджувальне", "Гребенюк ПЗС-1644", MB_ICONEXCLAMATION|MB_YESNOCANCEL);

if(masBox == 6) MessageBox(0, "Ви натиснули YES", "Гребенюк ПЗС-1644", MB_ICONINFORMATION|MB_OK);

else if(masBox == 7) MessageBox(0, "Ви натиснули NO", "Гребенюк ПЗС-1644", MB_ICONINFORMATION|MB_OK);

else MessageBox(0, "Ви натиснули Cancel", "Гребенюк ПЗС-1644", MB_ICONINFORMATION|MB_OK);

}

Програма 2

#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)

{

int masBox = MessageBox(0, "Це просто інформація", "Гребенюк ПЗС-1644", MB_ICONINFORMATION|MB_OK);

}

Програма 3

#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)

{

int masBox = MessageBox(0, "Це питальне повідомлення", "Гребенюк ПЗС-1644", MB_ICONQUESTION|MB_OKCANCEL);

switch(masBox){

case 1: MessageBox(0, "Ви натиснули ОК", "Гребенюк ПЗС-1644", MB_ICONINFORMATION|MB_OK); break;

default: MessageBox(0, "Ви натиснули Cancel", "Гребенюк ПЗС-1644", MB_ICONINFORMATION|MB_OK);

}

}

Програма 4

#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)

{

int masBox = MessageBox(0, "Це повідомлення про помилку", "Гребенюк ПЗС-1644", MB_ICONSTOP|MB_HELP);

}

Лабораторна робота 2

#include <windows.h>

const char g_szClassName[] = "myWindowClass";

int GetTextSize (LPSTR a0)

{

for (int iLoopCounter = 0; ;iLoopCounter++)

{

if (a0 [iLoopCounter] == '\0')

return iLoopCounter;

}

}

LPSTR TextArray [] = {

"Виконав Гребенюк Іван"

};

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

{

switch(msg)

{

case WM_CLOSE:

DestroyWindow(hwnd);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

case WM_PAINT:

{

PAINTSTRUCT ps;

HDC hdc = BeginPaint (hwnd, &ps);

TextOut (hdc,

150,

150,

TextArray [0],

GetTextSize (TextArray [0]));

EndPaint (hwnd, &ps);

}

break;

default:

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

}

return 0;

}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

LPSTR lpCmdLine, int nCmdShow)

{

WNDCLASSEX wc;

HWND hwnd;

MSG Msg;

wc.cbSize = sizeof(WNDCLASSEX);

wc.style = 0;

wc.lpfnWndProc = WndProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInstance;

wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wc.hCursor = LoadCursor(NULL, IDC_ARROW);

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

wc.lpszMenuName = NULL;

wc.lpszClassName = g_szClassName;

wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if(!RegisterClassEx(&wc))

{

MessageBox(NULL, "Гребенюк Іван 2 лаб", "Помилка при створенні вікна!",

MB_ICONSTOP | MB_OK);

return 0;

}

hwnd = CreateWindowEx(

WS_EX_CLIENTEDGE,

g_szClassName,

"Гребенюк Іван 2 лаб ПЗС-1644",

WS_SYSMENU,

800, 30, 400, 700,

NULL, NULL, hInstance, NULL);

HBRUSH brush = CreateSolidBrush(RGB(100, 100, 100));

SetClassLongPtr(hwnd, GCLP_HBRBACKGROUND, (LONG)brush);

ShowWindow(hwnd, nCmdShow);

UpdateWindow(hwnd);

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

{

TranslateMessage(&Msg);

DispatchMessage(&Msg);

}

return Msg.wParam;

}