zoukankan      html  css  js  c++  java
  • Windows开发:WinSDK初始化

    一.简介

    二.编译流程

    对话框编辑器(Dialog Editor)->.DLG文件->集合成.RC文件

    图片编辑器(Image Editor)->.BMP/.ICO/.CUR文件->集合成.RC文件

    字体编辑器(Font Editor)->.FON文件->集合成.RC文件

    .RC文件通过资源编译器(RC Compiler)->.RES文件->链接(LINKER)

     

    头文件(.h)+源文件(.c)->通过C语言编译器(C Compiler)->.OBJ文件+动态库(.LIB/C runtime/DLL Import)->链接器(LINKER)

    链接器最终生成.EXE文件

    三.流程

    #include <windows.h>
     
    //1.声明回调函数
    LONG WINAPI WndProc(HWND,UINT,WPARAM,LPARAM);
     
     
    int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow){
     
        //2.填充窗口类
        WNDCLASS wc;
        HWND hwnd;
        MSG msg;
     
        wc.style=0;    //Class Style
        wc.lpfnWndProc=(WNDPROC)WndProc;    //Window procedure address
        wc.cbClsExtra=0;    //Class extra bytes
        wc.cbWndExtra=0;    //Window extra bytes
        wc.hInstance=hInstance;    //Instance handle
        wc.hIcon=LoadIcon(NULL,IDC_ARROW);    //Icon handle
        wc.hCursor=LoadCursor(NULL,IDC_ARROW);    //Cursor handle
        wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);    //Background handle
        wc.lpszMenuName=NULL;    //Menu name
        wc.lpszClassName="MyWndClass";    //WNDCLASS name
        
     
        //3.注册窗口类
        RegisterClass(&wc);
     
        //4.创建窗口
        hwnd=CreateWindow(
            "MyWndClass",    //WNDCLASS name
            "SDK Application",      //Window title
            WS_OVERLAPPEDWINDOW,    //Window style
            CW_USEDEFAULT,          //Horizontal position
            CW_USEDEFAULT,          //Vertical position
            CW_USEDEFAULT,          //Initial width
            CW_USEDEFAULT,          //Initial height
            HWND_DESKTOP,           //Handle of parent window
            NULL,                   //Menu handle
            hInstance,              //Application's instance handle
            NULL                    //Window-creation data
        );
     
        //5.显示更新窗口
        ShowWindow(hwnd,nCmdShow);
        UpdateWindow(hwnd);
        
        //6.消息循环
        while(GetMessage(&msg,NULL,0,0)){
            TranlateMessage(&msg);
            DispatchMessage(&msg);
        }
     
        return msg.wParam;
     
    }
     
    //7.实现回调函数处理消息
    LPRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
        
        PAINTSTRUCT ps;
        HDC hdc;
     
        switch(message){
        
        case WM_PAINT:
            hdc=BeginPaint(hwnd,&ps);
            Ellipse(hdc,0,0,200,100);
            EndPaint(hwnd,&ps);
            return 0;
     
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        }
     
        return DefWindowProc(hwnd,message,wParam,lParam);
     
    }
    
  • 相关阅读:
    PHP
    Python语言特性
    Selenium2+python自动化
    Linux命令--系统管理
    Linux命令--网络管理
    Linux命令--压缩解压(简化版)
    Linux--压缩解压命令
    Linux命令--用户管理
    Linux命令--获取帮助
    Linux命令--权限管理
  • 原文地址:https://www.cnblogs.com/k5bg/p/11138073.html
Copyright © 2011-2022 走看看