Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h> // Подключаем (заголовочный файл ) типы данных и библиотеки функций WinAPI
- #include <stdio.h>
- HWND hWnd; // хендл ГЛАВНОГО! окна сделан глобальной переменной и будет виден везде
- HINSTANCE hInstance; // Экземпляр этой программы тоже глобально объявлен
- char sz[99];
- int Timer_CLK = 0;
- HDC hdc;
- int nColor = RGB(99, 203, 172);
- ////////////////////////////////////////////////////////////
- void xPrint(int x, int y, const char *psz) // Она печатает текст по указанным координатам.
- {
- hdc = GetDC(hWnd);
- SetTextColor(hdc, nColor);//
- SetBkColor(hdc, 0);
- // (HFONT)SelectObject(hdc, hFont);
- TextOutA(hdc, x, y, psz,strlen(psz));
- ReleaseDC(hWnd, hdc);
- }
- ////////////////////////////////////////////////////////////
- void INIT()
- {
- }
- ////////////////////////////////////////////////////////////
- void START()
- {
- if(Timer_CLK == 25) nColor = RGB(66 , 170, 255);
- if(Timer_CLK > 50) nColor = RGB(Timer_CLK , 170, 255);
- sprintf(sz, "Timer_CLK = %d", Timer_CLK);
- xPrint(100, 100, sz);
- }
- ////////////////////////////////////////////////////////////
- LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) // 1 - смотрите ВЫШЕ.
- {
- switch (message)
- {
- case WM_CREATE: SetTimer(hWnd, 1, 200, 0); break; // Принимаем однократное сообщение для инициализации
- case WM_TIMER: if (Timer_CLK == 0) { INIT(); }
- START(); Timer_CLK++;
- break;
- case WM_DESTROY: PostQuitMessage(0); // Принимаем однократное сообщение для ДЕ_инициализации
- break;
- default: return DefWindowProc(hWnd, message, wParam, lParam); // обработка OS остальных сообщений
- }
- return 0;
- }
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmd, int nCmdShow) // 2 - смотрите ВЫШЕ.
- {
- MSG msg; // Создаём элемент структуры сообщений от OS Windows для нашего приложения
- WNDCLASS WndClass; // Создаём элемент оконной структуры--- сначала регистрируем класс главного окна программы—
- WndClass.style = 0;
- WndClass.lpfnWndProc = WndProc; // адрес (имя) функции окна
- WndClass.cbClsExtra = 0;
- WndClass.cbWndExtra = 0;
- WndClass.hInstance = hInstance; // Дескриптор приложения
- WndClass.hIcon = 0;//LoadIcon(hInstance, "MYICON"); // Загружаем иконку
- WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); // Загружаем тип курсора
- WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); // Цвет заливки окна выбрали
- WndClass.lpszMenuName = 0;//"xMENU"; // Указываем имя меню
- WndClass.lpszClassName = L"dllBridge"; // Придумали сами имя класса окна
- if (!RegisterClass(&WndClass)) return 0; // если класс не зарегистрирован, то выходим (программа не запустилась)
- hWnd = CreateWindow(L"dllBridge", // Создаем окно класса dllBridge (имя класса сами придумали)
- L"Lessons", // заголовок окна (надпись на верхней-синей полосе)
- WS_OVERLAPPEDWINDOW, // стиль окна
- 200, // координата X левого верхнего угла окна
- 100, // координата Y левого верхнего угла окна
- 648, // размеры окна (Ширина)
- 526, // Высота
- NULL, // Дескриптор родительского окна ( нет главного окна программы :)
- NULL, // Дескриптор меню или идентификатор дочернего окна.
- hInstance, // Дескриптор экземпляра приложения
- NULL);
- if (!hWnd) return 0; // если окно не создано, то выходим (программа не запустилась)
- ShowWindow(hWnd, nCmdShow); // отобразить окно на экране
- UpdateWindow(hWnd); // обновить окно
- while (GetMessage(&msg, 0, 0, 0)) // Цикл обработки сообщений
- {
- TranslateMessage(&msg); // Принятие и "проталкивание" сообщений в очереди
- DispatchMessage(&msg);
- }
- return msg.wParam;
- }
Advertisement
Add Comment
Please, Sign In to add comment