Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.19 KB | None | 0 0
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <commctrl.h>
  4. #include <tchar.h>
  5.  
  6. LRESULT WINAPI WndProc(HWND, UINT, WPARAM, LPARAM);
  7. int maxx_size = 800;
  8. int maxy_size = 600;
  9. long width;
  10. long height;
  11. HDC dc;
  12. HWND w;
  13. STARTUPINFO si;
  14. PROCESS_INFORMATION pi;
  15.  
  16.  static HWND hBtn1, hBtn2, hBtn3, hBtn4, hBtn5;
  17.  
  18. int main()
  19. {
  20.    
  21.     HINSTANCE histance = GetModuleHandleW(NULL);
  22.    
  23.    
  24.     WNDCLASSEX wclass = { 0 };
  25.     wclass.cbSize = sizeof(WNDCLASSEX);
  26.     wclass.style = CS_HREDRAW | CS_VREDRAW;
  27.     wclass.lpfnWndProc = WndProc;
  28.     wclass.cbClsExtra = 0;
  29.     wclass.cbWndExtra = 0;
  30.     wclass.hInstance = histance;
  31.     wclass.hIcon = LoadIcon(0, IDI_APPLICATION);
  32.     wclass.hCursor = LoadCursor(0, IDC_ARROW);
  33.     wclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  34.     wclass.lpszMenuName = NULL;
  35.     wclass.lpszClassName = "Test";
  36.    
  37.     RegisterClassEx(&wclass);
  38.    
  39.    
  40.     w = CreateWindowExW(
  41.             0,
  42.             L"Test",
  43.             L"Form",
  44.             WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
  45.             CW_USEDEFAULT,
  46.             CW_USEDEFAULT,
  47.             800,
  48.             600,
  49.             0,
  50.             0,
  51.             histance,
  52.             0);
  53.    
  54.    
  55.     ShowWindow(w, SW_SHOW);
  56.    
  57.     UpdateWindow(w);
  58.    
  59.    
  60.     MSG msg = { 0 };
  61.    
  62.    
  63.     while (GetMessage(&msg, 0, 0, 0)) {
  64.    
  65.     TranslateMessage(&msg);
  66.    
  67.     DispatchMessage(&msg);
  68.     }
  69.    
  70.     return 0;
  71. }
  72.  
  73.  
  74. LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
  75. {
  76.  
  77. PAINTSTRUCT MyPaint;
  78. HBRUSH Brush;
  79. HPEN Pen;
  80.  
  81.  
  82.  
  83. switch (msg) {
  84.     case WM_DESTROY:
  85.         PostQuitMessage(0);
  86.     break;
  87.     case WM_PAINT:
  88.    
  89.     break;
  90.    
  91.     case WM_CLOSE:
  92.  
  93.     break;
  94.    
  95.     case WM_CREATE:
  96.         hBtn1 = CreateWindow(TEXT("BUTTON"),TEXT("Update"),WS_VISIBLE|WS_CHILD, 0,0,100,20,hWnd,HMENU(NULL),NULL,NULL);
  97.         hBtn2 = CreateWindow(TEXT("BUTTON"),TEXT("Notepad"),WS_VISIBLE|WS_CHILD, 0,20,100,20,hWnd,HMENU(NULL),NULL,NULL);
  98.         hBtn3 = CreateWindow(TEXT("BUTTON"),TEXT("MsPaint"),WS_VISIBLE|WS_CHILD, 0,40,100,20,hWnd,HMENU(NULL),NULL,NULL);
  99.         hBtn4 = CreateWindow(TEXT("BUTTON"),TEXT("MsInfo"),WS_VISIBLE|WS_CHILD, 0,60,100,20,hWnd,HMENU(NULL),NULL,NULL);
  100.         hBtn5 = CreateWindow(TEXT("BUTTON"),TEXT("Calculator"),WS_VISIBLE|WS_CHILD, 0,80,100,20,hWnd,HMENU(NULL),NULL,NULL);
  101.     break;
  102.     case WM_COMMAND:
  103.       if(lParam == (LPARAM)hBtn1) {
  104.            
  105.       }
  106.       if(lParam == (LPARAM)hBtn2) {
  107.         TCHAR czCommandLine[] = L"Notepad";
  108.         CreateProcess( NULL, // Нет имени модуля (используется командная строка).
  109.             czCommandLine,     // Командная строка.
  110.             NULL,                 // Дескриптор процесса не наследуемый.
  111.             NULL,                 // Дескриптор потока не наследуемый.
  112.             FALSE,                // Установим наследование дескриптора в FALSE.
  113.             0,                    // Флажков создания нет.
  114.             NULL,                 // Используйте блок конфигурации родителя.
  115.             NULL,                 // Используйте стартовый каталог родителя.
  116.             &si,                  // Указатель на структуру STARTUPINFO.   
  117.             &pi ); 
  118.       }
  119.       if(lParam == (LPARAM)hBtn3) {
  120.         TCHAR czCommandLine[] = L"MsPaint";
  121.         CreateProcess( NULL, // Нет имени модуля (используется командная строка).
  122.             czCommandLine,     // Командная строка.
  123.             NULL,                 // Дескриптор процесса не наследуемый.
  124.             NULL,                 // Дескриптор потока не наследуемый.
  125.             FALSE,                // Установим наследование дескриптора в FALSE.
  126.             0,                    // Флажков создания нет.
  127.             NULL,                 // Используйте блок конфигурации родителя.
  128.             NULL,                 // Используйте стартовый каталог родителя.
  129.             &si,                  // Указатель на структуру STARTUPINFO.   
  130.             &pi ); 
  131.       }
  132.       if(lParam == (LPARAM)hBtn4) {
  133.             TCHAR czCommandLine[] = l"MsInfo32";
  134.             CreateProcess( NULL, // Нет имени модуля (используется командная строка).
  135.             czCommandLine,     // Командная строка.
  136.             NULL,                 // Дескриптор процесса не наследуемый.
  137.             NULL,                 // Дескриптор потока не наследуемый.
  138.             FALSE,                // Установим наследование дескриптора в FALSE.
  139.             0,                    // Флажков создания нет.
  140.             NULL,                 // Используйте блок конфигурации родителя.
  141.             NULL,                 // Используйте стартовый каталог родителя.
  142.             &si,                  // Указатель на структуру STARTUPINFO.   
  143.             &pi ); 
  144.       }
  145.       if(lParam == (LPARAM)hBtn5) {
  146.             TCHAR czCommandLine[] = L"Calc";
  147.             CreateProcess( NULL, // Нет имени модуля (используется командная строка).
  148.             czCommandLine,     // Командная строка.
  149.             NULL,                 // Дескриптор процесса не наследуемый.
  150.             NULL,                 // Дескриптор потока не наследуемый.
  151.             FALSE,                // Установим наследование дескриптора в FALSE.
  152.             0,                    // Флажков создания нет.
  153.             NULL,                 // Используйте блок конфигурации родителя.
  154.             NULL,                 // Используйте стартовый каталог родителя.
  155.             &si,                  // Указатель на структуру STARTUPINFO.   
  156.             &pi );
  157.       }
  158.  
  159.       HWND hwndList = CreateWindowEx(0L, WC_LISTVIEW, "",
  160.                 WS_VISIBLE | WS_CHILD | WS_BORDER | LVS_REPORT |
  161.                 LVS_EDITLABELS,
  162.                 0, 0, 400, 600,
  163.                 hWnd, NULL, NULL, NULL);
  164.       break;
  165.     }
  166. return DefWindowProc(hWnd, msg, wParam, lParam);
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement