zoukankan      html  css  js  c++  java
  • vc++如何创建窗口

    创建一个mfc工程,AppWizard可以用来增加和选择一些特性

    可以发现一共有五个类,每一个类都有一个基类,都是mfc基础类库中的类

    例如将一个类拷贝一下,将CFrameWnd到msdn中查找一下,MSDN(Microsoft Developer Network)是早期微软在推广Win32 程序设计以及开发工具时,专门为开发人员所提供的一个服务,是使用微软技术开发软件或应用程序时必定会参访的地方,同时它也有提供订阅的服务

    例如cwinapp

     

    理解mfc脉络,每一种不同的窗口类

    创建窗口:createwindow类

    理清关系。 例如演示Cwind类如何与窗口联系起来的

    class CWnd
    {
    public:
    bool CreateEx(DWORD dwExStyle)
    LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HWND hMenu,
    HINSTAMCE hInstance,
    LPUOIO IpParan);
    BOOL ShowWindow(int nCndShow);
    BOOL UpdateWindow();
    //定义一个句柄的成员变量
    public:
    HWND n_hWnd;

    };
    //完成三个函数,返回值 类名::作用于标识符 ,
    BOOL CWnd::CreateEx(DWORD dwExStyle)
    LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HWND hMenu,
    HINSTAMCE hInstance,
    LPUOIO IpParan);
    //完成一个创建窗口的过程,利用win32提供的api函数成员变量保护
    {
    m_hWnd=::CreateWindowEx(dwExst,lpClassName,dwStyle,dwStyly,x,y,
    nWidth,nHeight,hWndParent,HWenu,hInstance,Iparam);
    //表示全局函数可以加一个::
    BOOL ShowWindow(int nCndShow);
    BOOL UpdateWindow();
    if(n_hWnd!=NULL)
    return TRUE;
    else
    return FALSE;
    }
    bool CWnd::ShowWindow(int nCmdShow)
    {
    return ::ShowWindow(m_hWnd,nCndShow);// ::ShowWindow(m_hWnd,nCndShow);表示是一个全局函数,是一个平台sdk的函数,
    //只要想表示sdk的,全局的,都可以用::来表示,返回值也是bool类型
    //当调用createEx函数时,表示函数已经传过来了,可以直接返回
    }

    bool CWnd::UpdateWindow(int nCmdShow)
    {
    return ::UpdateWindow(m_hWnd);// ::ShowWindow(m_hWnd,nCndShow);表示是一个全局函数,是一个平台sdk的函数,
    //只要想表示sdk的,全局的,都可以用::来表示,返回值也是bool类型
    //当调用createEx函数时,表示函数已经传过来了,可以直接返回
    }

    bool CWnd::UpdateWindow(int nCmdShow)
    {
    return ::UpdateWindow(m_hWnd);// ::ShowWindow(m_hWnd,nCndShow);表示是一个全局函数,是一个平台sdk的函数,
    //只要想表示sdk的,全局的,都可以用::来表示,返回值也是bool类型
    //当调用createEx函数时,表示函数已经传过来了,可以直接返回
    }
    //可以粘贴代码过来
    int WINPI WinHain(
    HINSTAMCE hInstance,
    HINSTAMCE hPreVInstance,
    LPSTR IpCmdLine,
    int nCmdShow
    )

    {
    WNDCLASS undels;
    undels.cbWndExtra=0;
    undels.cbClsExtra=0;
    ....
    //注册
    RegisterClass(&wndcls);
    //产生窗口,宽度,高度
    CWnd wnd;
    wnd.CreateEx(...);
    //显示窗口
    wnd.ShowWindow(SW_SHOWHORHAL);
    //更新窗口
    wnd.UpdateWindow();
    //循环。。。。
    //保存句柄
    HWND hwnd;
    hwnd=CreateWindowEx();
    .....

    }

  • 相关阅读:
    [LeetCode] 71. Simplify Path 简化路径
    [LeetCode] 173. Binary Search Tree Iterator 二叉搜索树迭代器
    [LeetCode] 142. Linked List Cycle II 链表中的环 II
    [LeetCode] 141. Linked List Cycle 链表中的环
    读经典——《CLR via C#》(Jeffrey Richter著) 笔记_友元程序集
    读经典——《CLR via C#》(Jeffrey Richter著) 笔记_通过ILDasm.exe查看编译器如何将类型及其成员编译成元数据
    tfs强行签入和删除工作区
    需要提升权限才能运行dism
    读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型的各种成员
    Jquery 获取URL中的参数
  • 原文地址:https://www.cnblogs.com/fanglijiao/p/9813649.html
Copyright © 2011-2022 走看看