vc++ basic chapt1
______API 和SDK
_像c程序可以调用各种函数库一样,
windows操作系统提供应用程序编程的接口application programming interface简称API函数。
所以主要的windows函数斗争windows.h头文件中进行了声明。
_Windows操作系统提供了1000多种API函数,其拼写和语法可以在MSDN中查找。
_Win32 SDK。 SDK全称software development kit,中文译名软件开发包。sdk是开发资源的一个集合。
win32 SDK,即Windows32位平台下的软件开发包,包括了API函数、帮助文档、微软提供的一些辅助开发工具。
______MFC(see chapt3 for detail)
microsoft foundation class,微软基础类库,是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用。
_MFC AppWizard是一个辅助我们生成源代码的想到工具,可以帮助我们自动生成基于MFC框架的源代码。
______窗口和句柄
一个Windows应用程序至少有一个窗口,称为主窗口。对话框和消息框也是一种窗口
___窗口可以分为:
非客户区:由windows系统来管理
客户区:其外观和操作由应用程序来管理。
_窗口是通过窗口句柄HWND来标记的,通过句柄对这个窗口操作。
_句柄是windows程序中一个重要的概念。
_Windows程序中,有各种各样的资源(窗口、图标、光标等),
系统在创建这些资源时会为它们分配内存,
并返回标记这些资源的标记号,即句柄。除了窗口句柄HWND外,还有图标句柄HICON,光标句柄HCURSOR和画刷句柄HBRUSH.
______消息与消息队列
_Windows程序设计是一种基于事件驱动的程序设计模式,主要是基于消息的。
_消息是由MSG结构体来表示的。
typedef struct tagMSG
{
HWND hwnd; //window handle
UINT message; //message identifier
//eg:WM_LBUTTONDOWN,WM_CHAR,WM_KEYDOWN
WPARAM wParam; //unsigned int
LPARAM lParam; //long
DWORD time; //消息投递到消息队列中的时间
POINT pt; //鼠标当前的位置
}MSG;
_消息队列:
每一个Windows应用程序开始执行后,系统都会为其创建一个消息队列,用来存放该程序窗口创建的窗口的消息。
_进队消息和不进队消息
__________WinMain函数
__Win32程序的例子,实现的功能是创建一个窗口,响应键盘及鼠标消息。
WinMain函数的定义
创建一个窗口
进行消息循环
编写窗口过程函数
_WinMain函数的定义
int WINAPI WinMain(
HINSTANCE hInstance, //handle to current instance
HINSTANCE hPrevInstance, //handle to previous instance
//在win32下,这个参数总是NULL
LPSTR lpCmdLine, //CONST CHAR* , command line
//以空终止的字符串,传递给应用程序的命令行参数
int nCmdShow //show state,窗口如何显示
);
_窗口的创建
1,设计一个窗口类
2,注册窗口类
3,创建窗口
4,显示及更新窗口。
_资源的标记
资源通过标记符ID来标记,ID实质上是一个整数,在resource.h定义为一个宏。IDM_XXX(M表示菜单),图标IDI_XXX,按钮IDB_XXX.
vc++ basic chapt1的更多相关文章
- vRO 添加已有磁盘到VM
在vRO实现将已有虚拟机磁盘添加到另外的虚拟机上,以为vRA发布Oracle/SQL集群做准备: // 脚本需要两个输入 vm_obj和diskPathSystem.log("Attempt ...
- Delphi、C C++、Visual Basic数据类型的对照 转
Delphi.C C++.Visual Basic数据类型的对照 变量类型 Delphi C/C++ Visual Basic 位有符号整数 ShortInt char -- 位无符号整数 Byte ...
- VC++动态链接库(DLL)编程深入浅出(zz)
VC++动态链接库(DLL)编程深入浅出(zz) 1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用 ...
- Version history of VC++, MFC and ATL
I have tried to assemble together information about the Visual C++ releases, the compiler and the fr ...
- VC创建预编译文件
Building a simple "hello world" Ogre application can take several seconds on a modern mach ...
- VC++NMAKE
目录 第1章 NMAKE 1 1.1 运行NMAKE 1 1.1.1 NMAKE的实质 2 1.2 描述块 3 1.2.1 定义 3 1.2.2 多个描述块 3 1 ...
- C++Builder和VC的比较
C++Builder和VC的比较 其实很久以前我就想写这篇文章,其原因一方面是因为笔者深深感觉到C++ Builder的确是一个先进与强大的程式开发工具,但更最重要的一点是,我深信C++ Builde ...
- VC项目配置基础以及快捷键(收藏)
来自http://blog.csdn.net/phunxm/article/details/5082488 一.IDE基础配置 1.字体 VC6中“Tools→Options→Format→Font” ...
- A basic Windows service in C++ (CppWindowsService)
A basic Windows service in C++ (CppWindowsService) This code sample demonstrates creating a basic Wi ...
随机推荐
- HC系列蓝牙模块连接单片机与电脑,传输数据(蓝牙心电测试)
毕设做无线心电监护.有线的做出来了,AD8232+MCU+LabVIEW上位机.pcb还没时间搞,这个9*7*2.5cm拿来测试能用. 自己做了AD8232的模拟前端,打的板子还没到没法测试. 虽然比 ...
- Flume 实战(1) -- 初体验
前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...
- 动态添加Marquee标签,并动态赋值与属性
前台加载js $(function(){ var publishStr="<%=publishText%>" var marqueeStr=" <mar ...
- Objective-c——UI基础开发第十天(自动布局)
一.autoresizing 的使用(了解) 只能参照父控件 1.实现横竖屏幕切换,不能把控件的frame血丝,需要进行屏幕适配 2.需要参照父控件 use auto layout禁用 才会出现aut ...
- LeetCode() Issomorphic Strings
bool isIsomorphic(string s, string t) { int size=s.size(); if (size==0) return true; char ch[128],is ...
- SQL 数据库的使用
<1>存到数据库 CSql Sql; Sql.SqlSave(15, &m_SALink, 0, 0, 0, 0); <2>取数据 int *pt = new int[ ...
- Unity3d 引擎原理详细介绍
体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...
- HighCharts使用心得
HighCharts使用心得 前言: 之前很早的一个项目中使用过highcharts,感觉挺方便的,图表类型也比较丰富,而且还支持数据的下钻,但是如果投入商业使用的话还会有一些版权的问题,所以后来就使 ...
- 基于MATLAB的GUI(Graphical User Interface)音频实时显示设计
摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧.通过”录音“按钮可以实现声音从电脑的声 ...
- HTML 事件属性_03
全局事件属性 HTML 4 的新特性之一是可以使 HTML 事件触发浏览器中的行为,比方说当用户点击某个 HTML 元素时启动一段 JavaScript. 如果你想学习更多关于事件属性,请访问 Jav ...