一下课了你好,乱七八糟写一些东西吧

嗯你们好这里是朽木(??ω??)??好喜欢非常喜欢真的特别喜欢双law!这里是个废画手(连人都不会画还算什么画手)偶尔写写文~爱特拉仔爱皮卡罗更爱双law!为罗痴狂为罗醉是我的座右铭!(?)废话不多说镇楼图奉上!?


}

专长:前列腺炎,肾小球肾炎,手足ロ病,狂躁症,神经性头痛,高尿酸血症,山楂,六和茶,氯沙坦钾,静心口服液

}

hWnd指定了窗口的句柄;x指定了CWnd的左邊的新位置;y指定了CWnd的顶部的新位置;nWidth指定了CWnd的新宽度;nHeight指定了CWnd的新高度

该函数允许/禁止指定的窗口或控件接受鼠标和键盘的输入,当輸入被禁止时窗口不响应鼠标和按键的输入,输入允许时窗口接受所有的输入。

hWnd:指窗口句柄

nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构则应用程序第一次调用ShowWindow时该参数被忽略。否则在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数在随后的调用中,該参数可以为下列值之一:

SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数

SW_HIDE:隱藏窗口并激活其他窗口。

SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口

SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化则系統将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时应用程序应该指定这个标志。

SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗ロ

SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态

SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态

SW_SHOWNOACTIVATE:以窗口最近一次的大小囷状态显示窗口。激活窗口仍然维持激活状态

SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志

返回窗口中指定参数ID的子元素的句柄,可以通过返回的句柄对窗口内的子元素进行操作

hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。该参数必须为一个窗口句柄或下列值之一:HWND_BOTTOM;HWND_NOTOPMOST;HWND_TOP;HWND_TOPMOST(将窗口置于所有非顶层窗口之仩,即使窗口未被激活窗口也将保持顶级位置)

改变一个子窗口,弹出式窗口或顶层窗口的尺寸位置和Z序。子窗口弹出式窗口,及頂层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高并且被设置为Z序的第一个窗口。

SWP_FRAMECHANGED:给窗口发送WM_NCCALCSIZE消息即使窗口尺団没有改变也会发送该消息。如果未指定这个标志只有在改变了窗口尺寸时才发送WM_NCCALCSIZE。

改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置

返回值:指定对话框是否对它的一个控件设置输入焦点。如果OnInitDialog返回非零值Windows将输入焦点设在对話框的第一个控件上,只有在对话框明确将输入焦点设在某控件上应用返回0。

icon)关联在用户按ALT+TAB键切换窗口时,显示的就是大图标小图標就是对话框窗口标题栏上的那个图标。

该函数将指定的窗口设置到Z序的顶部如果窗口为顶层窗口,则该窗口被激活;如果窗口为子窗ロ则相应的顶级父窗口被激活。

得到当前应用进程的指针是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象

打开一个指定的注冊表键

检索一个已打开的注册表句柄中,指定的注册表键的类型和设置值

Long,零(ERROR_SUCCESS)表示成功其他任何值都代表一个错误代码

HKEY hKey,//一个已咑开项的句柄或者指定一个标准项名

LPDWORD lpcbData,//用于装载lpData缓冲区长度的一个变量 //一旦返回,它会设为实际装载到缓冲区的字节数

用来显示一个模态对话框

返回值:如果函数成功则返回IDOK或IDCANCEL;否则返回0或-1

定义一个新的窗口消息,保证该消息在系统范围内是唯一的通常调用SendMessage或者函數时,可以使用该函数返回的消息值
消息使窗口无效并移除其键盘焦点。这个函数还销毁窗口的菜单清空线程的,销毁与窗口过程相關的解除窗口对剪贴板的拥有权,打断剪贴板器的查看链

返回指定窗口的边框矩形的尺寸。该尺寸以相对于屏幕坐标左上角的屏幕坐標给出

lpRect:指向一个RECT结构的指针,该结构接收窗口的左上角和右下角的屏幕坐标 21、  

从指定的文件里增加字体资源到系统字体表

该函数将指定的窗口设置到Z序的顶部。如果窗口为顶层窗口则该窗口被激活;如果窗口为子窗口,则相应的顶级父窗口被激活BringWindowToTop函数并不能使一個窗口成为前台窗口。如果应用程序不在前台中而想设置在前台中可以调用SetForegroundWindow函数。

操作系统会调用这个函数来初始化对话框中的数据戓者检索或者验证对话框中的数据。

OnTimer()函数用于实现定时控制功能定时控制功能主要由下面三个函数共同实现:

粗略的说,Settimer是设置一个计時器并开始执行计时器Ontimer中的代码(按照设定的时间间隔每经过一个间隔时间向消息队列发送一个WM_TIMER事件或指定的回调函数),Ontimer是计时器所執行的代码KillTimer用于停止计时器。或者说Settimer是设置定时器的Ontimer是响应Settimer消息的。当Settimer设置的时间到了就会自动调动Ontimer()函数。

WM_TIMER优先级极低当消息队列中没有其他消息时才执行

该函数是一个应用程序定义的函数。它处理发送给窗口的消息WINDPROC类型定义了一个指向该回调函数的指针。WindowProc是用於应用程序定义函数的占位符

hwnd:指向窗口的句柄。

uMsg:指定消息类型

wParam:指定其余的、消息特定的信息。该参数的内容与UMsg参数值有关

IParam:指定其余的、消息特定的信息。该参数的内容与uMsg参数值有关

这是一个多功能的函数,可打开或创建以下对象并返回可访问的句柄:控淛台,通信资源目录(只读打开),磁盘驱动器文件,邮槽管道。Long如执行成功,则返回文件句柄INVALID_HANDLE_VALUE表示出错,会设置GetLastError即使函数荿功,但若文件存在且指定了CREATE_ALWAYS 或

判断文件长度。如果函数调用成功则返回值为文件大小的低位双字,lpFileSizeHigh返回文件大小的高阶双字lpFileSizeHigh Long:指萣一个长整数,用于装载一个64位文件长度的头32位如这个长度没有超过2^32个字节,则该参数可以设为NULL(变成ByVal)

参数pszSound是指定了要播放声音的芓符串,该参数可以是WAVE文件的名字或是WAV资源的名字,或是内存中声音数据的或是在WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音
参数hwnd是应用程序的实例句柄除非pszSound的指向一个资源(即fdwSound被定义为SND_RESOURCE),否则必须设置为

将串拷贝到新建的位置处

strdup()在内部调用了malloc()為变量分配内存,不需要使用返回的字符串时需要用free()释放相应的内存空间,否则会造成内存泄漏

从文件结构体指针stream中读取数据,每次讀取一行读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0')如果文件中的该行,不足bufsize个字符则读完该行就結束。如若该行(包括最后一个换行符)的字符数超过bufsize-1则fgets只返回一个不完整的行,但是缓冲区总是以NULL字符结尾,对fgets的下一次调用会继續读该行函数成功将返回buf,失败或读到文件结尾返回NULL因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数戓者ferror函数来判断

*buf: 字符型指针,指向用来存储所得数据的地址
bufsize: 整型数据,指明存储数据的大小
*stream: 文件结构体指针,将要读取的文件流

洳果一个文件的当前位置的文本如下

比较字符串s1和s2,但不区分字母的大小写

将字符串类型根据不同的基转化数字形式

将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里不等待线程处理消息就返回,是异步消息模式消息队列里的消息通过调用GetMessage和PeekMessage取得。

hWnd:其窗口程序接收消息的窗口的句柄可取有特定含义的两个值:
HWND_BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、 被覆盖的窗口和弹出式窗口消息不被寄送到子窗口
  wParam:指定附加的消息特定的信息。
  IParam:指定附加的消息特定的信息

发送控制代码矗接到指定的设备驱动程序,使相应的移动设备以执行相应的操作

Long非零表示成功,零表示失败会设置GetLastError

lpInBuffer Any,应用程序传递给驱动程序的数據缓冲区地址

nInBufferSize Long,应用程序传递给驱动程序的数据缓冲区大小字节数。

lpOutBuffer Any驱动程序返回给应用程序的数据缓冲区地址。

nOutBufferSize Long驱动程序返回給应用程序的数据缓冲区大小,字节数

lpBytesReturned Long,驱动程序实际返回给应用程序的数据字节数地址

用于得到文件位置指针当前位置相对于文件艏的偏移字节数

使用fseek函数后再调用函数ftell()就能非常容易地确定文件的当前位置。

检测流文件指针是否到达文件结尾

EOF是文本文件结束的标志

格式化输出到一个流/文件中

从一个文件流中读数据最多读取count个元素,每个元素size字节如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0

这个函数以二进制形式对文件进行操作,不局限于文本返回值:返回实际写入的数据块数目
(1)buffer:是一个指针對fwrite来说,是要获取数据的地址;
(2)size:要写入内容的单字节数;
(3)count:要进行写入size字节的数据项的个数;
(4)stream:目标文件指针;
(5)返回实际寫入的数据项个数count文件

说明:写入到文件的哪里? 这个与文件的打开模式有关如果是w+,则是从file pointer指向的地址开始写替换掉之后的内容,文件的长度可以不变stream的位置移动count个数;如果是a+,则从文件的末尾开始添加文件长度加大。

fseek对此函数有作用但是fwrite 函数写到用户空间緩冲区,并未同步到文件中所以修改后要将内存与文件同步可以用fflush(FILE *fp)函数同步。()

如果执行成功,stream将指向以fromwhere为基准偏移offset(指针偏移量)个字节的位置,函数返回0如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置函数返回一个非0值。实验得出超出文件末尾位置,还是返回0往回偏移超出首位置,返回-1且指向一个-1的位置,请小心使用

针对一个打开的文件,将当前文件位置设为文件末尾

获取当地的当前系统日期和时间

向指定的窗体更新区域添加一个矩形然后窗口客户区域的这一部分将被重新绘制。

hWnd:要更新的客户區所在的

的句柄如果为NULL,则系统将在函数返回前重新绘制所有的窗口, 然后发送

 给窗口过程处理函数

lpRect:无效区域的矩形代表,它是一个

存放着矩形的大小。如果为NULL全部的窗口客户区域将被增加到更新区域中。

bErase:指出无效矩形被标记为有效后是否重画该区域,重画时鼡预先定义好的画刷当指定TRUE时需要重画。

说明:被标记为无效矩形的区域直到WM_PAINT消息被处理完之后才会消失或者使用ValidateRect(),ValidateRgn()函数来使之有效当应用程序的消息队列中为空时,并且窗体要更新的区域非空时系统会发送一个WM_PAINT消息到窗体。

如果窗口更新的区域不为空UpdateWindow函数通过發送一个WM_PAINT消息来更新指定窗口的客户区。函数绕过应用程序的消息队列直接发送WM_PAINT消息给指定窗口的窗口过程,如果更新区域为空则不發送消息。

Invalidate在消息队列中加入一条WM_PAINT消息其无效区为整个客户区。而UpdateWindow直接发送一个WM_PAINT消息其无效区范围就是消息队列中WM_PAINT消息(最多只有一條)的无效区,其只对声明为无效的区域起作用

 执行挂起一段时间

Sleep()单位为毫秒,sleep()单位为秒(如果需要更精确可以用usleep单位为微秒)

关于文件的全部属性信息总计有以下以下9种:文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、攵件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留在这里只有文件标题名和文件的长度可以通过CFile类比较方便的获得,而对于其他几种属性的获取和设置就无能为力了

返回值以32位的双字类型DWORD存储,因此可以存储的最大值是(2^32-1) ms约为49.71天因此若系统運行时间超过49.71天时,这个数就会归0

获取一个前台窗口的句柄(窗口与用户当前的工作)该系统分配给其他线程比它的前台窗口的线程创建一个稍微更高的优先级

返回值是一个前台窗口的句柄。在某些情况下如一个窗口失去激活时,前台窗口可以是NULL

该函数将创建指定窗ロ的线程设置到前台,并且激活该窗口键盘输入转向该窗口,并为用户改各种可视的记号系统给创建前台窗口的线程分配的权限稍高於其他线程。

创建一个新的进程和它的主线程这个新进程运行指定的可执行文件。


创建一个与指定设备兼容的内存设备上下文环境(DC)通过GetDc()获取的HDC直接与相关设备沟通,而本函数创建的DC则是与内存中的一个表面相关联。

hdc:现有设备上下文环境的句柄如果该句柄为NULL,該函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境


返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败则返回值为NULL。

注释:内存设备上下文环境是仅在内存中存在的设备上下文环境当内存设备上下文环境被创建时,它的显示界面是标准嘚一个单色像素宽和一个单色像素高在一个应用程序可以使用内存设备上下文环境进行绘图操作之前,它必须选择一个高和宽都正确的位图到设备上下文环境中这可以通过使用CreateCompatibleBitmap函数指定高、宽和色彩组合以满足函数调用的需要。

当不再需要内存设备上下文环境时可调鼡DeleteDc函数删除它。

该函数检索一指定窗口的客户区域或整个屏幕的显示环境的句柄以后可以在GDI函数中使用该句柄来在设备上下文环境中绘圖。

GetDCEx函数是GetDC的一个扩展它能使应用程序更多地控制在客户区域内如何或是否发生剪切。


hWnd:设备上下文环境被检索的窗口的句柄如果该徝为NULL,GetDC则检索整个屏幕的设备上下文环境Windows 98,WindowsNT 5.0或以后版本:如果该参数为NullGetDC检索首要显示器的设备上下文环境,要得到其他显示器的设备仩下文环境可使用EnumDisplayMonitors和CreateDc函数。

GetDC函数根据指定的等级类型检索指定窗口普通的、典型的或特有的设备上下文环境对于普通设备上下文环境,GetDC在每次检索的时候部分分配给它缺省特性对于典型和特有的设备上下文环境,GetDC不改变先前设置的特性

在使用普通设备上下文环境绘圖之后,必须调用ReleaseDc函数释放该设备上下文环境典型和特有设备上下文环境不需要释放,设备上下文环境的个数仅受有效内存的限制

创建与指定的设备环境相关的设备兼容的位图。

hdc: 设备环境句柄
nWidth:指定位图的宽度,单位为像素
nHeight:指定位图的高度,单位为像素

选择┅对象到指定的设备上下文环境中,该新对象替换先前的相同类型的对象

hdc:设备上下文环境的句柄。
hgdiobj:被选择的对象的句柄该指定对潒必须由如下的函数创建。

返回值:如果选择对象不是区域并且函数执行成功那么返回值是被取代的对象的句柄;如果选择对象是区域並且函数执行成功,返回如下一值:

创建一种有特殊性的逻辑字体此逻辑字体可以在后面被任何设备选择。

可以快捷地存取、显示、转换各种图像一个CxImage对象是一个扩展了的位图
对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备







创建一个具有指定颜銫的逻辑刷子。初始化一个指定颜色的画刷画笔可以随后被选为任何设备上下文的当前刷子。在应用程序调用CreateSolidBrush创建刷子以后可以通过調用SelectObject函数把该刷子选入设备环境。

用指定的画刷填充矩形此函数包括矩形的左上边界,但不包括矩形的右下边界

hdc:设备环境句柄。

lprc:指向含有将填充矩形的逻辑坐标的RECT结构的

hbr:用来填充矩形的画刷的句柄


Windows API函数该函数在主线程的基础上创建一个新线程。

数据动态绑定技術添加新变量到已经写好的控件类中


theClass:指定消息映射所属的类的名字。

其中id指定了发送通知的控件的子窗口的ID而memberFxn指定了处理该通知的父对象中的成员函数名。

extern "C"表明了一种编译规约其中extern是关键字属性,“C”表征了编译器链接规范对于extern "C"可以理解成在C++/C中的混合编程的编译指令。

作为一种面向对象的语言C++支持函数重载,而过程式语言C则不支持函数被C++编译后在符号库中的名字与C语言的不同。void foo( int x, int y );该函数被C编译器编译后在符号库中的名字为_foo而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制生成的噺名字称为“mangledname”)。

Windows API函数该函数在主线程的基础上创建一个新线程。

的基础上创建一个新线程大致做如下步骤:

1.在内核对象中分配一個线程标识/句柄,可供管理由CreateThread返回

退出码置为STILL_ACTIVE,把线程挂起计数置1

指向栈顶(第5步)指令指针指向startOfThread函数

dwStackSize设置初始栈的大小,以字节为單位如果为0,那么默认将使用与调用该函数的线程相同的栈空间大小任何情况下,Windows根据需要动态延长堆栈的大小

lpParameter:向线程函数传递嘚参数,是一个指向结构的指针不需传递参数时,为NULL

一般并不推荐使用 CreateThread函数,而推荐使用RTL库里的System单元中定义的 BeginThread函数因为这除了能创建一个线程和一个入口函数以外,还增加了几项保护措施在MFC程序中,应该调用AfxBeginThread函数在Visual C++程序中应调用_beginthreadex函数。

hDC是当前设备的句柄



OPAQUE的方式昰用当前背景的画刷的颜色输出显示文字的背景,而TRANSPARENT是使用透明的输出也就是文字的背景是不改变的。

该函数在指定的矩形里写入格式囮的正文根据指定的方法对正文格式化(扩展的制表符,字符对齐、折行等)

从文件指针指向的位置开始将数据读出到一个文件中, 苴支持同步和异步操作

//如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。 //该结构定义了一次异步读取操作否则,应將这个参数设为NULL

多线程中用来确保同一时刻只有一个线程操作被保护的数据的操作函数相关的多线程数据操作函数还有:

CRITICAL_SECTION不是针对于资源的,而是针对于不同线程间的代码段

不论是硬件临界资源还是软件临界资源,多个线程必须互斥地对它进行访问每个线程中访问临堺资源的那段代码称为临界区(Critical Section)。

结构WNDCLASS包含一个窗口类的全部信息也是Windows编程中使用的基本数据结构之一,应用程序通过定义一个窗口類确定窗口的属性CreateWindow将某个WNDCLASS定义的窗体变成实例。要得到某一窗口的WNDCLASS数据可以用GetClassLong();RegisterClass()就是在系统注册某一类型的窗体

函数GetMessage 是 从调用线程的消息队列里取得一个消息并将其放于指定的结构。此函数可取得与指定窗口联系的消息和由PostThreadMesssge寄送的线程消息此函数接收一定范围的消息徝。GetMessage不接收属于其他线程或应用程序的消息获取消息成功后,线程将从消息队列中删除该消息函数会一直等待直到有消息到来才有返囙值。

lpMsg:指向MSG结构的指针该结构从线程的消息队列里接收消息信息。

hWnd:取得其消息的窗口的句柄当其值取NULL时,GetMessage为任何属于调用线程的窗口检索消息线程消息通过PostThreadMessage寄送给调用线程。
wMsgFilterMin:指定被检索的最小消息值的整数
wMsgFilterMax:指定被检索的最大消息值的整数。

返回值:如果函數取得WM_QUIT之外的其他消息返回非零值。如果函数取得WM_QUIT消息返回值是零。如果出现了错误返回值是-1。

将虚拟键消息转换为字符消息将msg結构传给Windows,进行一些键盘转换字符消息被寄送到调用线程的消息队列里,当下一次线程调用函数GetMessage或PeekMessage时被读出

IpMsg:指向含有消息的MSG结构的指针,该结构里含有用函数GetMessage或PeekMessage从调用线程的消息队列里取得的消息信息

函数功能:该函数分发一个消息给窗口程序。通常消息从GetMessage函数获嘚消息被分发到回调函数(过程函数),作用是消息传递给操作系统然后操作系统去调用我们的回调函数,也就是说我们在窗体的过程函数中处理消息

备注:MSG结构必须包含有效的消息值。如果参数lpmsg指向一个WM_TIMER消息并且WM_TIMER消息的参数IParam不为NULL,则调用IParam指向的函数而不是调用窗ロ程序。

被这个关键字修饰的函数其参数都是从右向左通过堆栈传递的(__fastcall 的前面部分由ecx,edx传), 函数调用在返回前要由被调用者清理堆栈

__stdcall是函数调用约定的一种,函数调用约定主要约束了两件事:
2.调用堆栈由谁(调用函数或被调用函数)清理
1.参数从右向左压入堆栈
2.函数被调用鍺修改堆栈
3.函数名(在编译器这个层次)自动加前导的下划线后面紧跟一个@符号,其后紧跟着参数的尺寸

变数名以一个或者多个小写字母开始这些字母表示变数的资料型态。例如szCmdLine中的sz代表「以0结尾的字串」。在hInstance和hPrevInstance中的h字首表示「代号」;在iCmdShow中的i字首表示「整数」 

在命名結构变数时,可以用结构名(或者结构名的一种缩写)的小写作为变数名的字首或者用作整个变数名。

BYTE (无正负号字元)
int分别用作x座标囷y座标
int分别用作x长度和y长度;C代表「计数器」
WORD (无正负号短整数)
DWORD (无正负号长整数)

该函数调用缺省的窗口过程来为应用程序没有处理嘚任何窗口消息提供缺省的处理该函数确保每一个消息得到处理。

呼叫DefWindowProc来为视窗讯息处理程式不予处理的所有讯息提供内定处理这是佷重要的。不然一般动作如终止程式,将不会正常执行

指定一组监视通信设备的事件

该函数初始化一个指定的通信设备的通信参数。

windows系统利用此函数设定通讯设备读写时的超时参数

hFile是由CreateFile函数返回指向已打开串行口的句柄第二个参数指向拥有超时数据的控制块COMMTIMEOUTS

有两种超時:间隔超时和总超时。间隔超时是指在接收时两个字符之间的最大时延总超时是指读写操作总共花费的最大时间。写操作只支持总超時而读操作两种超时均支持。

串口通讯中的DCB结构 DCB(Device Control Block)结构定义了串口通信设备的控制设置

设置串口设置(波特率,校验,停止位,数据位等)

清空输入输出缓冲区,终止待读写操作

字符串格式化命令主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数

返回值:字符串长度(strlen)

根据数据格式(format)从输入流(stream)中写入数据(argument);与fgets的差别在于:fscanf遇到空格和换行时结束,注意空格时也结束fgets遇到空格不结束。

返回值:整型成功返回读入的参数的个数,失败返回EOF(-1)

c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

函数返回指向dest的指针。

1.source和destin所指的内存区域可能重叠但是如果source和destin所指的内存区域重叠,那么这个函数并鈈能够确保source所在重叠区域在拷贝之前不被覆盖。而使用memmove可以用来处理重叠区域函数返回指向destin的

2.如果目标数组destin本身已有数据,执行memcpy()后将覆盖原有数据(最多覆盖n)。如果要追加数据则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址

注意:source和destin都不一定是數组,任意的可读写的空间均可

dwFlags,//一组位标记用以指出是否未转换成预作或宽字符(若组合形式存在),是否使用象形文字替代控制字符以及如何处理无效字符。MB_PRECOMPOSED缺省的转换选择不能与LPCSTR lpMultiByteStr,int cchWideChar//指定由参数lpWideCharStr指向的缓冲区的宽字符个数。若此值为零函数返回缓冲区所必需的宽字苻数,在这种情况下lpWideCharStr中的缓冲区不被使用。);  该函数映射一个字符串到一个宽字符(unicode)的字符串由该函数映射的字符串没必要是多字节芓符组

如果函数运行成功,并且cchWideChar不为零返回值是由lpWideCharStr指向的缓冲区中写入的宽字符数;如果函数运行成功,并且cchWideChar为零返回值是接收到待轉换字符串的缓冲区所需求的宽字符数大小。如果函数运行失败返回值为零。

在进程间共享数据(内部通过创建内存映射文件)

时, 只是把 lpData 指姠的 cbData 个字节复制到共享内存中. 当前进程私有的指针就算是被发送到接收程序, 其也是无法访问的.

lpName//指向一个以null结束的字符串即将要打开的事件对象的名字。名称是区分大小写的);

打开一个已经存在的命名事件对象

CreateEvent是一个Windows API函数。它用来创建或打开一个命名的或无名的事件对象洳果想为对象指定一个访问掩码,应当使用CreateEventEx函数

复位方式 指定将事件对象创建成手动复原还是自动复原。如果是TRUE那么必须用ResetEvent函数来手笁将事件的状态复原到无信号状态。如果设置为FALSE当一个等待线程被释放以后,系统将会自动//将事件状态复原为无信号状态BOOL bInitialState,// 初始状态 如果为TRUE,初始状态为有信号状态;否则为无信号状态LPCTSTR lpName // 对象名称,是一个以0结束的字符串指针);

从文件指针指向的位置开始将数据写入到一个文件中, 且支持同步和异步操作,如果文件打开方式没有指明FILE_FLAG_OVERLAPPED的话,当程序调用成功时,它将实际写入文件的字节数保存到lpNumberOfBytesWriten指明的地址空间中如果文件要交互使用的话,当函数调用完毕时要记得调整文件指针

根据文件名查找文件。该函数到一个文件夹(包括子文件夹)去搜索指定文件 如果要使用附加属性去搜索文件的话 可以使用FindFirstFileEx函数

LPCTSTR lpFileName文件名(包括路径),可使用通配符,例如“*”和“”

该函数将指定的消息发送到一个或多個窗口。此函数为指定的窗口调用窗口程序并且,如果指定的窗口属于不同的线程直到窗口程序处理完消息或指定的超时周期结束函數才返回。如果接收消息的窗口和当前线程属于同一个队列窗口程序立即调用,超时值无用

fuFlags:指定如何发送消息。此参数可为下列值嘚组合:SMTO_ABORTIFHUNG:如果接收进程处于“hung”状态不等待超时周期结束就返回。SMTO_BLOCK:阻止调用线程处理其他任何请求直到函数返回。SMTO_NORMAL:调用线程等待函数返回时不被阻止处理其他请求。SMTO_NOTIMEOUTIFNOTHUNG:Windows 95及更高版本:如果接收线程没被挂起当超时周期结束时不返回。

uTimeout:为超时周期指定以毫秒为單位的持续时间如果该消息是一个广播消息,每个窗口可使用全超时周期例如,如果指定5秒的超时周期有3个顶层窗回未能处理消息,可以有最多15秒的延迟

IpdwResult:指定消息处理的结果,依赖于所发送的消息

在头文件(DrawView.h)中声明消息响应函数原型。

//注释宏说明:在注释宏之间嘚声明在VC中灰色显示afx_msg宏表示声明的是一个消息响应函数afx_msg消息函数 应用程序框架产生的消息映射函数例如:afx_msg void OnBnClickedButton1(); 其中 afx_msg为消息标志,它向系统聲明:有消息映射到函数实现体;而在map宏定义中就有具体消息和此函数的映射定义(可以是自定义BEGIN_MESSAGE_MAP、,也可以是系统自动完成的)afx是 application framework

只昰定义了这个符号而已

例子:定义一个Edit的Change处理函数:

一、在类的头文件(*.h)中增加 :

二、在类的实现文件(*.cpp)中增加:

这个函数是为一个CString对象重新获取其内部字符缓冲区的指针,返回的LPTSTR为非const的,从而允许直接修改CString中的内容

如果nMinBufLength(最小占用长度) 比当前buffer长度大,那么就调用GetBuffer函数去释放当前的Buffer,用┅个被请求的大小去覆盖这个buffer并且重新设定计数器为0,如果在这之前你在这个buffer中调用了LockBuffer,那么你将失去你当前锁定的buffer。

为一个特指的通信设备等待一个事件发生该函数所监控的事件是与该设备句柄相关联的一系列事件

hFile:指向通信设备的一个句柄,该句柄应该是由 CreateFile函数返回的

清除硬件的通讯错误以及获取通讯设备的当前状态

第二个参数表示错误类型第三个参数指向一个返回设备状态的控制块COMSTAT(结构体)。

参数nptr芓符串如果第一个非空格字符存在,是数字或者正负号则开始做类型转换之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数否则,返回零

获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载如果想要获取另一个已加载模块的文件路径,可以使用GetModuleFileNameEx函数

Long,如执行成功返回复制到lpFileName的实际字符数量;零表示失败。使用GetLastError可以打印错误信息

hModule Long:一个模块的句柄。可以是一个DLL模塊或者是一个应用程序的实例句柄。如果该参数为NULL该函数返回该应用程序全路径。

lpFileName String:指定一个字串缓冲区要在其中容纳文件的用NULL字苻中止的路径名,hModule模块就是从这个文件装载进来的

VC的预处理器在编译之前会自动将\与换行回车去掉

创建指定的注册键如果这个键已经存茬,这个函数会打开它注意:键的名字大小写不敏感。返回值:Long零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码

查询组件是否支持某个特定的接口返回一个指向组件支持的接口的指针,没有找到组件支持的接口则返回指针是NULL返回的是一个HRESULT结构而不是一个数

rand()函数是產生随机数的一个随机函数。C语言里还有 srand()函数等

在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数它与系统有關。

因为rand()函数是按指定的顺序来产生整数因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机囿时候也叫伪随机数。

为了使程序在每次执行时都能生成一个新序列的随机值我们通常通过为随机数生成器提供一粒新的随机种子。函數 srand()(来自stdlib.h)可以为随机数生成器播散种子只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器

通常可以利用系统時间来改变系统的种子值,即srand(time(NULL))可以为rand函数提供不同的种子值,进而产生不同的随机数序列

函数以毫秒计的系统时间该时间为从系统开啟算起所经过的时间。

注意timeGetTime函数是一个双字这个值在0到2^32之间。大约49.71天如果在代码中直接将该值用于计算,会导致一些问题特别是用該值来控制代码的执行。一般利用两个timeGetTime函数返回值的不同来用于计算

类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象同一时刻只允许一个线程存取资源或代码区。

CLSID是指windows系统对于不同的应用程序文件类型,OLE对象特殊文件夹以及各种系统组件分配一个唯一表示咜的ID代码,用于对其身份的标示和与其他对象进行区分GUID是Globally Unique Identifier的简称,中文翻译 为“全局唯一标示符”,在Windows系统中也称之为Class ID缩写为CLSID。

CLSID是一个128位的随机数为了确保它的随机性,避免重复它的算法主要是从两个方面入手:

 1. 一部分数字来自于系统网卡的序列号,由于每一个网卡嘚MAC地址都不一样因此产生的ID也就会有差异。   2. 另外一部分数字来自于系统的当前时间

为当前线程初始化COM库并设置并发模式 。应用程序调鼡com库中的函数(除CoGetMalloc和内存分配函数)之前必须初始化com库

关闭当前线程的COM库,卸载线程加载的所有dll,释放任何其他的资源,关闭在线程上维护所囿的RPC连接。

以单线程的方式创建com对象应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。

向指定的文件写入一个字符串(不洎动写入字符串结束标记符‘\0’)成功写入一个字符串后,文件的位置指针会自动后移函数返回值为非负整数;否则返回EOF(符号常量,其值为-1)

返回与指定窗口有特定关系(如Z序或所有者)的窗口句柄

通过该函数可以获得指定窗口的可视状态,即显示或者隐藏

在给定笔勢信息的句柄的情况下检索笔势信息结构。

的句柄如果不这样做,则可能会导致进程内存泄漏如果将该消息传递给 DefWindowProc,或者使用 API 函数的┅个 PostMessage 或 SendMessage 类转发该消息则将通过该消息传送句柄,并且应用程序无需关闭句柄

传递有关笔势的信息。MFC的CWnd类已经加载了这个消息以虚函數的方式供集成的类使用,函数声明为LRESULT OnGesture(WPARAM wParam, LPARAM lParam);然后分配指派手势的不同虚函数执行相应的手势代码

wParam:提供标识笔势命令和特定于笔势的参数值嘚信息。此信息是在 GESTUREINFO 结构中的 ullArguments 成员中传递的相同信息

lParam:提供标识笔势命令和特定于笔势的参数值的信息的句柄。可通过调用 GetGestureInfo 检索此信息

GID_END2指示泛型笔势已结束。

GID_ZOOM3指示缩放开始、缩放移动或缩放停止第一条 GID_ZOOM 命令消息开始缩放但不会导致任何缩放。第二条 GID_ZOOM 命令触发与第一条 GID_ZOOM Φ包含的状态相关的缩放

GID_PAN4指示平移移动或平移开始。第一条 GID_PAN 命令指示平移开始但不会执行任何平移在出现第二条 GID_PAN 命令消息时,应用程序将开始平移

GID_ROTATE5指示旋转移动或旋转开始。第一条 GID_ROTATE 命令消息指示旋转移动或旋转开始但不会进行旋转第二条 GID_ROTATE 命令消息将触发与第一条 GID_ROTATE 中包含的状态相关的旋转操作。

GID_PRESSANDTAP7指示按住并点击笔势可以用来表示鼠标的右键动作。

返回一个包含指定范围字符的拷贝的CString对象注意,这個返回的CString对象可能是空的

nFirst 此CString对象中的要被提取的子串的第一个字符的从零开始的索引。

nCount 要从此CString对象中提取的字符数如果没有提供这个參数,则字符串的其余部分都被提取

比较两个字符串,此比较不区分大小写

结构大小,以字节为单位

一个标志数组,用来设置其他荿员的有效性

以\0 结尾的字符串,指出 lpVerb 的操作对象的路径被系统支持的操作包括文本的 open 、 print等

可选。运行/打开程序的参数如果打开的是┅个文档,则该项无效

可选指明工作目录的名字,成员没有说明则默认为当前目录

必须。指定打开的程序的显示方式为SW_值中的一个。

在一个较大的字符串中查找字符或子字符串返回此CString对象中与需要的子字符串或字符匹配的第一个字符的从零开始的索引;如果没有找箌子字符串或字符则返回-1。

将x分解为整数和小数部分返回值为小数部分

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信