学习笔记_VC++深入详解(第一章)(part1)
来源:互联网 发布:淘宝卖书需要什么证 编辑:程序博客网 时间:2024/04/30 12:24
目录
1.API和SDK
2.句柄
3.消息和消息队列
4.WinMain函数
一.API和SDK
- Windows API:是操作系统提供给应用程序编程的接口(Application Programming interface)。
- Win32 SDK:Windows 32平台下的软件开发包,包括API函数,帮助文档和一些辅助开发工具。
二.句柄
句柄:句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。
三.消息和消息队列
消息:用于操作系统调用用户程序,在Window程序中,消息又MSG结构体来表示:
typedef struct tagMSG{
HWND hwnd; 窗口句柄(索引内存当中的资源)
UINT(无符号整型) message;
WPARAM(整型) wParam; //关于消息的附加参数,例如:按下一个键,具体是哪个按键
LPARAM(整型) LParam; //关于消息的附加参数
DWORD(32位整数) time;//消息被传递时候的时间
POINT(坐标结构体) pt; //消息被传递时候,光标在屏幕上的位置
} MSG;
消息队列:Windows给应用程序创建的,用来存放该应用程序中窗口的消息。
进队消息:由Windows放入到应用程序的消息队列中,再由应用程序取出并发送到相应窗口。
不进队消息:由Windows直接调用窗口过程函数,直接发送给窗口。
注:无论进队消息还是不进队消息,都是由窗口过程函数对消息进行处理。
四.WinMain函数
函数原型:
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTRlpCmdLine,
int nCmdShow
);
hInstance:应用程序当前事例的句柄。
hPrelnstance:应用程序的先事例的句柄。对于同一个程序打开两次,出现两个窗口,第一次打开的窗口就是先前实例的窗口。对于一个32的位程序,该参数总为NULL。
-如果需要检测另外一个事例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。例如:
HANDLE handle= CreateMutex(NULL,TRUE,_T("testmsg"));
if (handle==NULL)
{
return FALSE;
}
互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回ERROR_ALREADY_EXISTS,这就表明在应用程序中有另外一个事例存在,因为它首先创建了互斥名。
if(GetLastError()==ERROR_ALREADY_EXISTS)
{
CloseHandle(handle);
handle = NULL;
return FALSE;
}
lpCmdLine:是一个以空终止的字符串,指定传递给应用程序的命令行参数。
-用GetCommandLine可获得整个命令行。
-要在VC++开发环境中向应用程序传递参数,可以单击菜单【Project】→【Settings】,选择“Debug”选项卡,在“Program arguments”编辑框中输入你想传递给应用程序的参数。
nCmdShow:指明程序的窗口如何显示。该参数可以是下列值之一:
SW_SHOWNA:以窗口的当前状态显示窗口。激活窗口保持活动状态。
SW_SHOWNOACTIVATE:以窗口的最近一次的尺寸和位置显示窗口。激活窗口维持激活状态。
SW_SHOWNORMAL:激活并显示窗口。如果窗口最大化或最小化,系统将其恢复到原来的尺寸和位置(与SW_RESTORE相同)。
SW_HIOE:隐藏窗口并且激活另外一个窗口。
SW_MINIMIZE:最小化指定的窗口,并且激活在系统表中的顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口已经最小化或最大化,系统将以恢复到原来的尺寸和位置显示窗口(与SW_SHOWNORMAL相同)。
SW_SHOW:激活一个窗口并以原来的尺寸和位置显示窗口。
SW_SHOWMAXIMIZED:激活窗口并且将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其目标化。
SW_SHOWMINNOACTIVE:将一个窗口显示为图标。激活窗口维持活动状态。
- 学习笔记_VC++深入详解(第一章)(part1)
- 学习笔记_VC++深入详解(第一章)(part2)
- 读书笔记(一)_VC++深入详解
- VC++深入详解第一章学习笔记
- VC++深入详解第一章学习笔记
- 深入理解计算机系统(第一章学习笔记)
- 深入解析Oracle学习笔记(第一章)
- VC++深入详解 笔记 第一章
- 《VC++深入详解》学习笔记 第一章 Windows程序内部运行机制
- 读书笔记(二)_VC++深入详解&Android应用开发教程
- 《深入理解Linux内核》学习笔记-第一章
- 《深入理解计算机系统》- 学习笔记 - 第一章
- 《深入理解C#》学习笔记之第一章
- 深入理解计算机系统第一章学习笔记
- python学习笔记 part1
- MFC简明教程笔记之第一章part1
- 《软件调试》学习笔记——003 (第一章 软件调试基础 part1)
- VC++深入详解第一章
- 娃娃鸭《Delphi 6集成开发环境》笔记VI
- "" 和string.empty的区别
- [ZT]B 树、B- 树、B+ 树、B* 树都是什么
- SharePoint 2007 成功搭建
- WPF学习笔记二
- 学习笔记_VC++深入详解(第一章)(part1)
- 不要轻易下结论
- Linux下C语言编程 -- 进程通信、消息管理
- 中文核心期刊目录(2008年版).
- OpenFrameWorks------VS 2005中编译环境搭建
- 浪潮之巅 第二章 蓝色巨人 IBM (4) 他也是做(芯)片的
- 如何检索国外文献(很有用的)
- 【Android 自我学习】activecreateor.bat 的解释
- 最全牛人博客,你可以学习到太多太多