• 用c语言创建windows窗口


    耐得住寂寞,禁得起诱惑,这就是程序人生

    步骤:
    1.在WinMain中定义各种变量
    2.注册窗口类RegisterClass
    3.创建窗口CreateWindow
    4.显示窗口和更新窗口
    ShowWindow (hwnd, iCmdShow) ;
         UpdateWindow (hwnd) ;
    5.消息循环
    while (GetMessage (&msg, NULL, 0, 0))
         {
              TranslateMessage (&msg) ;
              DispatchMessage (&msg) ;
         }
    #include <windows.h>
    
    LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
    {
         MSG      msg;
         HWND     hwnd;
         static TCHAR szAppName[] = "hl";
    
         WNDCLASS wndclass;
         wndclass.style        = CS_HREDRAW | CS_VREDRAW;
         wndclass.cbClsExtra   = 0;
         wndclass.cbWndExtra   = 0;
         wndclass.lpfnWndProc  = MyProc;
         wndclass.hInstance    = hInstance;
         wndclass.hIcon        = LoadIcon(NULL,IDI_APPLICATION);
         wndclass.hCursor      = LoadCursor(NULL,IDC_ARROW);
         wndclass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
         wndclass.lpszMenuName = NULL;
         wndclass.lpszClassName= szAppName;
    
         if(!RegisterClass(&wndclass))
         {
              MessageBox(NULL,TEXT("error"),TEXT("title"),MB_ICONERROR);
              return 0;
         }
         hwnd = CreateWindow(szAppName,
                                  TEXT("Hello"),
                                  WS_OVERLAPPEDWINDOW,
                                  CW_USEDEFAULT,
                                  CW_USEDEFAULT,
                                  CW_USEDEFAULT,
                                  CW_USEDEFAULT,
                                  NULL,
                                  NULL,
                                  hInstance,
                                  NULL
                                  );
         ShowWindow(hwnd,nShowCmd);
         UpdateWindow(hwnd);
    
         while(GetMessage(&msg,hwnd,0,0))
         {
              TranslateMessage(&msg);
              DispatchMessage(&msg);
         }
         return msg.wParam;
    }
    
    LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
    
         switch(message)
         {
         case WM_DESTROY:
              PostQuitMessage(0);
              return 0;
         }
         return DefWindowProc(hwnd,message,wParam,lParam);
    }

    我的blog:http://blog.csdn.net/booirror 

    我的邮箱:booirror@163.com



  • 相关阅读:
    LoadRunner 接口测试 第一章
    Selenium WebDriver 自动化测试 第二章
    Selenium WebDriver 自动化测试 第一章
    Scala学习
    Mysql 远程连接
    Scala学习 -- 集合 Map
    Scala学习 -- 闭包
    Scala学习
    PHP + Redis 实现消息队列
    Scala Spark Streaming + Kafka + Zookeeper完成数据的发布和消费
  • 原文地址:https://www.cnblogs.com/booirror/p/3604318.html
Copyright © 2020-2023  润新知