Загрузил Анатолий Матусевич

Лабораторная работа 5

реклама
Учреждение «Университет «Туран»
Факультет «Академия кино и телевидения»
Специальность «Вычислительная техника
и программное обеспечение»
Лабораторная работа
По дисциплине:
«Системное программирование»
Выполнил: студент группы ВТПО 20-1
Матусевич А.С.
case WM_CREATE:
hc = CreateSolidBrush(RGB(0, 0, 0));
hc2 = CreateSolidBrush(RGB(255, 255, 255));
hb1 = CreateWindowExW(0, L"Edit", L"",
WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | WS_BORDER,
10, 50, 200, 20, hWnd, 0, h, NULL);
hb2 = CreateWindowExW(0, L"Edit", L"",
WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | WS_BORDER,
10, 100, 200, 20, hWnd, 0, h, NULL);
break;
case WM_CTLCOLOREDIT:
if (lParam == (int)hb1) {
SetTextColor((HDC)wParam, RGB(255, 255, 255));
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)hc;
}
if (lParam == (int)hb2) {
SetTextColor((HDC)wParam, RGB(0, 0, 0));
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)hc2;
}
break;
#include <Windows.h>
LRESULT CALLBACK winproc(HWND, UINT, WPARAM, LPARAM);
WNDCLASSEXW ws; //струкутра для регистрации класса окон
const wchar_t* wn = L"class1"; //имя класса
MSG msg; //для сообщения
HWND hwnd, hb1, hb2; //для дескриптора окна
HBRUSH hc, hc2;
HINSTANCE h;
int CALLBACK WinMain(
_In_ HINSTANCE hInstance,
_In_ HINSTANCE hPrevInstance,
_In_ LPSTR lpCmdLine,
_In_ int nCmdShow
)
{
h = hInstance; ws.cbSize = sizeof(WNDCLASSEXW); ws.cbClsExtra = 0;
ws.cbWndExtra = 0; ws.hIcon = LoadIcon(NULL, IDI_APPLICATION);
ws.hCursor = LoadCursor(NULL, IDC_ARROW);
ws.hbrBackground = CreateSolidBrush(RGB(0, 255, 255));
ws.hIcon = NULL; ws.hInstance = hInstance;
ws.lpszClassName = wn; ws.lpszMenuName = NULL;
ws.lpfnWndProc = (WNDPROC)winproc; ws.style = CS_VREDRAW | CS_HREDRAW;
//зарегистрировать класс окна
if (RegisterClassExW(&ws) == 0) {
MessageBoxExW(0, L"Ошибка регистрации!", L"Сообщение", 0, 0); return 0;
};
//создать окно
hwnd = CreateWindowExW(0, wn,
L"Окно в 64-битовой системе!", WS_OVERLAPPEDWINDOW,
10, 10, 400, 300, NULL, NULL, hInstance, NULL);
//сделать окно видимым
ShowWindow(hwnd, nCmdShow);
//обновить содержимое
UpdateWindow(hwnd);
//цикл обработки сообщений
while (GetMessage(&msg, NULL, NULL, NULL)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//выход из программы
return (int)msg.wParam;
}
//функция окна
LRESULT CALLBACK winproc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg) {
case WM_CREATE:
hc = CreateSolidBrush(RGB(0, 0, 0));
hc2 = CreateSolidBrush(RGB(255, 255, 255));
hb1 = CreateWindowExW(0, L"Edit", L"",
WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | WS_BORDER,
10, 50, 200, 20, hWnd, 0, h, NULL);
hb2 = CreateWindowExW(0, L"Edit", L"",
WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_AUTOHSCROLL | WS_BORDER,
10, 100, 200, 20, hWnd, 0, h, NULL);
break;
case WM_CTLCOLOREDIT:
if (lParam == (int)hb1) {
SetTextColor((HDC)wParam, RGB(255, 255, 255));
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)hc;
}
if (lParam == (int)hb2) {
SetTextColor((HDC)wParam, RGB(0, 0, 0));
SetBkMode((HDC)wParam, TRANSPARENT);
return (BOOL)hc2;
}
break;
case WM_DESTROY:
PostQuitMessage(0); break;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
};
Скачать