zoukankan      html  css  js  c++  java
  • 创建一个Windows窗体

    20140702加:

    WS_OVERLAPPEDWINDOW这个属性如果写成WS_OVERLAPPED,则窗口没有最大最小按钮以及左边的系统的菜单。

    vs2010下的代码提示快捷键:CTRL + J

    step:

    窗口类赋值(12个参数)

    注册窗口类

    创建窗口

    消息循环

     

    #include<Windows.h>
    #include<tchar.h>
    
    LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
    {
        const TCHAR pClassName[] = _T("MyWindow");
        WNDCLASSEX wcex;
        wcex.cbSize = sizeof(WNDCLASSEX);
        wcex.cbClsExtra = 0;
        wcex.cbWndExtra = 0;
        wcex.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);
        wcex.hCursor = ::LoadCursor(NULL, IDC_ARROW);
        wcex.hIcon = ::LoadIcon(NULL, IDI_APPLICATION);
        wcex.hIconSm = ::LoadIcon(NULL, IDI_APPLICATION);
        wcex.hInstance = hInstance;
        wcex.lpfnWndProc = WindowProc;
        wcex.lpszClassName = pClassName;
        wcex.lpszMenuName = NULL;
        wcex.style = CS_HREDRAW | CS_VREDRAW;
        BOOL bRet = ::RegisterClassEx(&wcex);
        if(!bRet)
        {
            MessageBox(NULL, _T("提示"), _T("注册窗口类失败"), MB_OK);
            return FALSE;
        }
        HWND hWnd = ::CreateWindowEx(0, pClassName, _T("WinDemo"), WS_VISIBLE|WS_OVERLAPPEDWINDOW, 
                                    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 
                                    NULL, NULL, hInstance, NULL);
        
        if(NULL == hWnd)
        {
            MessageBox(NULL, _T("提示"), _T("创建窗口失败!"), MB_OK);
            return FALSE;
        }
        ::ShowWindow(hWnd, SW_SHOW);
        ::UpdateWindow(hWnd);
    
        MSG msg;
        while(GetMessage(&msg, NULL, 0, 0))
        {
            ::TranslateMessage(&msg);
            ::DispatchMessage(&msg);
        }
        return TRUE;
    }
    LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        switch(uMsg)
        {
            case WM_CLOSE:
                ::DestroyWindow(hwnd);
                return 0;
            case WM_DESTROY:
                ::PostQuitMessage(0);
                return 0;
            default:
                break;
        }
        return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
    }
  • 相关阅读:
    简单的几句接口调用,完美完成缩短网站
    nodejs语言实现验证码生成功能
    人工智能:文本相似度分析
    SolrCloud 5.2.1 installation and configuration
    借鉴DP思想: HouseRobberIII
    有意思的数学题:Trapping Rain Water
    API认证方法一览
    FE: Responsive Web Design Overview
    FE: Sass and Bootstrap 3 with Sass
    假期小记:14年寒假二三四事(儿)
  • 原文地址:https://www.cnblogs.com/wenwujuncheng/p/3743988.html
Copyright © 2011-2022 走看看