dllbridge

Untitled

Jun 17th, 2026
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.24 KB | None | 0 0
  1.  
  2. #include <windows.h>                       //  Подключаем (заголовочный файл ) типы данных и библиотеки функций WinAPI  
  3. #include   <stdio.h>
  4.  
  5. HWND                  hWnd;                       //  хендл ГЛАВНОГО! окна сделан глобальной переменной и будет виден везде  
  6. HINSTANCE        hInstance;                                       //  Экземпляр этой программы тоже глобально объявлен
  7. char                sz[99];
  8. int      Timer_CLK   =   0;
  9. HDC                    hdc;
  10.  
  11. int nColor = RGB(99, 203, 172);
  12.  
  13. ////////////////////////////////////////////////////////////
  14. void xPrint(int x, int y, const char *psz)                //                Она печатает текст по указанным координатам.
  15. {
  16.      
  17.     hdc = GetDC(hWnd);
  18.     SetTextColor(hdc, nColor);//
  19.     SetBkColor(hdc, 0);
  20.   //  (HFONT)SelectObject(hdc, hFont);
  21.     TextOutA(hdc, x, y, psz,strlen(psz));
  22.     ReleaseDC(hWnd, hdc);
  23. }
  24.  
  25. ////////////////////////////////////////////////////////////
  26. void INIT()
  27. {
  28.  
  29. }
  30.  
  31.  
  32. ////////////////////////////////////////////////////////////
  33. void START()
  34. {
  35.    
  36.      if(Timer_CLK == 25) nColor = RGB(66        , 170, 255);
  37.      if(Timer_CLK  > 50) nColor = RGB(Timer_CLK , 170, 255);
  38.      sprintf(sz, "Timer_CLK = %d", Timer_CLK);
  39.      xPrint(100, 100, sz);
  40. }
  41.  
  42.  
  43. ////////////////////////////////////////////////////////////
  44. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)                   // 1 - смотрите ВЫШЕ.              
  45. {
  46.     switch (message)
  47.     {
  48.     case  WM_CREATE: SetTimer(hWnd, 1, 200, 0);  break;                                //  Принимаем однократное сообщение для инициализации
  49.        
  50.     case   WM_TIMER:   if (Timer_CLK == 0) {  INIT(); }
  51.                    START();  Timer_CLK++;
  52.                    break;
  53.  
  54.  
  55.     case WM_DESTROY:   PostQuitMessage(0);                //  Принимаем однократное сообщение для ДЕ_инициализации
  56.         break;
  57.  
  58.     default:           return DefWindowProc(hWnd, message, wParam, lParam);    // обработка OS остальных сообщений
  59.     }
  60.     return 0;
  61. }
  62.  
  63.  
  64. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmd, int nCmdShow)     // 2 - смотрите ВЫШЕ.
  65. {
  66.     MSG msg;                                // Создаём элемент структуры сообщений от OS Windows для нашего приложения
  67.     WNDCLASS WndClass;      // Создаём элемент оконной структуры--- сначала регистрируем класс главного окна программы—    
  68.     WndClass.style = 0;
  69.     WndClass.lpfnWndProc = WndProc;                                             // адрес (имя) функции окна
  70.     WndClass.cbClsExtra = 0;
  71.     WndClass.cbWndExtra = 0;
  72.     WndClass.hInstance = hInstance;                                            //   Дескриптор приложения
  73.     WndClass.hIcon = 0;//LoadIcon(hInstance, "MYICON");                         //   Загружаем иконку
  74.     WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);                          //   Загружаем тип курсора
  75.     WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);              //   Цвет заливки окна выбрали
  76.     WndClass.lpszMenuName = 0;//"xMENU";                                             //   Указываем имя меню
  77.     WndClass.lpszClassName = L"dllBridge";                                 //   Придумали сами имя класса окна  
  78.  
  79.     if (!RegisterClass(&WndClass)) return 0;    // если класс не зарегистрирован, то выходим (программа не запустилась)
  80.  
  81.     hWnd = CreateWindow(L"dllBridge",                       // Создаем окно класса dllBridge (имя класса сами придумали)
  82.         L"Lessons",                                  // заголовок окна (надпись на верхней-синей полосе)
  83.         WS_OVERLAPPEDWINDOW,                                                             // стиль окна
  84.         200,                                                 // координата X левого верхнего угла окна
  85.         100,                                                 // координата Y левого верхнего угла окна
  86.         648,                                                                   // размеры окна (Ширина)
  87.         526,                                                                                 // Высота
  88.         NULL,                        // Дескриптор родительского окна  ( нет главного окна программы :)
  89.         NULL,                                     // Дескриптор  меню или идентификатор дочернего окна.
  90.         hInstance,                                                 // Дескриптор экземпляра приложения
  91.         NULL);
  92.     if (!hWnd) return 0;                                 //  если окно не создано, то выходим (программа не запустилась)
  93.     ShowWindow(hWnd, nCmdShow);                                                          //  отобразить окно на экране
  94.     UpdateWindow(hWnd);                                                                              //  обновить окно                                                                                                            
  95.  
  96.     while (GetMessage(&msg, 0, 0, 0))                                                         //  Цикл обработки сообщений
  97.     {
  98.         TranslateMessage(&msg);                                   //  Принятие и "проталкивание" сообщений в очереди
  99.         DispatchMessage(&msg);
  100.     }
  101.  
  102.     return msg.wParam;
  103. }
  104.  
  105.  
Advertisement
Add Comment
Please, Sign In to add comment