创建一个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();
.....

}

vc++如何创建窗口的更多相关文章

  1. MFC程序的启动过程——先全局对象theApp(第一入口),后WinMain(真正入口),会引爆pApp->InitInstance从而创建窗口(程序员入口)

    原文出自:http://blog.csdn.net/yuvmen/article/details/5877271 了解MFC程序的启动过程,对于初学者来讲,了学习MFC很有帮助:对于不常用VC的人来说 ...

  2. SDL初始化和创建窗口

    //初始化SDL2和创建一个窗口,并且将屏幕绘制成大红色 #include <iostream> extern "C" { #include <SDL.h> ...

  3. MFC在子线程中创建窗口(PostMessage方法)

    1.创建子线程 C++创建线程的方式比较多 1)最简单易用的<thread>头文件,但是这种方法创建的子线程中无法给主线程PostMessage消息(也可能是我操作有误,总之没成功) 2) ...

  4. Duilib创建窗口双击标题栏禁止窗口最大化

    使用Duilib创建窗口并禁止窗口最大化 第一步: XXXFrame.Create(NULL, _T("XXXFrame"), UI_WNDSTYLE_EX_FRAME, WS_E ...

  5. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...

  6. MFC应用程序创建窗口的过程 good

    MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该 ...

  7. windows程序设计读书笔记1——创建窗口

    第一个win32程序,简单的创建窗口: #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ...

  8. 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布

    内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做 ...

  9. Example003通过按钮创建窗口

    <!--实例003通过按钮创建窗口--> <head> <meta charset="UTF-8"> </head> <for ...

随机推荐

  1. POJ - 3126 - Prime

    先上题目 Prime Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9259   Accepted: 5274 D ...

  2. mysql中explain用法和结果的含义

    explain  select * from user explain select * from user explain extended select * from user explain e ...

  3. vs code--snippet与快速提示

    因为快速语法提示和建议冲突,所以要么禁用语法提示,要么禁用建议 Note that quick suggestions and Tab completion might interfere becau ...

  4. RabbitMQ发布订阅实战-实现延时重试队列

    RabbitMQ是一款使用Erlang开发的开源消息队列.本文假设读者对RabbitMQ是什么已经有了基本的了解,如果你还不知道它是什么以及可以用来做什么,建议先从官网的 RabbitMQ Tutor ...

  5. plsql developer ini

    plsql developer ini [Colors] GradientEnabled=True VerticalGradient=True DefaultGradient=True Gradien ...

  6. pl/sql developer 快捷操作: 显示不可见字符 显示历史sql语句 拷贝整个sql窗口的语句至新的sql窗口

    pl/sql developer 快捷操作: 显示不可见字符 显示历史sql语句 拷贝整个sql窗口的语句至新的sql窗口 显示不可见字符:可以把空格.回车显示出来: 显示历史sql语句:ctrl+e ...

  7. [Unit Testing] Set the timeout of a Test in Mocha

    Mocha uses a default timeout of 2000 ms. However, if for some reason that does not work for your use ...

  8. Java设计模式之从[星际争霸的兵种升级]分析观察者(Observer)模式

    观察者模式定义对象的一种一对多的依赖关系.当一个对象的状态发生改变时.全部依赖于它的对象都会得到通知并被自己主动更新. 一个简单的样例是.在星际争霸的虫族中有一个0基础单位叫做跳狗(Zergling) ...

  9. windows下mysql5.6.20使用mysqldumpslow.pl分析慢日志

    要想执行mysqldumpslow.pl(这是perl程序),下载perl编译器. 下载地址:http://pan.baidu.com/s/1i3GLKAp 就是ActivePerl_5.16.2.3 ...

  10. Linux 获取设备树源文件(DTS)里的资源【转】

    本文转载自:http://blog.csdn.net/keleming1/article/details/51036000 http://www.cnblogs.com/dyllove98/archi ...