dllbridge

Untitled

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