______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的更多相关文章

  1. vRO 添加已有磁盘到VM

    在vRO实现将已有虚拟机磁盘添加到另外的虚拟机上,以为vRA发布Oracle/SQL集群做准备: // 脚本需要两个输入 vm_obj和diskPathSystem.log("Attempt ...

  2. Delphi、C C++、Visual Basic数据类型的对照 转

    Delphi.C C++.Visual  Basic数据类型的对照 变量类型 Delphi C/C++ Visual Basic 位有符号整数 ShortInt char -- 位无符号整数 Byte ...

  3. VC++动态链接库(DLL)编程深入浅出(zz)

    VC++动态链接库(DLL)编程深入浅出(zz) 1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用 ...

  4. Version history of VC++, MFC and ATL

    I have tried to assemble together information about the Visual C++ releases, the compiler and the fr ...

  5. VC创建预编译文件

    Building a simple "hello world" Ogre application can take several seconds on a modern mach ...

  6. 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 ...

  7. C++Builder和VC的比较

    C++Builder和VC的比较 其实很久以前我就想写这篇文章,其原因一方面是因为笔者深深感觉到C++ Builder的确是一个先进与强大的程式开发工具,但更最重要的一点是,我深信C++ Builde ...

  8. VC项目配置基础以及快捷键(收藏)

    来自http://blog.csdn.net/phunxm/article/details/5082488 一.IDE基础配置 1.字体 VC6中“Tools→Options→Format→Font” ...

  9. A basic Windows service in C++ (CppWindowsService)

    A basic Windows service in C++ (CppWindowsService) This code sample demonstrates creating a basic Wi ...

随机推荐

  1. java类型转化之SimpleDateFormat-时间转化

    关于Date,时间戳(long),String类型之间的相互转换,主要是用到类SimpleDateFormat. 先介绍SimpleDateFormat类的一些常见格式: 1.参数: code des ...

  2. spring mvc 请求转发和重定向

    spring mvc controller间跳转 重定向 传参 url:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ ...

  3. Linux集群及LVS简介

    一.什么是集群 通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的 ...

  4. js封装的方法

    1.JS封装就是尽量把使用的方式简单化,内部逻辑和使用解耦.通俗的说就是使用的时候只需要知道参数和返回值,其他条件尽量不要使用人员进行设置. 2.JS封装的方法有函数方式.对象的方式.闭包的方式. 举 ...

  5. MFC ListContrl 的使用

    m_ISESTList.SetExtendedStyle(m_ISESTList.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINE ...

  6. docker2

    https://github.com/docker/distribution daocloud 数人云 时速云 http://jpetazzo.github.io/2014/06/23/docker- ...

  7. 一步步构建自己的AngularJS(2)——scope之$watch及$digest

    在上一节项目初始化中,我们最终得到了一个可以运行的基础代码库,它的基本结构如下: 其中node_modules文件夹存放项目中的第三方依赖模块,src存放我们的项目代码源文件,test存放测试用例文件 ...

  8. UVA 11082 矩阵解压(网络流建模)

    矩阵解压 紫书P374 建模真的是挺难的,如果直接给我这题,我是想不到用网络流的,所以还应多做网路流建模,学会如何转化成网络流 还有,现在用的EK算法是比较慢的,还应去看看Dnic和ISAP,并且理解 ...

  9. typedef struct 结构体

    typedef struct _TTTT_ {   int    i;  }TT_TT; 定义变量如下: struct _TTTT_  NewTT;方法1 TT_TT NewTT;方法2 是声明和定义 ...

  10. 面向对于javascript编程

    以构造函数的方式定义对象 function Person(name, age) { this.name = name; this.age = age; this.sayName = function ...