Гребенюк І. А. Системне програмування засобами А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;
}
