自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

翻译 非模态对话框

非模态对话框    一个非模态对话框应该是一个拥有窗口菜单,标题栏和一个窄边框的弹出式窗口。即,对话框模板应该指定WS_POPUP,WS_CAPTION,WS_BORDER和WS_SYSMENU风格。系统不会自动的显示对话框,除非对话框模板指定了WS_VISIBLE风格。    应用程序通过调用CreateDialog函数或CreateDialogIndirect函数来创建一个非模态对话框

2012-11-04 23:44:31 724

翻译 模态对话框

模态对话框    模态对话框应该是拥有一个窗口菜单、一个标题栏和一个宽边框的弹出式窗口,对话框模板应该指定WS_POPUP,WS_SYSMENU,WS_CAPTION和DS_MODALFRAME风格。尽管应用程序可以指定WS_VISIBLE风格,但是系统总是显示一个模态对话框,虽然对话框模板指定了WS_VISIBLE风格。应用程序不能创建一个WS_CHILD风格的模态对话框。一个有WS_CHI

2012-10-29 23:11:34 887

翻译 何时使用对话框

何时应该使用一个对话框    大多数应用程序使用对话框来为那些需要用户输入的菜单项提示额外的信息。如果一个程序需要输入,那么使用对话框是唯一推荐的方式。例如,一个典型的“打开”菜单项需要一个文件的名字来打开文件,因此程序应该使用一个对话框来提示用户输入文件名。在这种情况下,当用户点击菜单项时,应用程序会创建一个对话框,当用户提供信息之后,应用程序会立即撤销对话框。    当用户在另

2012-10-25 12:55:49 517

转载 函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal, __thiscall)

关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解。        microsoft的vc默认的是__cdecl方式,而windows API则是__stdcall,如果用vc开发dll给其他语言用,则应该指定__stdcall方式。堆栈由谁清除这个很重要,如果是要写汇编函数给C调用,一定要小心堆栈的清除工

2012-10-24 17:08:27 399

转载 C++初始化列表

C++ 初始化列表何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。struct foo{ string name ; int id ; foo(string s, int i):name(s), id(i){} ; // 初始化列表};

2012-10-12 18:21:41 377

翻译 窗口类的类型(Types of Window Classes)

窗口类的类型(Types of Window Classes)    系统类(System Classes)    系统类是由系统注册的窗口类。许多系统类对所有的进程都是可用的,然而有些系统类只能由系统在内部使用。因为系统注册了这些类,进程不能撤销它们。    每个Win32应用程序接收它自己对系统类的拷贝。    下面描述的是所有进程可用的的系统类:Button --

2012-09-29 21:28:56 820

翻译 关于窗口类(About Window Classes)

关于窗口类(About Window Classes)    每个窗口类都有一个相关联的窗口过程,这个窗口过程被所有属于这个类的窗口所共享。窗口过程为这个类所有的窗口处理消息,可以控制这些窗口的行为和外观。    一个进程在创建类所属窗口之前,必须注册一个窗口类。注册窗口类可以关联一个窗口过程,指定类的风格,类的名字以及类的其它属性。当一个进程在CreateWindow或CreateWin

2012-09-29 20:45:42 435

翻译 发送消息(Sending a Message)

发送消息(Sending a Message)    SendMessage函数被用来直接发送消息到一个窗口过程。SendMessage函数调用一个窗口过程并等待这个窗口过程处理消息然后返回一个结果。    一个消息可以被发送给系统中的任何窗口,只需要一个窗口句柄。系统利用这个句柄来决定哪个窗口过程应该接收这个消息。    在处理一个可能由其他线程发送的消息之前,一个窗口过程应该首先调

2012-09-29 18:42:17 1328

翻译 发布消息(Posting a Message)

发布消息(Posting a Message)    你可以利用PostMessage函数把一个消息发布到一个消息队列。PostMessage函数把一个消息放到一个线程消息队列的末端,然后会立即返回,而不用等待线程处理完这个消息。这个函数的参数包括一个窗口句柄,一个消息标识符,和两个消息参数。系统会把这些参数复制到一个MSG结构中,填充结构的time和pt成员变量,并把这个结构发到消息队列中。

2012-09-29 18:13:49 758

翻译 检查消息队列(Examining a Message Queue)

检查消息队列(Examining a Message Queue)    一个应用程序需要检查来自于线程消息循环之外的一个线程消息队列的内容。例如,如果应用程序的窗口过程正在执行一个很长的绘画操作,但是你可能想要用户可以中断这个操作。除非你的应用程序可以在鼠标和键盘消息输入时定期检查消息队列,否则它将不会响应用户输入直到这个操作结束。这个情况发生的原因是在线程消息队列中,DispatchMes

2012-09-28 23:19:11 860

转载 程序员,请昂起你高贵的头!

程序员与艺术家我这辈子最佩服两类人,一类是艺术家,一类是程序员。一个好的程序员从在某种程度上来说也是一个艺术家!艺术家是精神世界及其丰富的人群,他们不仅自己享受着艺术的魅力,也为全人类的精神文明指引着方向!程序员,他们是城市中的白领,不仅自己享受着编码的乐趣,也推动着信息世界不断向前发展。在这个信息爆炸的年代,哪个行业能离开计算机?能离开程序员?月经贴可是,就是这样艺术家一

2012-09-28 18:25:11 1364

翻译 创建消息循环(Creating a Message Loop)

创建消息循环(Creating a Message Loop)        系统自动为每个线程创建一个消息队列。如果一个线程创建一个或多个窗口,那么不需提供一个消息循环。这个消息循环从线程消息队列中获取消息并把这些消息发配给合适的窗口过程。       因为系统为程序中单个的窗口指定消息,一个线程必须至少创建一个窗口在开始它的消息循环之前。大部分Win32程序包含只一个线程来创建窗口。一

2012-09-28 17:58:01 1261

翻译 广播消息(Broadcasting Messages)

广播消息(Broadcasting Messages)    每个消息是由一个消息标识符和两个参数,wParam和lParam组成。消息标识符是一个唯一值指定消息目的。两个参数提供额外的信息,但是wParam参数通常是一个类型值,可以提供更多的关于消息的信息。    一个消息广播仅仅是为系统中多个接收者发送消息。为了从一个应用程序中广播消息,利用BroadcastSystemMessage

2012-09-28 00:07:37 2584

翻译 消息死锁(Message Deadlocks)

消息死锁(Message Deadlocks)    当一个线程调用SendMessage函数给其他线程发送消息时,这个线程不能继续执行,只到接收消息的窗口过程返回。如果接收消息的线程在处理消息时放弃了控制,发送消息的线程不能继续执行,因为这个线程在等待SendMessage函数返回。如果接收消息的线程与发送消息的线程都依附于同样的消息队列,那么这可以引起应用程序的死锁。    要注意的是

2012-09-27 12:22:47 1611

翻译 发布和发送消息(Posting and Sending Messages)

发布和发送消息(Posting and Sending Messages)       任何应用程序都可以发布和发送消息。像系统一样,应用程序通过复制消息到消息队列来发布消息,通过把消息作为参数传递给窗口过程来发送消息。应用程序可以利用PostMessage函数来发布消息。应用程序也可以通过调用SendMessage,BroadcastSystemMessage,SendMessageCall

2012-09-22 16:17:25 1094

翻译 消息过滤(Message Filtering)

消息过滤(Message Filtering)        通过调用GetMessage和PeekMessage函数,应用程序可以指定一个消息过滤器,从消息队列中获取特定的消息而忽略其它的消息。这个过滤器是一个消息标识符的范围(通过指定第一个和最后一个标识符),或者一个窗口句柄,又或者两者都是。GetMessage和PeekMessage函数利用消息过滤器从队列中选择消息。如果应用程序必须在

2012-09-22 01:05:25 1827

翻译 消息处理(Message Handling)

消息处理(Message Handling)       应用程序必须移除并处理被发布到线程消息队列中的消息。一个单线程应用程序通常利用消息循环在WinMain函数中,移除并发送消息到合适的窗口过程进行处理。多线程应用程序可以在每个创建窗口的线程里包括一个消息循环。接下来的部分描述了消息队列如何工作以及解释了窗口过程的地位:        消息循环(Message Loop)

2012-09-16 00:23:41 750

翻译 消息发送(Message Routing)

消息发送(Message Routing)       系统利用两种方法发送消息到窗口过程函数:1.把消息发送到一个先进先出(First-in,First-out)的队列,这个队列是系统定义的临时存放消息的内存对象。2.直接把消息传递给窗口过程函数。       被发送给消息队列的消息是队列消息。它们主要是用户通过鼠标和键盘输入引起的消息,例如WM_MOUSEMOVE,WM_LBUTTON

2012-09-15 10:26:42 1095

翻译 消息类型(Message Types)

消息类型(Message Types)       系统定义消息(System-Defined Message)       当需要和应用程序通信时,系统会发送一个系统定义的消息。系统利用这些消息控制应用程序的操作,并且提供输入和其它信息让应用程序处理。应用程序也可以发送系统定义的消息。应用程序通常利用这些消息来控制窗口控件的操作,这些窗口控件是事先注册的窗口类创建的。       每

2012-09-10 23:48:50 5935

翻译 窗口消息(Windwo Messages)

窗口消息(Windwo Messages)    系统以消息的形式把输入传递给窗口处理过程函数。消息是由系统和应用程序共同产生的。系统会在每个输入事件发生时产生一个消息,例如用户打字,移动鼠标或点击控件(像滚动条)事件。当应用程序对系统带来改变时,系统也会产生消息来响应这种改变,例如应用程序改变系统字体资源或调整其窗口尺寸。应用程序也会产生消息指挥其窗口执行任务或和其它程序窗口进行通信。

2012-09-10 22:42:47 650

翻译 消息和消息队列(About Message and Message Queues)

消息和消息队列(About Message and Message Queues)    不像MS-DOS程序,Win32程序是事件驱动(event-driven)的。Win32程序不会产生显函数调用(像C运行库调用)来获取输入。相反,Win32程序等待系统把输入传递给它。    系统会把程序的所有输入传递给应用程序中各种窗口中。每个窗口都有一个叫窗口处理过程(window procedu

2012-09-10 22:40:58 584

翻译 类风格(class style)

类风格(class style)    类的风格定义了窗口类额外的元素。两种或两种以上的风格可以用位操作符或“|”组合起来。为了为窗口类指定一种风格,可以把风格类型赋给WNDCLASS或WNDCLASSEX结构的style成员。类的风格类型如下    CS_BYTEALIGNXLIENT    在字符边界(x轴方向)上对齐窗口客户区域。这个风格影响窗口客户区域的宽度和它显示时的

2012-09-04 00:49:26 2042

翻译 Win32结构 WNDCLASS

WNDCLASS    结构WNDCLASS包含了被RegisterClass函数注册的窗口类的属性。    这个结构已经被RegisterClassEx函数所注册的WNDCLASSEX结构取代。但是如果你不需要设置小图标来关联窗口类,你仍然可以使用WNDCLASS结构和RegisterClass函数。        typedef struct _WNDCLASS {

2012-09-02 17:27:14 1486

翻译 WinMain函数

WinMain函数     WinMain函数作为Win32程序的入口点被系统调用。     int WINAPI WinMain(                         HINSTANCE hInstance,      // 程序当前实例句柄                         HINSTANCE hPrevInstance,  // 程序之前实例句柄

2012-09-02 11:47:24 1331

翻译 示例程序GENERIC.DLG

/*************************************************************\* generic.dlg: Dialogs for Generic *\*************************************************************/1 D

2012-09-02 09:04:12 378

翻译 示例程序GENERIC.RC

/*************************************************************\* generic.rc: Resource script for Generic *\*************************************************************/#in

2012-09-02 09:02:56 323

翻译 示例程序GENERIC.H

GENERIC.H/*************************************************************\* generic.h: Header file for Generic                              *\******************************************************

2012-09-02 09:00:17 777

翻译 示例程序GENERIC.C

GENERIC.c/********************************************************************\*  generic.c: Source code for generic                                     **

2012-09-02 08:55:30 767

翻译 示例程序源代码

示例程序由以下文件组成:GENERIC.cGENERIC.hGENERIC.rcGENERIC.dlg

2012-09-02 08:48:00 473

翻译 Win32程序关于对话框

关于对话框       对话框是一个临时的窗口,用来显示信息或提示用户输入。示例程序提供了一个关于对话框。每个应用程序都应该包含一个关于对话框。关于对话框显示诸如应用程序名字和版权信息此类的信息。       你可以使用DialogBox函数创建并显示一个对话框。这个函数接受一个对话框模板并创建一个对话框。       示例程序在资源文件中包含下面的对话框模板:       Abo

2012-09-02 08:30:44 588

翻译 Win32程序窗口过程

窗口过程       每一个窗口必须有一个窗口过程(window procedure)。窗口过程的名字是用户定义的。示例程序对主窗口使用下面的窗口过程: LRESULT WINAPI MainWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);       因为窗口过程必须由标准的调用规范来声明,所以要是WINAPI

2012-09-02 08:26:58 447

翻译 Win32程序菜单

菜单      许多包含菜单的应用程序会为用户提供一个菜单,用来从中选择命令。最常用的一个方法是在资源文件夹中把菜单定义为一个资源。示例程序有一个单个的菜单,命名为Help,一个单个的命令,命名为About。资源定义过程如下:      GenericAppMenu MENU    {         POPUP "&Help"      {        MENUITEM

2012-09-02 08:23:13 648

翻译 Win32程序入口函数

入口函数      每一个Win32程序都有一个入口函数,一般来说入口函数的名字是WinMain。      在大多数的Win32程序中,WinMain函数要为应用程序完成以下几个步骤:      1.注册窗口类      2.创建主窗口      3.创建消息循环1.注册窗口类      每个窗口必须有一个窗口类。窗口类定义了一个窗口的属性,例如样式,图标,光标,菜单

2012-09-02 08:21:45 4943

翻译 一个通用的Win32程序样本

一个通用的Win32应用程序样本    这一部分通过创建一个示例程序来介绍Win32程序的代码组成部分。    这里描述的示例程序由以下几个部分组成:    1.入口函数(The Entry-Point Function)    2.菜单(The Menu)    3.窗口过程(The Window Procedure)    4.关于对话框(The About

2012-09-02 08:18:09 576

翻译 Win32 API 窗口管理

窗口管理       窗口管理功能允许应用程序创建和管理用户界面。你可以用窗口管理功能创建和使用窗口为用户的输入显示输出或提示,也可以执行那些需要支持与用户交互功能的任务。大多数的应用程序至少创建一个窗口。       应用程序通过创建窗口类和窗口过程来定义窗口的一般行为和外观。窗口类确定窗口默认的特征,例如窗口是否可以处理鼠标的双击,是否可以有一个菜单。窗口过程包含定义窗口行为,执行被要

2012-09-01 19:49:35 931

翻译 Win32 API 网络服务

网络服务        网络功能允许在一个网络中不同计算机上的应用程序之间相互通信。        网络功能创建和管理用来共享资源的连接,例如在一个网络中的电脑上的目录和网络打印机。        网络接口包含Windows Networking,Windows Sockets,网络基本输入输出系统(Network Basic Input/Output System,NetBIOS),

2012-09-01 19:47:35 530

翻译 Win32 API shell特性

shell 特性       Win32 API包含许多接口和功能,应用程序可以用这些接口和功能来增强shell的各个方面。       命名空间是收集各种符号的,例如,文件和目录的名字或是数据库主键。shell用分级的命名空间来组织用户感兴趣的所有对象,包括文件,存储设备,打印机和网络资源。名字空间与文件系统的目录结构相似,除了命名空间包含对象而不是文件和目录。       快捷键(

2012-09-01 19:45:33 851

翻译 Win32 API 图形设备接口

图形设备接口       应用程序利用图形设备接口提供的函数和相关的结构可以为显示器,打印机和其它设备产生图形输出。利用GDI函数,你可以画直线,曲线,封闭的图形,路径,文本以及位图图像。你所画项目的颜色和类型取决于你所创建的绘画对象,例如画笔,画刷和字体。你可以用画笔对象画直线和曲线,用画刷对象填充封闭图形的内部,用字体对象写文本。       应用程序通过对给定的设备创建设备上下文(D

2012-09-01 19:43:42 804

翻译 Win32 API 窗口控件

窗口控件       shell包含许多控件,这些控件使窗口看起来具有不一样的界面外观。由于这些控件被属于操作系统一部分的DLL文件支持,所以它们对所有的应用程序都是有效的。使用这些通用的控件可以帮助应用程序的用户界面与shell以及其它应用程序的保持一致。因为重新开发一个控件可能是一件很繁杂的任务,所以利用通用的控件可以为你节省大量的开发时间。        这些通用控件是一组被通用控件

2012-09-01 19:40:06 585

翻译 Win32 API 系统服务

系统服务       系统服务功能可以让应用程序访问电脑资源和操作系统底层特性,例如,内存,文件系统,设备,进程和线程。应用程序可以利用系统服务功能来管理和监控完成其工作所需要的资源。例如,应用程序利用内存管理函数来分配和释放内存,利用进程管理和同步化函数来开始和协调多个应用程序或一个应用程序的多个执行线程的操作。       系统服务功能提供访问文件,目录和I/O设备的功能。从一台给定的

2012-09-01 19:37:03 1037

空空如也

空空如也

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

TA关注的人

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