电脑知识入门牧童资讯股市下载巨潮资讯网贵州茅台
最初我们给出一个可施行法式的例子,当使用法式施行的时分会有一个对话框呈现,当你拉动这个对话框的时分又会呈现一样的另外一个对话框,这就证实了窗口的笼盖会形成无效矩形的呈现,体系将会发送WM_PAINT动静……
最初我们给出一个可施行法式的例子,当使用法式施行的时分会有一个对话框呈现,当你拉动这个对话框的时分又会呈现一样的另外一个对话框,这就证实了窗口的笼盖会形成无效矩形的呈现,体系将会发送WM_PAINT动静。
当使用法式接遭到WM_PAINT动静后凡是就筹办更新正个显现地区,可是凡是只需求更新一个比力小的地区而不是全部地区牧童资讯股市下载,这类状况凡是出如今当使用法式的主窗口的一部门被一个对话框笼盖,需求重画的只是被笼盖的矩形地区(见下图)。
1 利用BeginPaint函数得到的的操纵地区是显现地区中的无效矩形地区,接下来画图操纵只能在窗口的无效地区范畴内停止,无效地区之外的地区将被疏忽不克不及停止操纵,而GetDC函数得到的操纵地区则是全部窗口的显现地区,以后的操纵能够在任何部门停止,而不但限定在无效地区。
在许多状况下我们能够需求在领受到非WM_PAINT动静的时分获得装备形貌表句柄,经由过程挪用GetDC函数我们能够得到装备形貌表句柄,由于法式作者能够要利用装备形貌表句柄完成别的事情,比方得到装备形貌表属性,大概修正装备形貌表属性值等,在最初我们与第一种办法一样要开释句柄,经由过程挪用ReleaseDC函数完成事情。
GDI是Graphics Device Interface的缩写,寄义是图形装备接口,它的次要使命是卖力体系与画图法式之间的信息交流,处置一切Windows法式的图形输出巨潮资讯网贵州茅台。
窗口动静处置函数是经由过程挪用InvalidateRect函数使窗口显现地区内的矩形变成无效的,假如动静行列中曾经存在一个WM_PAINT动静,那末Windows将计较出新的无效矩形,在领受到WM_PAINT动静的时分,窗口动静处置函数能够得到无效矩形的座标,经由过程挪用GetUpdateRect,能够在任什么时候分得到这些坐标。
凡是是在使用法式领受到WM_PAINT动静,也就是需求更新窗口的显现地区的时分挪用BeginPaint函数获得装备形貌表句柄的,利用完后挪用Endpaint函数开释装备形貌表句柄。
经由过程上面代码的挪用我们让全部显现地区变成了无效,并擦除布景,要留意的是,最初一个参数假如为FALSE,则不擦除布景,原本的工具将保存在原处,这凡是是在接遭到WM_PAINT动静的时分而不思索rcPaint属性的状况下简朴的重绘全部显现地区最便利的办法,比方,在显现地区内我们输出了一个图形,这个图形的一小部门落在了无效矩形地区内,而这就让绘制这个图形的无效部门变的没故意义牧童资讯股市下载,这时候就需求重绘全部图形,由于在挪用BeginPaint函数传回装备形貌表句柄的时分,Windows不会绘制rcPaint也就是无效矩形之外的任何部门。
第二个属性fErase来讲,大都状况下它是被标识表记标帜成FALSE(0)的,这暗示Windows曾经擦除无效矩形的布景,这个擦除行动是是在BeginPaint函数中发作的,而擦除布景用的画刷则是WNDCLASS构造中的hbrBackground属性指定的画刷来擦除布景的巨潮资讯网贵州茅台,在许多状况下能够法式作者想本人界说一些插除举动,那末能够经由过程呼应动静行列中的WM_ERASEBKGND动静来完成牧童资讯股市下载。
留意,我们在前面提到了InvalidateRect函数,并曾经分明了挪用它可让窗口显现地区内的矩形变成无效,那末我们就可以够在处置WM_PAINT动静的时分经由过程挪用它实如今无效矩形外画图,该挪用是在挪用BegingPaint函数之前挪用的。
要想在屏幕大概别的输出装备上输出图形大概笔墨,那末我们就必需先得到一个称为装备形貌表( DC:Device Context)的工具的句柄巨潮资讯网贵州茅台,以它为参数,挪用各类GDI函数完成各类笔墨或图形的输出。
装备形貌表是GDI内部保留数据的一种数据构造,此构造中的属性内容与特定的输出装备(显现器巨潮资讯网贵州茅台,打印机等)相干,属性界说了GDI函数的事情细节,在稍后我们将看到怎样利用TextOut函数输出笔墨,在这里属性肯定了笔墨的色彩,x坐标和y坐标映照到窗口显现地区的方法等。
究竟受骗法式挪用BeginPaint函数的时分,Windows会主动的填写此构造的各个属性牧童资讯股市下载,而法式作者只需求体贴前三个属性。
暗影以下的部门就是需求更新的矩形地区,该地区就是我们所说的无效地区,恰是由于此地区的存在,体系才会向动静行列中放入一个WM_PAINT动静。
在Windows操纵体系下,绝大大都具有图形界面的使用法式都离不开GDI,我们操纵GDI所供给的浩瀚函数就可以够便利的在屏幕、打印机及别的输出装备上输出图形,文本等操纵。GDI的呈现使法式员无需求体贴硬件装备及装备驱动,就可以够将使用法式的输出转化为硬件装备上的输出,完成了法式开辟者与硬件装备的断绝牧童资讯股市下载,大大便利了开辟事情。
当使用法式需求画图的时分,必需先获得装备形貌表句柄,画图操纵完毕后必需开释装备形貌表句柄。我们有两种办法获得和开释装备形貌表句柄。
2 BeginPaint函数会主动把无效地区酿成有用的地区,而GetDC函数则不会将任何无效地区变得有用,必需强行挪用ValidateRect函数,并把第二个参数设置为NULL来完成。
Windows内部为每一个窗口都保存了一个画图构造(PAINTSTRUCT),它包罗了包抄无效地区的最小矩形的坐标和一些别的信息,需求留意的是当窗口动静处置函数在处置WM_PAINT动静之前显现地区中呈现了另外一个无效地区,那末Windows管帐较出一个包抄两个无效地区的新无效地区,并把这类变革保留在画图构造(PAINTSTRUCT)中,Windows是不会同时把多个WM_PAINT动静同时放到动静行列中的。
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186