Учреждение «Университет «Туран» Факультет «Академия кино и телевидения» Специальность «Вычислительная техника и программное обеспечение» Лабораторная работа По дисциплине: «Системное программирование» Выполнил: студент группы ВТПО 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); };