Simple Window

From x, 5 Years ago, written in C, viewed 350 times.
URL http://paste.security-portal.cz/view/d6acc228 Embed
Download Paste or View Raw
  1. #include <windows.h>
  2.  
  3. #define _MainClassName L"WinAPIMainClass"
  4.  
  5.  
  6. HINSTANCE g_hInstance;
  7. HWND g_hwndMain, g_hwndEdit1, g_hwndEdit2;
  8. MSG msg;
  9. TCHAR chText[100];
  10.  
  11. LRESULT CALLBACK WindowProcMain(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
  12.   switch(uMsg){
  13.         case WM_COMMAND:
  14.                 break;
  15.     case WM_DESTROY:
  16.       PostQuitMessage(0);
  17.       break;
  18.   }
  19.  
  20.   return DefWindowProc(hwnd, uMsg, wParam, lParam);
  21. }
  22.  
  23. VOID CALLBACK MyTimerProc(HWND hwnd, UINT message, UINT idTimer, DWORD dwTime){
  24.         GetWindowText(g_hwndEdit1, chText, 99);
  25.         SetWindowText(g_hwndEdit2, chText);
  26. }
  27.  
  28. BOOL InitApp(){
  29.   WNDCLASSEX wc;
  30.   wc.cbSize = sizeof(WNDCLASSEX);
  31.   wc.cbClsExtra = 0;
  32.   wc.cbWndExtra = 0;
  33.   wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  34.   wc.hCursor = LoadCursor(NULL, IDC_ARROW);
  35.   wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
  36.   wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
  37.   wc.hInstance = g_hInstance;
  38.   wc.lpfnWndProc = WindowProcMain;
  39.   wc.lpszClassName = _MainClassName;
  40.   wc.lpszMenuName = NULL;
  41.   wc.style = CS_HREDRAW | CS_VREDRAW;
  42.   if ( !RegisterClassEx(&wc) )
  43.     return FALSE;
  44.  
  45.   g_hwndMain = CreateWindowEx(0, _MainClassName,
  46.                                                           L"Example",
  47.                                                           WS_OVERLAPPEDWINDOW | WS_VISIBLE,
  48.                                                           100, 100, 450, 350,
  49.                                                           NULL, NULL, g_hInstance, NULL);
  50.  
  51.   if(g_hwndMain == NULL)
  52.     return FALSE;
  53.  
  54.   g_hwndEdit1 = CreateWindowEx(WS_EX_CLIENTEDGE,
  55.                                                          L"EDIT",
  56.                                                          L"",
  57.                                                          WS_CHILD | WS_VISIBLE | ES_LEFT,
  58.                                                          10, 15, 200, 25,
  59.                                                          g_hwndMain,
  60.                                                          (HMENU)NULL,
  61.                                                          g_hInstance,
  62.                                                          NULL);
  63.  
  64.   if(g_hwndEdit1 == NULL)
  65.         return FALSE;
  66.  
  67.   g_hwndEdit2 = CreateWindowEx(WS_EX_CLIENTEDGE,
  68.                                                          L"EDIT",
  69.                                                          L"",
  70.                                                          WS_CHILD | WS_VISIBLE | ES_LEFT | ES_READONLY,
  71.                                                          10, 55, 200, 25,
  72.                                                          g_hwndMain,
  73.                                                          (HMENU)NULL,
  74.                                                          g_hInstance,
  75.                                                          NULL);
  76.  
  77.   if(g_hwndEdit2 == NULL)
  78.         return FALSE;
  79.  
  80.   SetTimer(g_hwndEdit1, NULL, 300, (TIMERPROC) MyTimerProc);
  81.  
  82.  
  83.   return TRUE;
  84. }
  85.  
  86. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nShow){
  87.         g_hInstance = hInstance;
  88.  
  89.         if(!InitApp())
  90.     return FALSE;
  91.  
  92.   while(GetMessage(&msg, NULL, 0, 0)){
  93.     TranslateMessage(&msg);
  94.     DispatchMessage(&msg);
  95.   }
  96.  
  97.   return msg.wParam;
  98. }

Reply to "Simple Window"

Here you can reply to the paste above