Advertisement
dllbridge

WinAPI_step_02

Feb 10th, 2023
810
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.67 KB | None | 0 0
  1. //  Репетиторство: a-1a.livejournal.com/52305.html
  2.  
  3. //  Файл №1 "main.cpp"
  4.  
  5.  
  6. #include <windows.h>                    //  Подключаем (заголовочный файл ) библиотеки функций WinAPI  
  7.  
  8. //////////////////////////////////////////  Глобальные переменные
  9. HWND                  hWnd;             //  хедер ГЛАВНОГО! окна  
  10. HINSTANCE        hInstance;             //  Экземпляр этой программы
  11.  
  12.  
  13. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)   //  Функция обработки сообщений от...
  14. {                                                                                 //  ...OS Windows
  15.     switch(message)
  16.     {
  17.         case  WM_CREATE:   break;                          //  Принимаем однократное сообщение для инициализации
  18.        
  19.         case WM_DESTROY:   PostQuitMessage(0);             //  Принимаем однократное сообщение для ДЕ_инициализации
  20.                            break;                          
  21.                 default:   return DefWindowProc(hWnd, message, wParam, lParam);   // обработка OS остальных сообщений
  22.     }
  23.     return 0;
  24. }
  25.  
  26. //---------------------------------------------------------------------------------------------------------------------
  27. int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpszCmd, int nCmdShow)
  28. {
  29.    
  30.     WNDCLASS WC;                                                         //   Создаём элемент оконной структуры  
  31.              WC.style         = 0;
  32.              WC.lpfnWndProc   = WndProc;                                 //   Имя оконной функции
  33.              WC.cbClsExtra    = 0;
  34.              WC.cbWndExtra    = 0;
  35.              WC.hInstance     = hInstance = hInst;                       //   Дескриптор приложения
  36.              WC.hIcon         = LoadIcon(hInstance, "MYICON");           //   Загружаем иконку
  37.              WC.hCursor       = LoadCursor(NULL, IDC_ARROW);             //   Загружаем тип курсора
  38.              WC.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);     //   Цвет заливки окна выбрали
  39.              WC.lpszMenuName  = "x1MENU";                                //   Указываем имя меню
  40.              WC.lpszClassName = "dllBridge";                             //   Придумали сами имя класса окна  
  41.                                                      // Cначала регистрируем класс главного окна программы  
  42.     if(!RegisterClass(&WC)) return 0;                // если класс не зарегистрирован, то выходим
  43.    
  44.     hWnd =  CreateWindow("dllBridge",                // ————— создаем окно класса dllBridge —————
  45.                           "Template",                // заголовок окна (надпись на верхней-синей полосе)
  46.                  WS_OVERLAPPEDWINDOW,                // стиль окна (перекрывающееся)
  47.                             100, 100,                // координата X, Y левого верхнего угла окна                      
  48.                             648, 526,                // размеры окна (Ширина & Высота)                                              
  49.                               0,   0,                // Дескриптор родительского окна и идентификатор дочернего окна.                                              
  50.                         hInstance, 0);               // Дескриптор экземпляра приложения
  51.                                                    
  52.              if(!hWnd)  return 0;                    //  если окно не создано, то выходим (программа не запустилась)
  53.     ShowWindow  (hWnd, nCmdShow);                    //  отобразить окно на экране
  54.     UpdateWindow(hWnd);                              //  обновить окно                                                                                                             
  55.  
  56.  
  57.                MSG      msg;                         //  Создаём элемент структуры сообщений от OS Windows
  58.     while(  GetMessage(&msg, 0, 0, 0))               //  Цикл обработки сообщений
  59.     { TranslateMessage(&msg);                        //  Принятие и "проталкивание" сообщений в очереди
  60.        DispatchMessage(&msg);
  61.     }
  62.  
  63. return msg.wParam;
  64. }
  65.  
  66.  
  67.  
  68. //  Файл №2 "Menu.rc" ////////////////////////////////////////////////////////////////////////////////////////////////////////
  69.  
  70. x1MENU MENU
  71. {
  72.  
  73.     POPUP "&Options"
  74.     {
  75.       MENUITEM "&About",        301
  76.       MENUITEM SEPARATOR
  77.       MENUITEM "&Exit" ,        302
  78.     }
  79. }
  80.  
  81. MYICON ICON ico.ico
  82.  
  83.  
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement