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();
.....
}
vc++如何创建窗口的更多相关文章
- MFC程序的启动过程——先全局对象theApp(第一入口),后WinMain(真正入口),会引爆pApp->InitInstance从而创建窗口(程序员入口)
原文出自:http://blog.csdn.net/yuvmen/article/details/5877271 了解MFC程序的启动过程,对于初学者来讲,了学习MFC很有帮助:对于不常用VC的人来说 ...
- SDL初始化和创建窗口
//初始化SDL2和创建一个窗口,并且将屏幕绘制成大红色 #include <iostream> extern "C" { #include <SDL.h> ...
- MFC在子线程中创建窗口(PostMessage方法)
1.创建子线程 C++创建线程的方式比较多 1)最简单易用的<thread>头文件,但是这种方法创建的子线程中无法给主线程PostMessage消息(也可能是我操作有误,总之没成功) 2) ...
- Duilib创建窗口双击标题栏禁止窗口最大化
使用Duilib创建窗口并禁止窗口最大化 第一步: XXXFrame.Create(NULL, _T("XXXFrame"), UI_WNDSTYLE_EX_FRAME, WS_E ...
- QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数
QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...
- MFC应用程序创建窗口的过程 good
MFC应用程序中处理消息的顺序 1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该 ...
- windows程序设计读书笔记1——创建窗口
第一个win32程序,简单的创建窗口: #include <windows.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ...
- 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布
内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做 ...
- Example003通过按钮创建窗口
<!--实例003通过按钮创建窗口--> <head> <meta charset="UTF-8"> </head> <for ...
随机推荐
- [bzoj1180][CROATIAN2009]OTOCI_LCT
OTOCI bzoj-1180 CROATIAN-2009 题目大意:给你n个离散的点,m个操作.支持:两点加边(保证还是森林),修改单点权值,询问两点是否联通,查询联通两点之间路径权值. 注释:$1 ...
- [bzoj3062][Usaco13Feb]Taxi_贪心
Taxi bzoj-3062 Usaco13Feb 题目大意:有n个奶牛想坐出租车.第i头奶牛在起点a[i]等候,想坐出租车到b[i].Bessie从0出车,车上只能坐一头奶牛.她必须完成所有奶牛的要 ...
- Java-基本输入输出
Scanner sc = new Scanner(System.in); System.out.println("Please input the path:"); String ...
- find-median-from-data-stream & multiset priority queue 堆
https://leetcode.com/problems/find-median-from-data-stream/ 这道题目实在是不错,所以单独拎出来. https://discuss.leetc ...
- Win8下建立shortcut到開始界面
在win8前建立開始菜单都非常easy,但到win8就有点不一样了.它的開始菜单是metro风格的.以下我们来看下详细的实现代码.有兴趣的朋友能够自己測试下,它的作用是设置shortcut到metro ...
- 创建MAVEN项目报错
创建MAVEN项目pom.xml报错 Failure to transfer org.apache.maven:maven-archiver:jar:2.4.2 from http://repo.ma ...
- MySQL主从复制和读写分离
我们知道应用对数据库的訪问通常情况下大部分都是读操作,写仅仅占非常少一部分.因此读写分离(read-write-splitting)能有效减少主库压力,从而解决站点发展过程中遇到的第一次数据库瓶颈. ...
- org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的systemPropertiesModeName属性
转自:https://www.cnblogs.com/huqianliang/p/5673701.html 使用PropertyPlaceholderConfigurer类载入外部配置 在Spring ...
- golang 初体验
1.下载golang https://code.google.com/p/go/downloads/list 在windows下安装,下载windows32版本 2.安装 安装完毕,默认在C:\Go ...
- Hdu-6230 2017CCPC-哈尔滨站 A.Palindrome Manacher 主席树
题面 题意:给你一个字符串,问你满足s[i]=s[2n-i]=s[2n+i-2]的子串(这子串长度为3n-2)有多少个,原字符串长度<=5e5 题解:对于这种子串,其实要满足2个回文,跑过一次M ...