自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 LoadCursor()函数

加载光标

2013-04-19 23:39:11 1150 1

原创 LoadIcon()函数

加载图标

2013-04-19 23:38:44 1099

原创 资源描述文件

资源描述文件(rc文件)是以文字描述资源的文件。这些文字要经过资源编译器才能产生可用的二进制代码,并以各种扩展名存在,如.ico、.bmp、.cur等。所谓的资源是指菜单、对话框、图标、光标形状等。常用的资源有Accelerator、Dialog、Icon、Menu和String Table。对资源文件的调用,一般都在窗口初始化部分完成。在同一个Windwo

2013-04-19 23:32:14 11829

原创 模块定义文件

Windows程序都有一个模块定义文件,其将模块名称、程序段和数据段的内存需求、模块堆(heap)大小、堆栈(stack)大小及所有回调(callback)函数名称等都记录下来。模块定义文件(.def文件)指导Windows连接程序进行连接,并通知连接程序如何产生最终的可执行文件。 模块定义文件完成以下工作:1、定义应用程序名;2、标识应用程序为Windows应用程序;3、

2013-04-18 18:19:54 815

原创 Windows的对话框

Windows的对话框根据其与父窗口的关系,可分为模式对话框与无模式对话框两类。模式(modal)对话框:当该类对话框运行时,其父窗口无效,直到该对话框结束。无模式(modeless)对话框:该类对话框可与父窗口共同运行。 一个完整的对话框一般包含对话框面板与函数两部分:对话框模版:是在RC文件中定义的一个对话框,以各种方式决定对话框的大小、有哪些控件、各在什么位置等。对话

2013-04-18 18:08:47 1143

原创 消息映射

消息映射的本质其实是一个巨大的数据结构,用来为诸如WM_PAINT之类的标准信息决定流动路线,使其到达父类去。消息映射也用来为WM_COMMAND这个特殊的信息决定流动路线,使其能够到达类派生结构的分支去。消息映射是MFC内建的一个信息分派机制。利用消息映射宏及其固定形式的写法,一旦信息发生,就可以知道信息该向哪里传送。 消息映射表消息消息映射宏消息处理程序

2013-04-18 17:53:16 397

原创 CreateWindow()函数

产生窗口,并不显示窗口。

2013-04-18 17:14:06 884

原创 RegisterClass()API函数

注册窗口类

2013-04-18 17:13:17 667

原创 句柄

句柄是用来标志被应用程序建立或使用的对象的唯一整数。Windows要使用各种各样的句柄来标志窗口、菜单、输出设备及文件等。句柄的功能与指针类似。用户必须通过某种方式来创建句柄,并要保证在使用完后销毁掉,以免造成资源浪费。Windows中有很多种句柄,如HWND(窗口句柄)、HDC(设备描述句柄)及HINSTANCE(实例句柄)等,这些句柄都可以用HANDLE(通用句柄)来表示。 句

2013-04-18 14:40:01 486

原创 动态链接技术

动态链接是相对于静态链接而言的,当多个应用程序一起运行,并且均调用了某函数的代码时,此时动态链接库允许这些应用程序共享该函数的代码,以达到节省内存的效果。动态链接发生在程序运行时,其是在应用程序调用Windows API函数运行时才链接上的。但在链接时,链接器要先为调用者准备一些适当的信息,才能够在运行时顺利转到DLL执行。在动态链接中,所要调用的函数代码并没有被复制到可执行文件中去,而是仅仅

2013-04-18 13:06:40 811

原创 消息处理流程

一般情况下,系统需要维护一个或多个消息队列,所有产生的消息都会被插入消息队列中。系统从队列中取出消息后,根据消息的参数而将该消息发送到指定程序的消息循环中,每一个运行的程序都拥有自己的消息循环。消息循环简而言之就是一个循环体。在这个循环体中使用GetMessage()函数不停地从消息队列中获取信息,然后利用DisPatchMessage()函数将消息发送到指定窗口,也就是调用指定窗口的窗口过程,并

2013-04-18 11:13:31 667

原创 MessageBox()API函数

原型:int MessageBox ( HWND hwnd, LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK)参数:第一个参数指明此消息框的父窗口句柄,为NULL则说明没有父窗口。    第二、三个参数类型君威字符串指针,分别指向消息框中要显示的字符串和消息框标题栏显示的字符串。    第四个参数是一个无

2013-04-18 10:42:48 792

原创 windows.h头文件

windows.h,是Windows程序最基本的头文件,它包含在SDK中。该头文件定义了Windows的所有函数原型、消息、多种数据类型、数据结构及符号常量等。windows.h必须包含于每个Widnows应用程序中。

2013-04-18 10:19:25 2717

原创 Windows消息

Windows可以发送给窗口的消息大约有140调,它们都以WM打头的名字标识,且都在“windows.h”头文件中定义。 不论哪种窗口消息,都必须被处理,因此switch中的default必须调用Windows内部预设的信息处理函数DefWindowProc()。

2013-04-18 10:14:48 349

原创 Win32程序开发流程

Windows程序分为源程序和资源两部分。源程序经由C/C++编译器生成.obj文件。资源部分经由RC编译器,读取RC文件的描述后,将所有资源文件集中制作出一个.res文件。.res文件与.obj文件结合在一起,集成为一个完整的.exe可执行文件,该文件才是一个完整的Windows应用程序。其开发与执行流程如下图:

2013-04-18 09:59:44 555

原创 Windows常用变量前缀表

前缀数据类型bBOOLbyBYTE(无符号字符)c或chchar/WCHAR/TCHARclrCOLORREF,24位颜色值cx、cy水平或垂直距离C类dwDWORDfnfunction(函数)hhandle(句柄)Iint

2013-04-18 09:43:15 965

原创 应用程序退出时的消息过程

当用户单击应用程序的“文件|退出”菜单时,Windows会产生一系列消息,如键盘或鼠标消息、WM_SYSCOMMAND消息和WM_CLOSE消息。WM_CLOSE是一条进队消息,被放入应用程序消息队列中。GetMessage()函数从消息队列中取得WM_CLOSE消息,由DispatchMessage()函数派送给窗口函数。若窗口函数没有对WM_CLOSE消息处理的代码,就转由默认窗口函数调用De

2013-04-17 19:22:09 543

原创 获取设备描述表句柄示例

case WM_PAINT: // 重画窗口客户区消息 HDC hdc; // 定义设备描述表句柄 PAINTSTRUCT ps; // 定义绘图信息结构变量 hdc = BeginPaint(hwnd, &ps); // 获取需重画窗口的设备描述表句柄 /* * 参数一:设备描述表句柄 * 参数二、三:指定输出位置坐标 * 参数四:要输出的字符串

2013-04-17 18:15:05 661

原创 设备描述表(DC)

设备描述表(DC)也成为设备上下文,是GDI内部定义的有图形对象、图形方式及其属性的数据结构。其与特定设备相关,描述了硬件设备的具体特征信息。应用程序不能直接访问设备描述表。为了进行图形输出,应用程序必须先获取设备描述表句柄,然后以设备描述表句柄为参数调用GDI函数,最终实现图形功能。

2013-04-17 18:00:37 502

原创 图形设备接口(GDI)

Windows的图形设备接口(GDI)是一组API函数。他提供与设备无关的图形功能,是应用程序在不同图形设备上进行相同的操作时,无需考虑设备的硬件差异,即设备的无关性。设备无关性是通过设备描述表实现的。

2013-04-17 17:57:22 465

原创 进队消息与不进队消息

有些用户操作可能即产生进队消息,又产生不进队消息。并且有些不进队消息来自进队消息 。例如,退出应用程序时会产生一条进队消息WM_CLOSE,消息循环将其发送到窗口函数,处理该消息一般是调用DestroyWindow()来撤销并关闭窗口,并发送不进队消息WM_DESTROY到窗口函数。 消息是否进入队列由Windows自行操作,程序设计人员只需着力编写窗口函数即可。

2013-04-17 12:13:13 568

原创 SendMessage()API函数

原型:LRESULT WINAPI SendMessage( HWND hWnd, UINT Msg, WPARAM WParam, LPARAM lParam); 程序可以通过调用SendMessage()函数直接发送消息给指定窗口。

2013-04-17 12:07:53 762

原创 PostMessage()API函数

原型:BOOL WINAPI PostMessage ( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );参数:Msg参数指定了要发送的消息值。 调用API函数PostMessage()可以派送(post)一条消息到指定窗口的消息队列。

2013-04-17 12:04:53 758

原创 不进队消息

该类消息被直接发送(send)给指定窗口的窗口函数进行处理,而不进入消息队列。程序调用某些特定的API函数会产生不进队消息。

2013-04-17 12:02:46 465

原创 进队消息

该类消息是由Windows放入应用程序消息队列,再由消息循环从消息队列中取出并发送到窗口函数的消息。进队消息一般由用户操作产生。

2013-04-17 12:01:09 406

原创 消息汇总

WM_PAINT 消息表示 窗口客户区需要重画;WM_DESTROY 消息表示 窗口要被撤销;

2013-04-17 11:55:05 375

原创 WndProc()函数

原型:LRESULT CALLBACK WndProc (HWND hwnd, UNIT message, WPARAM wParam, LPARAM lParam);参数:第一个参数表示当前窗口的句柄            第二个参数是需要处理的消息值            第三、四个参数包含了相应消息的信息,例如消息发生时鼠标位置等。 应用程序创建的每个窗口或对话框都对应一

2013-04-17 11:53:21 1994

原创 DispatchMessage()函数

函数DispatchMessage()负责将消息派送到相应的窗口函数。它根据msg结构中的hWnd窗口句柄成员找到相应的窗口类 ,然后根据注册窗口时wndclass类结构找到相应的窗口函数WndPorc()。由消息传递函数将消息传递给窗口函数WndPorc()进行消息处理。

2013-04-17 11:46:22 2260

原创 TranslateMessage()函数

函数TranslateMessage()负责键盘消息转换。击键消息除字符消息外,其它击键操作产生的虚拟键消息,包括WM_KEYDOWN、WM_SYSKEYDOWN、WM_KEYUP和WM_SYSKEYUP。这些虚拟键消息必须转换成字符键消息程序才能响应。

2013-04-17 11:42:11 805

原创 UpdateWindow()API函数

参数:第一个参数是要现实的窗口句柄;      第二个参数是窗口显示的方式。 更新窗口

2013-04-16 20:32:54 1248

原创 ShowWindow()API函数

参数:第一个参数是要现实的窗口句柄;            第二个参数是窗口显示的方式。显示窗口

2013-04-16 20:32:33 1128

原创 GetMessage()函数

原型:BOOL WINAPI GetMessage(LPMSG, HWND, UINT, UINT) 参数:第一个参数为存放消息的MSG结构指针;      第二个参数表示接收消息的窗口句柄;      第三、第四个参数分别标识要获取的最大和最小消息值。      当后三个参数值设为NULL或0时,标识应用程序接收它所创建的所有窗口的所有消息。

2013-04-16 20:32:05 2275 1

原创 WinMain()函数

原型:int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)参数:第一个参数hInstance是唯一标识本程序的实例句柄,系统和其他应用程序通过该句柄与本程序通信。      第二个参数hPrevInstance是本程序的前一个实例句柄,由于3

2013-04-16 20:31:40 1194

原创 Windows应用程序的基本要素

Windows应用程序有相对固定的程序结构,其基本要素一般包含一个入口函数WinMain()和至少一个窗口处理函数WndProc()。入口函数WinMain()首先进行初始化工作,注册窗口类、创建窗口,然后进行消息循环。窗口处理函数使用switch语句,针对不同消息进行相应的处理。

2013-04-16 20:31:10 529

原创 Windows程序的生命周期

实例参见《典型的Windows应用程序代码》一文! (1)程序初始化过程中首先调用函数CreateWindow(),为程序建立一个窗口。CreatWindow产生窗口后会发送WM_CREATE直接给窗口函数,于是后者可以在此时做些初始化操作(例如打开文件、读初始数据等)。(2)程序存活期间,函数GetMessage()不断从消息队列中检索消息。如果这个消息是WM_QUIT,

2013-04-16 20:30:44 817

原创 典型的Windows应用程序代码

#includeLRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ WNDCLASS wndclass; // 定义窗口类结构变量 HW

2013-04-16 20:29:05 875

原创 Windows对象

Windows对象是Windows操作系统的一个内部数据结构的实例。其由一个Windows系统全局的窗口句柄来唯一标志,由API函数CreateWindow()创建,而由DestroyWindow()撤销。在MFC编程中,通常在MFC对象建立以后,调用Create()成员函数建立Windows对象,并链接在MFC对象上。

2013-04-16 20:27:40 427

原创 MFC对象

MFC对象是C++对象,而且是特指封装了Windows对象的C++对象,并不是任意的C++对象。

2013-04-16 20:26:40 423

原创 MFC

MFC(Microsoft Foundation Class Library)是Visual C++的微软基础类库,包含了所有与系统相关的类(包括图形界面相关的类),封装了大部分API函数,并提供了一个应用程序框架和开发应用程序的工具,如应用程序向导、类向导及可视化资源设计等高效工具,使Windows程序设计标准化。因此,MFC Windows编程又被成为标准Windows程序设计。

2013-04-16 20:26:02 423

原创 Windows应用程序的消息驱动式结构

整个Windows应用程序由消息循环与窗口过程函数构成,形成了消息驱动式结构。 下图为Windows编程模型:

2013-04-16 20:25:23 531

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除