社区
界面
帖子详情
如何把一个视频窗口用一幅透明位图盖起来, 急呀...
grantchan
2003-07-02 09:06:11
我在一个对话框中创建了一个视频窗口(用dshow), 现在打算用一幅与它同样大小的透明位图把这个视频窗口给覆盖起来. 即最后结果是, 透过这幅位图的某些区域(透明区域)看这个视频. 请问如何实现......
...全文
95
6
打赏
收藏
如何把一个视频窗口用一幅透明位图盖起来, 急呀...
我在一个对话框中创建了一个视频窗口(用dshow), 现在打算用一幅与它同样大小的透明位图把这个视频窗口给覆盖起来. 即最后结果是, 透过这幅位图的某些区域(透明区域)看这个视频. 请问如何实现......
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
无敌魔仙
2003-07-05
打赏
举报
回复
SetWindowRGN可以设置 窗口的区域,你再创建一个新窗口,然后将次窗口的区域设置成像要不显示的就可以的了
grantchan
2003-07-02
打赏
举报
回复
to nix3m():
如果用NULLBRUSH的话, 位图如何显示? 先谢了
grantchan
2003-07-02
打赏
举报
回复
to wuwind(风):
请问如何做透明窗口, 可否详细说明. 谢谢了
nix3m
2003-07-02
打赏
举报
回复
建立窗口类派生于CWnd,CREATE时窗口的话刷参数为NULLBRUSH
醉马不肖
2003-07-02
打赏
举报
回复
//-----------------------------------------------------------------------------
// Name: DirectShow Sample -- SampVid Filter
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
Description
===========
Sample video renderer filter.
Path
=====
Source: (SDK root)\Samples\C++\DirectShow\Filters\SampVid
wuwind
2003-07-02
打赏
举报
回复
做透明窗口,然后MoveWindows
VC++做异形
窗口
透明
效果
标准Windows应用程序
窗口
一般为带有标题栏的浅灰色矩形外观,因而“异形”对话框/
窗口
也主要是颜色与外形上动手脚。改变背景颜色 改变对话框(
窗口
)的背景颜色是最简单的改变Windows应用程序外观的方法,根据Windows创建与管理机理,一般有两种方法。一种是处理WM_CTLCOLOR消息,首先创建所选背景颜色的刷子,然后调用SetBkColor()或SetDialogBkColor()以所创建的刷子来绘制
窗口
或对话框的背景。需要重画
窗口
或对话(或对话的子控件)时,Windows向对话发送消息WM_CTLCOLOR,应用程序处理WM_CTLCOLOR消息并返回
一个
用来绘画对话背景的刷子句柄。另外一种是响应Windows的WM_ERASEBKGND消息,Windows向
窗口
发送
一个
WM_ERASEBKGND消息通知该
窗口
擦除背景,可以使用VC++的ClassWizard重载该消息的缺省处理程序来擦除背景(实际是用刷子画),并返回TRUE以防止Windows擦除
窗口
。2.改变
窗口
外形通过使用新的SDK函数SetWindowRgn(),可以将绘画和鼠标消息限定在
窗口
的
一个
指定的区域,因此实际上是使
窗口
成为指定的不规则形状(区域形状)。“区域”是Windows GDI中一种强有力的机制,区域是设备上的一块空间,可以是任意形状,复杂的区域可以由各个小区域组合而成。Windows内含的区域创建函数有CreateRectRgn()、CreatePolyRgn()、CreatePolygonRgn()、CreateRoundRectRgn()和CreateEllipticRgn(),再通过CombineRgn()来组合区域,即可得到复杂形状的区域,获得复杂形状的
窗口
外形。通过上面的方法虽然可以得到“异形”
窗口
,但感觉颜色单调,外形也不够“COOL”,能否获得更酷的“异形”对话框/
窗口
呢?回答是肯定的。下面就介绍利用
位图
和蒙板创建“异形”对话框/
窗口
的方法。3.利用
位图
创建异形对话框
窗口
利用
位图
创建异形对话框原理是根据象素的颜色来进行“扣像”处理,对所有非指定颜色象素区域进行区域组合。利用这一技术,实际上就是实现对话框/
窗口
的
位图
背景,并且对指定的颜色区域进行
透明
处理。下面就以
透明
位图
为背景的对话框为例来说明:首先用绘图软件如PhotoShop绘制编辑
一幅
拟做对话框背景用的图片,用BMP格式保存,假设存为Back.Bmp。需要说明的是,虽然Visual C++集成开发环境的资源编辑器只能编辑不超过16色的
位图
,但完全我们可以以真彩色方式存储,不必理会Visual C++的警告。下一步是用Visual C++的AppWizard创建
一个
基于对话框的应用程序假定命名为Trans。用资源编辑器引入背景图片Back.Bmp,如果是高彩色,不必理会出现的警告信息,点击OK确认即可。为了明确,修改默认的资源ID标识IDB_BITMAP1为IDB_BACKBMP。然后修改对话框的Style为Popup,Border为None,如图1 。图1向CTransDlg类添加区域处理功能模块void CTransDlg::SetupRegion(CDC *pDC /*对话框
窗口
DC*/, UINT BackBitmapID /*背景
位图
资源ID*/, UINT MaskBitmapID /*区域处理
位图
资源ID*/, COLORREF TransColor = 0x00000000 /*
透明
颜色值,默认为黑色*/)。到目前为止,我们暂时认为MaskBitmapID等同于BackBitmapID。其核心工作是根据MaskBitmapID指示
位图
的象素颜色进行区域组合。完整的代码如下:void CTransDlg::SetupRegion(CDC *pDC /*对话框
窗口
DC*/, UINT BackBitmapID /*背景
位图
资源ID*/,UINT MaskBitmapID /*区域处理
位图
资源ID*/,COLORREF TransColor /*
透明
颜色值*/){CDC memDC;CBitmap cBitmap;CBitmap* pOldMemBmp = NULL;COLORREF cl;CRect cRect;UINT x, y;CRgn wndRgn, rgnTemp;//取得
窗口
大小GetWindowRect(&cRect);//背景
位图
资源IDm_BackBitmapID = BackBitmapID//装载
位图
cBitmap.LoadBitmap(MaskBitmapID);memDC.CreateCompatibleDC(pDC);pOldMemBmp = memDC.SelectObject(&cBitmap);//首先创建默认的完整区域为完整的
窗口
区域wndRgn.CreateRectRgn(0, 0, cRect.Width(), cRect.Height());//下面的两层循环为检查背景
位图
象素颜色,进行
透明
区域处理;//当象素颜色为指定的
透明
值时,即将该点从区域中剪裁掉。//其中用到的几个成员变量m_MaskLeftOff、m_MaskTopOff、//m_MaskRightOff、m_MaskBottomOff、m_FrameWidth//和m_CaptionHeight,其作用后面再作说明,此时可全部当作0来处理。for(x= m_FrameWidth+m_MaskLeftOff;x<=cRect.Width() - m_FrameWidth-m_MaskRightOff; x++){for(y = m_CaptionHeight+m_MaskTopOff; yBitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRC/DownloadFiles\a\2001-10-12\COPY);if (pOldMemBmp) memDC.SelectObject( pOldMemBmp );//删除系统却省的OnEraseBkgnd功能//return CDialog::OnEraseBkgnd(pDC);return TRUE;}接下来是在WM_PAINT的消息处理函数OnPaint()中添加代码。由于当背景
位图
比较大时,进行区域处理比较耗时,所以只在启动时进行一次处理。一种方法是OnInitDialog()处理,但这样会在从启动程序到
窗口
出现有相当的延迟,易引起程序尚未启动的误解。再一种方法就是在OnPaint()处理,但为了避免重复处理,可以加上
一个
判断标志。以下是OnPaint()的代码,正体为AppWizard生成,粗体为自己添加内容。void CTransDlg::OnPaint() {if (IsIconic()){……}else{if(m_nFirstRun){ //首次运行标志//修改鼠标光标为等待方式BeginWaitCursor();//设置背景区域SetupRegion(GetWindowDC(), 计算机教程用VC++实现异形
窗口
.来自www.itwen.comIT WEN计算机教程网 IDB_BACKBMP, IDB_BACKBMP, 0x00FFFFFF /*白色*/);//恢复鼠标光标为正常模式EndWaitCursor();m_nFirstRun = 0;}CDialog::OnPaint();}}剩下的工作就是根据背景
位图
的大小来设置对话框
窗口
的大小和位置,这可以在OnInitDialog()中通过调用MoveWindow()来实现。再添加一些变量的声名和初始化,即可编译运行。图2为运行结果示例:图24.进一步的讨论前面实现了单一模式的异形对话框,但有些情况下又需要不同的样式,如有标题栏、边框等,或者只作局部的处理,这就是前面两个成员变量m_FrameWidth和m_CaptionHeight作用,通过在OnInitDialog()判断
窗口
样式,使m_FrameWidth和m_CaptionHeight取不同的值。这部分的代码为:BOOL CTransBmpDlg::OnInitDialog(){……// TODO: Add extra initialization herem_nFirstRun = 1;//数据设置,
窗口
左上角坐标:m_Left=0,m_Top=0 //背景
位图
宽高:m_Width=535,m_Height=105SetSize(0, 0, 535, 105);//蒙板处理区域与
窗口
边框的距离m_MaskLeftOff=m_MaskTopOff=m_MaskRightOff=m_MaskBottomOff=0;//
窗口
边框与标题栏象素值m_FrameWidth = m_CaptionHeight = 0;//取得
窗口
样式LONG style = ::GetWindowLong(this->m_hWnd, GWL_STYLE);//如保留
窗口
风格样式,则根据不同的
窗口
边框类型 //选取不同的m_FrameWidth和m_CaptionHeight值, //也可以根据处理位置的需要进行付值if((style & WS_BORDER) == WS_BORDER)m_FrameWidth = ::GetSystemMetrics(SM_CXBORDER);if((style & WS_THICKFRAME) == WS_THICKFRAME)m_FrameWidth = ::GetSystemMetrics(SM_CXFIXEDFRAME);if((style & DS_MODALFRAME) == DS_MODALFRAME)m_FrameWidth = ::GetSystemMetrics(SM_CXFIXEDFRAME);if((style & WS_CAPTION) == WS_CAPTION){m_FrameWidth = ::GetSystemMetrics(SM_CXFIXEDFRAME);m_CaptionHeight = ::GetSystemMetrics(SM_CYSMCAPTION);}m_CaptionHeight += m_FrameWidth * 2;//重置
窗口
的位置和大小MoveWindow(m_Left, m_Top, m_Width + m_FrameWidth * 2, m_Height + m_CaptionHeight, TRUE);……return TRUE; // return TRUE unless you set the focus to a control}另外,为进一步增加灵活性,使
窗口
样式不仅仅受背景
位图
颜色的控制。通过指定SetupRegion()的MaskBitmapID 为
一个
我们称之为“蒙板”的双色
位图
(多色彩也可以,但一般没有必要),即可实现需要的操作。图4为在同一背景
位图
上,通过图3的蒙板
位图
实现的效果,并且增加了对话框窗体的边框和标题栏属性。图3图4利用这种蒙板技术,可以创建出任意形状的
窗口
,而与背景
位图
无关。需要注意的是,对于对话框中的控件如按钮等,如处在或部分处在通明区域中,则通明区域中部分一并被剪裁掉,是否剪裁和剪裁位置与大小,利用蒙板可以很方便地进行控制。需要特别指出的是,SetWindowRgn()所指定的区域是针对整个
窗口
的,而Bitblt()/ StretchBlt()的输出区域是针对于客户区,两者在定位上是不同的,编程中应加以注意并灵活应用,这也是前面之所以设置边框大小等变量的原因。5.结束语这种异形
窗口
的创建不仅适应于对话框,而且适应于所有的基于CWnd类的派生
窗口
。采用这一方法,你可以创建出任何只要你能够画出的窗体,实现只要可以画出,就可以做出的目标。本文代码在Visual C++ 5.0、6.0下调试通过,运行正常,操作系统为Windows98SE。
API之网络函数---整理网络函数及功能
API之网络函数1. API之网络函数 WNetAddConnection 创建同
一个
网络资源的永久性连接 WNetAddConnection2 创建同
一个
网络资源的连接 WNetAddConnection3 创建同
一个
网络资源的连接 WNetCancelConnection 结束
一个
网络连接 WNetCancelConnection2 结束
一个
网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动
一个
标准对话框,以便建立同网络资源的连接 WNetDisconnectDialog 启动
一个
标准对话框,以便断开同网络资源的连接 WNetEnumResource 枚举网络资源 WNetGetConnection 获取本地或已连接的
一个
资源的网络名称 WNetGetLastError 获取网络错误的扩展错误信息 WNetGetUniversalName 获取网络中
一个
文件的远程名称以及/或者UNC(统一命名规范)名称 WNetGetUser 获取
一个
网络资源用以连接的名字 WNetOpenEnum 启动对网络资源进行枚举的过程 2. API之消息函数 BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级
窗口
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定
窗口
的消息队列 PostThreadMessage 将一条消息投递给应用程序 RegisterWindowMessage 获取分配给
一个
字串标识符的消息编号 ReplyMessage 答复
一个
消息 SendMessage 调用
一个
窗口
的
窗口
函数,将一条消息发给那个
窗口
SendMessageCallback 将一条消息发给
窗口
SendMessageTimeout 向
窗口
发送一条消息 SendNotifyMessage 向
窗口
发送一条消息 3. API之文件处理函数 CloseHandle 关闭
一个
内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 CompareFileTime 对比两个文件的时间 CopyFile 复制文件 CreateDirectory 创建
一个
新目录 CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 CreateFileMapping 创建
一个
新的文件映射对象 DeleteFile 删除指定文件 DeviceIoControl 对设备执行指定的操作 DosDateTimeToFileTime 将DOS日期和时间值转换成
一个
win32 FILETIME 值 FileTimeToDosDateTime 将
一个
win32 FILETIME 值转换成DOS日期和时间值 FileTimeToLocalFileTime 将
一个
FILETIME结构转换成本地时间 FileTimeToSystemTime 根据
一个
FILETIME结构的内容,装载
一个
SYSTEMTIME结构 FindClose 关闭由FindFirstFile函数创建的
一个
搜索句柄 FindFirstFile 根据文件名查找文件 FindNextFile 根据调用FindFirstFile函数时指定的
一个
文件名查找下
一个
文件 FlushFileBuffers 针对指定的文件句柄,刷新内部文件缓冲区 FlushViewOfFile 将写入文件映射缓冲区的所有数据都刷新到磁盘 GetBinaryType 判断文件是否可以执行 GetCompressedFileSize 判断
一个
压缩文件在磁盘上实际占据的字节数 GetCurrentDirectory 在
一个
缓冲区中装载当前目录 GetDiskFreeSpace 获取与
一个
磁盘的组织有关的信息,以及了解剩余空间的容量 GetDiskFreeSpaceEx 获取与
一个
磁盘的组织以及剩余空间容量有关的信息 GetDriveType 判断
一个
磁盘驱动器的类型 GetExpandedName 取得
一个
压缩文件的全名 GetFileAttributes 判断指定文件的属性 GetFileInformationByHandle 这个函数提供了获取文件信息的一种机制 GetFileSize 判断文件长度 GetFileTime 取得指定文件的时间信息 GetFileType 在给出文件句柄的前提下,判断文件类型 GetFileVersionInfo 从支持版本标记的
一个
模块里获取文件版本信息 GetFileVersionInfoSize 针对包含了版本资源的
一个
文件,判断容纳文件版本信息需要
一个
多大的缓冲区 GetFullPathName 获取指定文件的完整路径名 GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 GetLogicalDriveStrings 获取
一个
字串,其中包含了当前所有逻辑驱动器的根驱动器路径 GetOverlappedResult 判断
一个
重叠操作当前的状态 GetPrivateProfileInt 为初始化文件(.ini文件)中指定的条目获取
一个
整数值 GetPrivateProfileSection 获取指定小节(在.ini文件中)所有项名和值的
一个
列表 GetPrivateProfileString 为初始化文件中指定的条目取得字串 GetProfileInt 取得win.ini初始化文件中指定条目的
一个
整数值 GetProfileSection 获取指定小节(在win.ini文件中)所有项名和值的
一个
列表 GetProfileString 为win.ini初始化文件中指定的条目取得字串 GetShortPathName 获取指定文件的短路径名 GetSystemDirectory 取得Windows系统目录(即System目录)的完整路径名 GetTempFileName 这个函数包含了
一个
临时文件的名字,它可由应用程序使用 GetTempPath 获取为临时文件指定的路径 GetVolumeInformation 获取与
一个
磁盘卷有关的信息 GetWindowsDirectory 获取Windows目录的完整路径名 hread 参考lread hwrite 参考lwrite函数 lclose 关闭指定的文件 lcreat 创建
一个
文件 llseek 设置文件中进行读写的当前位置 LockFile 锁定文件的某一部分,使其不与其他应用程序共享 LockFileEx 与LockFile相似,只是它提供了更多的功能 lopen 以二进制模式打开指定的文件 lread 将文件中的数据读入内存缓冲区 lwrite 将数据从内存缓冲区写入
一个
文件 LZClose 关闭由LZOpenFile 或 LZInit函数打开的
一个
文件 LZCopy 复制
一个
文件 LZInit 这个函数用于初始化内部缓冲区 LZOpenFile 该函数能执行大量不同的文件处理,而且兼容于压缩文件 LZRead 将数据从文件读入内存缓冲区 LZSeek 设置
一个
文件中进行读写的当前位置 MapViewOfFile 将
一个
文件映射对象映射到当前应用程序的地址空间 MoveFile 移动文件 OpenFile 这个函数能执行大量不同的文件操作 OpenFileMapping 打开
一个
现成的文件映射对象 QueryDosDevice 在Windows NT中,DOS设备名会映射成NT系统设备名。该函数可判断当前的设备映射情况 ReadFile 从文件中读出数据 ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了
一个
完整的回调 RegCloseKey 关闭系统注册表中的
一个
项(或键) RegConnectRegistry 访问远程系统的部分注册表 RegCreateKey 在指定的项下创建或打开
一个
项 RegCreateKeyEx 在指定项下创建新项的更复杂的方式。在Win32环境中建议使用这个函数 RegDeleteKey 删除现有项下方
一个
指定的子项 RegDeleteValue 删除指定项下方的
一个
值 RegEnumKey 枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx RegEnumKeyEx 枚举指定项下方的子项 RegEnumValue 枚举指定项的值 RegFlushKey 将对项和它的子项作出的改动实际写入磁盘 RegGetKeySecurity 获取与
一个
注册表项有关的安全信息 RegLoadKey 从以前用RegSaveKey函数创建的
一个
文件里装载注册表信息 RegNotifyChangeKeyValue 注册表项或它的任何
一个
子项发生变化时,用这个函数提供一种通知机制 RegOpenKey 打开
一个
现有的注册表项 RegOpenKeyEx 打开
一个
现有的项。在win32下推荐使用这个函数 RegQueryInfoKey 获取与
一个
项有关的信息 RegQueryValue 取得指定项或子项的默认(未命名)值 RegQueryValueEx 获取
一个
项的设置值 RegReplaceKey 用
一个
磁盘文件保存的信息替换注册表信息;并创建
一个
备份,在其中包含当前注册表信息 RegRestoreKey 从
一个
磁盘文件恢复注册表信息 RegSaveKey 将
一个
项以及它的所有子项都保存到
一个
磁盘文件 RegSetKeySecurity 设置指定项的安全特性 RegSetValue 设置指定项或子项的默认值 RegSetValueEx 设置指定项的值 RegUnLoadKey 卸载指定的项以及它的所有子项 RemoveDirectory 删除指定目录 SearchPath 查找指定文件 SetCurrentDirectory 设置当前目录 SetEndOfFile 针对
一个
打开的文件,将当前文件位置设为文件末尾 SetFileAttributes 设置文件属性 SetFilePointer 在
一个
文件中设置当前的读写位置 SetFileTime 设置文件的创建、访问及上次修改时间 SetHandleCount 这个函数不必在win32下使用;即使使用,也不会有任何效果 SetVolumeLabel 设置
一个
磁盘的卷标(Label) SystemTimeToFileTime 根据
一个
FILETIME结构的内容,载入
一个
SYSTEMTIME结构 UnlockFile 解除对
一个
文件的锁定 UnlockFileEx 解除对
一个
文件的锁定 UnmapViewOfFile 在当前应用程序的内存地址空间解除对
一个
文件映射对象的映射 VerFindFile 用这个函数决定
一个
文件应安装到哪里 VerInstallFile 用这个函数安装
一个
文件 VerLanguageName 这个函数能根据16位语言代码获取一种语言的名称 VerQueryValue 这个函数用于从版本资源中获取信息 WriteFile 将数据写入
一个
文件 WriteFileEx 与WriteFile类似,只是它只能用于异步写操作,并包括了
一个
完整的回调 WritePrivateProfileSection 为
一个
初始化文件(.ini)中指定的小节设置所有项名和值 WritePrivateProfileString 在初始化文件指定小节内设置
一个
字串 WriteProfileSection 为Win.ini初始化文件中
一个
指定的小节设置所有项名和值 WriteProfileString 在Win.ini初始化文件指定小节内设置
一个
字串 4. API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加
一个
新表单 AddJob 用于获取
一个
有效的路径名,以便用它为作业创建
一个
后台打印文件。它也会为作业分配
一个
作业编号 AddMonitor 为系统添加
一个
打印机监视器 AddPort 启动“添加端口”对话框,允许用户在系统可用端口列表中加入
一个
新端口 AddPrinter 在系统中添加一台新打印机 AddPrinterConnection 连接指定的打印机 AddPrinterDriver 为指定的系统添加
一个
打印驱动程序 AddPrintProcessor 为指定的系统添加
一个
打印处理器 AddPrintProvidor 为系统添加
一个
打印供应商 AdvancedDocumentProperties 启动打印机文档设置对话框 ClosePrinter 关闭
一个
打开的打印机对象 ConfigurePort 针对指定的端口,启动
一个
端口配置对话框 ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 DeleteForm 从打印机可用表单列表中删除
一个
表单 DeleteMonitor 删除指定的打印监视器 DeletePort 启动“删除端口”对话框,允许用户从当前系统删除
一个
端口 DeletePrinter 将指定的打印机标志为从系统中删除 DeletePrinterConnection 删除与指定打印机的连接 DeletePrinterDriver 从系统删除
一个
打印机驱动程序 DeletePrintProcessor 从指定系统删除
一个
打印处理器 DeletePrintProvidor 从系统中删除
一个
打印供应商 DeviceCapabilities 利用这个函数可获得与
一个
设备的能力有关的信息 DocumentProperties 打印机配置控制函数 EndDocAPI 结束
一个
成功的打印作业 EndDocPrinter 在后台打印程序的级别指定
一个
文档的结束 EndPage 用这个函数完成
一个
页面的打印,并准备设备场景,以便打印下
一个
页 EndPagePrinter 指定
一个
页在打印作业中的结尾 EnumForms 枚举一台打印机可用的表单 EnumJobs 枚举打印队列中的作业 EnumMonitors 枚举可用的打印监视器 EnumPorts 枚举
一个
系统可用的端口 EnumPrinterDrivers 枚举指定系统中已安装的打印机驱动程序 EnumPrinters 枚举系统中安装的打印机 EnumPrintProcessorDatatypes 枚举由
一个
打印处理器支持的数据类型 EnumPrintProcessors 枚举系统中可用的打印处理器 Escape 设备控制函数 FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的
一个
打印机通告对象 FindFirstPrinterChangeNotification 创建
一个
新的改变通告对象,以便我们注意打印机状态的各种变化 FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的
一个
缓冲区 GetForm 取得与指定表单有关的信息 GetJob 获取与指定作业有关的信息 GetPrinter 取得与指定打印机有关的信息 GetPrinterData 为打印机设置注册表配置信息 GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 GetPrinterDriverDirectory 判断指定系统中包含了打印机驱动程序的目录是什么 GetPrintProcessorDirectory 判断指定系统中包含了打印机处理器驱动程序及文件的目录 OpenPrinter 打开指定的打印机,并获取打印机的句柄 PrinterMessageBox 在拥有指定打印作业的系统上显示
一个
打印机出错消息框 PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ReadPrinter 从打印机读入数据 ResetDC 重设
一个
设备场景 ResetPrinter 改变指定打印机的默认数据类型及文档设置 ScheduleJob 提交
一个
要打印的作业 SetAbortProc 为Windows指定取消函数的地址 SetForm 为指定的表单设置信息 SetJob 对
一个
打印作业的状态进行控制 SetPrinter 对一台打印机的状态进行控制 SetPrinterData 设置打印机的注册表配置信息 StartDoc 开始
一个
打印作业 StartDocPrinter 在后台打印的级别启动
一个
新文档 StartPage 打印
一个
新页前要先调用这个函数 StartPagePrinter 在打印作业中指定
一个
新页的开始 WritePrinter 将发送目录中的数据写入打印机 5. API之文本和字体函数 AddFontResource 在Windows系统中添加一种字体资源 CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建
一个
资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 EnumFontFamilies 列举指定设备可用的字体 EnumFontFamiliesEx 列举指定设备可用的字体 EnumFonts 列举指定设备可用的字体 ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 GetCharABCWidths 判断TureType字体中
一个
或多个字符的A-B-C大小 GetCharABCWidthsFloat 查询一种字体中
一个
或多个字符的A-B-C尺寸 GetCharacterPlacement 该函数用于了解如何用
一个
给定的字符显示
一个
字串 GetCharWidth 调查字体中
一个
或多个字符的宽度 GetFontData 接收一种可缩放字体文件的数据 GetFontLanguageInfo 返回目前选入指定设备场景中的字体的信息 GetGlyphOutline 取得TureType字体中构成
一个
字符的曲线信息 GetKerningPairs 取得指定字体的字距信息 GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 GetTabbedTextExtent 判断
一个
字串占据的范围,同时考虑制表站扩充的因素 GetTextAlign 接收
一个
设备场景当前的文本对齐标志 GetTextCharacterExtra 判断额外字符间距的当前值 GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 GetTextColor 判断当前字体颜色。通常也称为“前景色” GetTextExtentExPoint 判断要填入指定区域的字符数量。也用
一个
数组装载每个字符的范围信息 GetTextExtentPoint 判断
一个
字串的大小(范围) GetTextFace 获取一种字体的字样名 GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 GrayString 描绘
一个
以灰色显示的字串。通常由Windows用于标识禁止状态 PolyTextOut 描绘一系列字串 RemoveFontResource 从Windows系统中删除一种字体资源 SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 SetTextAlign 设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 SetTextColor 设置当前文本颜色。这种颜色也称为“前景色” SetTextJustification 通过指定
一个
文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 TabbedTextOut 支持制表站的
一个
文本描绘函数 TextOut 文本绘图函数 6. API之菜单函数 AppendMenu 在指定的菜单里添加
一个
菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioItem 指定
一个
菜单条目被复选成“单选”项目 CreateMenu 创建新菜单 CreatePopupMenu 创建
一个
空的弹出式菜单 DeleteMenu 删除指定的菜单条目 DestroyMenu 删除指定的菜单 DrawMenuBar 为指定的
窗口
重画菜单 EnableMenuItem 允许或禁止指定的菜单条目 GetMenu 取得
窗口
中
一个
菜单的句柄 GetMenuCheckMarkDimensions 返回
一个
菜单复选符的大小 GetMenuContextHelpId 取得
一个
菜单的帮助场景ID GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 GetMenuItemCount 返回菜单中条目(菜单项)的数量 GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID GetMenuItemInfo 取得(接收)与
一个
菜单条目有关的特定信息 GetMenuItemRect 在
一个
矩形中装载指定菜单条目的屏幕坐标信息 GetMenuState 取得与指定菜单条目状态有关的信息 GetMenuString 取得指定菜单条目的字串 GetSubMenu 取得
一个
弹出式菜单的句柄,它位于菜单中指定的位置 GetSystemMenu 取得指定
窗口
的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示状态 InsertMenu 在菜单的指定位置处插入
一个
菜单条目,并根据需要将其他条目向下移动 InsertMenuItem 插入
一个
新菜单条目 IsMenu 判断指定的句柄是否为
一个
菜单的句柄 LoadMenu 从指定的模块或应用程序实例中载入
一个
菜单 LoadMenuIndirect 载入
一个
菜单 MenuItemFromPoint 判断哪个菜单条目包含了屏幕上
一个
指定的点 ModifyMenu 改变菜单条目 RemoveMenu 删除指定的菜单条目 SetMenu 设置
窗口
菜单 SetMenuContextHelpId 设置
一个
菜单的帮助场景ID SetMenuDefaultItem 将
一个
菜单条目设为默认条目 SetMenuItemBitmaps 设置
一幅
特定
位图
,令其在指定的菜单条目中使用,代替标准的复选符号(√) SetMenuItemInfo 为
一个
菜单条目设置指定的信息 TrackPopupMenu 在屏幕的任意地方显示
一个
弹出式菜单 TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 7. API之
位图
、图标和光栅运算函数 BitBlt 将
一幅
位图
从
一个
设备场景复制到另
一个
CopyIcon 制作指定图标或鼠标指针的
一个
副本。这个副本从属于发出调用的应用程序 CopyImage 复制
位图
、图标或指针,同时在复制过程中进行一些转换工作 CreateBitmap 按照规定的格式创建
一幅
与设备有关
位图
CreateBitmapIndirect 创建
一幅
与设备有关
位图
CreateCompatibleBitmap 创建
一幅
与设备有关
位图
,它与指定的设备场景兼容 CreateCursor 创建
一个
鼠标指针 CreateDIBitmap 根据
一幅
与设备无关的
位图
创建
一幅
与设备有关的
位图
CreateDIBSection 创建
一个
DIBSection CreateIcon 创建
一个
图标 CreateIconIndirect 创建
一个
图标 DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源 DestroyIcon 清除图标 DrawIcon 在指定的位置画
一个
图标 DrawIconEx 描绘
一个
图标或鼠标指针。与DrawIcon相比,这个函数提供了更多的功能 ExtractAssociatedIcon 判断
一个
可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之 ExtractIcon 判断
一个
可执行文件或DLL中是否有图标存在,并将其提取出来 GetBitmapBits 将来自
位图
的二进制位复制到
一个
缓冲区 GetBitmapDimensionEx 取得
一幅
位图
的宽度和高度 GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息 GetDIBits 将来自
一幅
位图
的二进制位复制到
一幅
与设备无关的
位图
里 GetIconInfo 取得与图标有关的信息 GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式 LoadBitmap 从指定的模块或应用程序实例中载入
一幅
位图
LoadCursor 从指定的模块或应用程序实例中载入
一个
鼠标指针 LoadCursorFromFile 在
一个
指针文件或
一个
动画指针文件的基础上创建
一个
指针 LoadIcon 从指定的模块或应用程序实例中载入
一个
图标 LoadImage 载入
一个
位图
、图标或指针 MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理 PatBlt 在当前选定的刷子的基础上,用
一个
图案填充指定的设备场景 PlgBlt 复制
一幅
位图
,同时将其转换成
一个
平行四边形。利用它可对
位图
进行旋转处理 SetBitmapBits 将来自缓冲区的二进制位复制到
一幅
位图
SetBitmapDimensionEx 设置
一幅
位图
的宽度。以一毫米的十分之一为单位 SetDIBColorTable 设置选入设备场景的
一个
DIBSection的颜色表信息 SetDIBits 将来自与设备无关
位图
的二进制位复制到
一幅
与设备有关的
位图
里 SetDIBitsToDevice 将
一幅
与设备无关
位图
的全部或部分数据直接复制到
一个
设备 SetStretchBltMode 指定StretchBlt 和 StretchDIBits函数的伸缩模式 StretchBlt 将
一幅
位图
从
一个
设备场景复制到另
一个
StretchDIBits 将
一幅
与设备无关
位图
的全部或部分数据直接复制到指定的设备场景 8. API之绘图函数 AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作 AngleArc 用
一个
连接弧画一条线 Arc 画
一个
圆弧 BeginPath 启动
一个
路径分支 CancelDC 取消另
一个
线程里的长时间绘图操作 Chord 画
一个
弦 CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返回
一个
句柄 CloseFigure 描绘到
一个
路径时,关闭当前打开的图形 CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回
一个
句柄 CopyEnhMetaFile 制作指定增强型图元文件的
一个
副本(拷贝) CopyMetaFile 制作指定(标准)图元文件的
一个
副本 CreateBrushIndirect 在
一个
LOGBRUSH数据结构的基础上创建
一个
刷子 CreateDIBPatternBrush 用
一幅
与设备无关的
位图
创建
一个
刷子,以便指定刷子样式(图案) CreateEnhMetaFile 创建
一个
增强型的图元文件设备场景 CreateHatchBrush 创建带有阴影图案的
一个
刷子 CreateMetaFile 创建
一个
图元文件设备场景 CreatePatternBrush 用指定了刷子图案的
一幅
位图
创建
一个
刷子 CreatePen 用指定的样式、宽度和颜色创建
一个
画笔 CreatePenIndirect 根据指定的LOGPEN结构创建
一个
画笔 CreateSolidBrush 用纯色创建
一个
刷子 DeleteEnhMetaFile 删除指定的增强型图元文件 DeleteMetaFile 删除指定的图元文件 DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放 DrawEdge 用指定的样式描绘
一个
矩形的边框 DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序 DrawFocusRect 画
一个
焦点矩形 DrawFrameControl 描绘
一个
标准控件 DrawState 为
一幅
图象或绘图操作应用各式各样的效果 Ellipse 描绘
一个
椭圆,由指定的矩形围绕 EndPath 停止定义
一个
路径 EnumEnhMetaFile 针对
一个
增强型图元文件,列举其中单独的图元文件记录 EnumMetaFile 为
一个
标准的windows图元文件枚举单独的图元文件记录 EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 ExtCreatePen 创建
一个
扩展画笔(装饰或几何) ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充
一个
区域 FillPath 关闭路径中任何打开的图形,并用当前刷子填充 FillRect 用指定的刷子填充
一个
矩形 FlattenPath 将
一个
路径中的所有曲线都转换成线段 FloodFill 用当前选定的刷子在指定的设备场景中填充
一个
区域 FrameRect 用指定的刷子围绕
一个
矩形画
一个
边框 GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 GdiFlush 执行任何未决的绘图操作 GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 GetBkColor 取得指定设备场景当前的背景颜色 GetBkMode 针对指定的设备场景,取得当前的背景填充模式 GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 GetCurrentObject 获得指定类型的当前选定对象 GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 GetEnhMetaFile 取得磁盘文件中包含的
一个
增强型图元文件的图元文件句柄 GetEnhMetaFileBits 将指定的增强型图元文件复制到
一个
内存缓冲区里 GetEnhMetaFileDescription 返回对
一个
增强型图元文件的说明 GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 GetMetaFile 取得包含在
一个
磁盘文件中的图元文件的图元文件句柄 GetMetaFileBitsEx 将指定的图元文件复制到
一个
内存缓冲区 GetMiterLimit 取得设备场景的斜率限制(Miter)设置 GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 GetObjectAPI 取得对指定对象进行说明的
一个
结构 GetObjectType 判断由指定句柄引用的GDI对象的类型 GetPath 取得对当前路径进行定义的一系列数据 GetPixel 在指定的设备场景中取得
一个
像素的RGB值 GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 GetROP2 针对指定的设备场景,取得当前的绘图模式 GetStockObject 取得
一个
固有对象(Stock) GetSysColorBrush 为任何一种标准系统颜色取得
一个
刷子 GetWinMetaFileBits 通过在
一个
缓冲区中填充用于标准图元文件的数据,将
一个
增强型图元文件转换成标准windows图元文件 InvertRect 通过反转每个像素的值,从而反转
一个
设备场景中指定的矩形 LineDDA 枚举指定线段中的所有点 LineTo 用当前画笔画一条线,从当前位置连到
一个
指定的点 MoveToEx 为指定的设备场景指定
一个
新的当前画笔位置 PaintDesk 在指定的设备场景中描绘桌面墙纸图案 PathToRegion 将当前选定的路径转换到
一个
区域里 Pie 画
一个
饼图 PlayEnhMetaFile 在指定的设备场景中画
一个
增强型图元文件 PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录 PlayMetaFile 在指定的设备场景中回放
一个
图元文件 PlayMetaFileRecord 回放来自图元文件的单条记录 PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线 PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成 Polygon 描绘
一个
多边形 Polyline 用当前画笔描绘一系列线段 PolyPolygon 用当前选定画笔描绘两个或多个多边形 PolyPolyline 用当前选定画笔描绘两个或多个多边形 Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充 RoundRect 用当前选定的画笔画
一个
圆角矩形,并用当前选定的刷子在其中填充 SelectClipPath 将设备场景当前的路径合并到剪切区域里 SelectObject 为当前设备场景选择图形对象 SetArcDirection 设置圆弧的描绘方向 SetBkColor 为指定的设备场景设置背景颜色 SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式 SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点 SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建
一个
增强型图元文件 SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建
一个
图元文件 SetMiterLimit 设置设备场景当前的斜率限制 SetPixel 在指定的设备场景中设置
一个
像素的RGB值 SetPixelV 在指定的设备场景中设置
一个
像素的RGB值 SetPolyFillMode 设置多边形的填充模式 SetROP2 设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致 SetWinMetaFileBits 将
一个
标准Windows图元文件转换成增强型图元文件 StrokeAndFillPath 针对指定的设备场景,关闭路径上打开的所有区域 StrokePath 用当前画笔描绘
一个
路径的轮廓。打开的图形不会被这个函数关闭 UnrealizeObject 将
一个
刷子对象选入设备场景之前,如刷子的起点准备用SetBrushOrgEx修改,则必须先调用本函数 WidenPath 根据选定画笔的宽度,重新定义当前选定的路径 9. API之设备场景函数 CombineRgn 将两个区域组合为
一个
新区域 CombineTransform 驱动世界转换。它相当于依顺序进行两次转换 CreateCompatibleDC 创建
一个
与特定设备场景一致的内存设备场景 CreateDC 为专门设备创建设备场景 CreateEllipticRgn 创建
一个
椭圆 CreateEllipticRgnIndirect 创建
一个
内切于特定矩形的椭圆区域 CreateIC 为专用设备创建
一个
信息场景 CreatePolygonRgn 创建
一个
由一系列点围成的区域 CreatePolyPolygonRgn 创建由多个多边形构成的区域。每个多边形都应是封闭的 CreateRectRgn 创建
一个
矩形区域 CreateRectRgnIndirect 创建
一个
矩形区域 CreateRoundRectRgn 创建
一个
圆角矩形 DeleteDC 删除专用设备场景或信息场景,释放所有相关
窗口
资源 DPtoLP 将点阵从设备坐标转换到专用设备场景逻辑坐标 EqualRgn 确定两个区域是否相等 ExcludeClipRect 从专用设备场景的剪裁区中去掉
一个
矩形区。矩形内不能进行绘图 ExcludeUpdateRgn 从专用设备场景剪裁区去掉指定
窗口
的刷新区域 ExtCreateRegion 根据世界转换修改区域 ExtSelectClipRgn 将指定区域组合到设备场景的当前剪裁区 FillRgn 用指定刷子填充指定区域 FrameRgn 用指定刷子围绕指定区域画
一个
外框 GetBoundsRect 获取指定设备场景的边界矩形 GetClipBox 获取完全包含指定设备场景剪裁区的最小矩形 GetClipRgn 获取设备场景当前剪裁区 GetDC 获取指定
窗口
的设备场景 GetDCEx 为指定
窗口
获取设备场景。相比GetDC,本函数提供了更多的选项 GetDCOrgEx 获取指定设备场景起点位置(以屏幕坐标表示) GetDeviceCaps 根据指定设备场景代表的设备的功能返回信息 GetGraphicsMode 确定是否允许增强图形模式(世界转换) GetMapMode 为特定设备场景调入映象模式 GetRegionData 装入描述
一个
区域信息的RgnData结构或缓冲区 GetRgnBox 获取完全包含指定区域的最小矩形 GetUpdateRgn 确定指定
窗口
的刷新区域。该区域当前无效,需要刷新 GetViewportExtEx 获取设备场景视口(viewport)范围 GetViewportOrgEx 获取设备场景视口起点 GetWindowDC 获取整个
窗口
(包括边框、滚动条、标题栏、菜单等)的设备场景 GetWindowExtEx 获取指定设备场景的
窗口
范围 GetWindowOrgEx 获取指定设备场景的逻辑
窗口
的起点 GetWindowRgn 获取
窗口
区域 GetWorldTransform 如果有世界转换,为设备场景获取当前世界转换 IntersectClipRect 为指定设备定义
一个
新的剪裁区 InvalidateRgn 使
窗口
指定区域不活动,并将它加入
窗口
刷新区,使之可随后被重画 InvertRgn 通过颠倒每个像素值反转设备场景指定区域 LPtoDP 将点阵从指定设备场景逻辑坐标转换为设备坐标 ModifyWorldTransform 根据指定的模式修改世界转换 OffsetClipRgn 按指定量平移设备场景剪裁区 OffsetRgn 按指定偏移量平移指定区域 OffsetViewportOrgEx 平移设备场景视口区域 OffsetWindowOrgEx 平移指定设备场景
窗口
起点 PaintRgn 用当前刷子背景色填充指定区域 PtInRegion 确定点是否在指定区域内 PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内) RectInRegion 确定矩形是否有部分在指定区域内 RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内) ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景 RestoreDC 从设备场景堆栈恢复
一个
原先保存的设备场景 SaveDC 将指定设备场景状态保存到Windows设备场景堆栈 ScaleViewportExtEx 缩放设备场景视口的范围 ScaleWindowExtEx 缩放指定设备场景
窗口
范围 ScrollDC 在
窗口
(由设备场景代表)中水平和(或)垂直滚动矩形 SelectClipRgn 为指定设备场景选择新的剪裁区 SetBoundsRect 设置指定设备场景的边界矩形 SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换) SetMapMode 设置指定设备场景的映射模式 SetRectRgn 设置区域为指定的矩形 SetViewportExtEx 设置设备场景视口范围 SetViewportOrgEx 设置设备场景视口起点 SetWindowExtEx 设置指定设备场景
窗口
范围 SetWindowOrgEx 设置指定设备场景
窗口
起点 SetWindowRgn 设置
窗口
区域 SetWorldTransform 设置世界转换 ValidateRgn 激活
窗口
中指定区域,把它从刷新区移走 WindowFromDC 取回与某一设备场景相关的
窗口
的句柄 10. API之硬件与系统函数 ActivateKeyboardLayout 激活
一个
新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 Beep 用于生成简单的声音 CharToOem 将
一个
字串从ANSI字符集转换到OEM字符集 ClipCursor 将指针限制到指定区域 ConvertDefaultLocale 将
一个
特殊的地方标识符转换成真实的地方ID CreateCaret 根据指定的信息创建
一个
插入符(光标),并将它选定为指定
窗口
的默认插入符 DestroyCaret 清除(破坏)
一个
插入符 EnumCalendarInfo 枚举在指定“地方”环境中可用的日历信息 EnumDateFormats 列举指定的“当地”设置中可用的长、短日期格式 EnumSystemCodePages 枚举系统中已安装或支持的代码页 EnumSystemLocales 枚举系统已经安装或提供支持的“地方”设置 EnumTimeFormats 枚举
一个
指定的地方适用的时间格式 ExitWindowsEx 退出windows,并用特定的选项重新启动 ExpandEnvironmentStrings 扩充环境字串 FreeEnvironmentStrings 翻译指定的环境字串块 GetACP 判断目前正在生效的ANSI代码页 GetAsyncKeyState 判断函数调用时指定虚拟键的状态 GetCaretBlinkTime 判断插入符光标的闪烁频率 GetCaretPos 判断插入符的当前位置 GetClipCursor 取得
一个
矩形,用于描述目前为鼠标指针规定的剪切区域 GetCommandLine 获得指向当前命令行缓冲区的
一个
指针 GetComputerName 取得这台计算机的名称 GetCPInfo 取得与指定代码页有关的信息 GetCurrencyFormat 针对指定的“地方”设置,根据货币格式格式化
一个
数字 GetCursor 获取目前选择的鼠标指针的句柄 GetCursorPos 获取鼠标指针的当前位置 GetDateFormat 针对指定的“当地”格式,对
一个
系统日期进行格式化 GetDoubleClickTime 判断连续两次鼠标单击之间会被处理成双击事件的间隔时间 GetEnvironmentStrings 为包含了当前环境字串设置的
一个
内存块分配和返回
一个
句柄 GetEnvironmentVariable 取得
一个
环境变量的值 GetInputState 判断是否存在任何待决(等待处理)的鼠标或键盘事件 GetKBCodePage 由GetOEMCP取代,两者功能完全相同 GetKeyboardLayout 取得
一个
句柄,描述指定应用程序的键盘布局 GetKeyboardLayoutList 获得系统适用的所有键盘布局的
一个
列表 GetKeyboardLayoutName 取得当前活动键盘布局的名称 GetKeyboardState 取得键盘上每个虚拟键当前的状态 GetKeyboardType 了解与正在使用的键盘有关的信息 GetKeyNameText 在给出扫描码的前提下,判断键名 GetKeyState 针对已处理过的按键,在最近一次输入信息时,判断指定虚拟键的状态 GetLastError 针对之前调用的api函数,用这个函数取得扩展错误信息 GetLocaleInfo 取得与指定“地方”有关的信息 GetLocalTime 取得本地日期和时间 GetNumberFormat 针对指定的“地方”,按特定的格式格式化
一个
数字 GetOEMCP 判断在OEM和ANSI字符集间转换的windows代码页 GetQueueStatus 判断应用程序消息队列中待决(等待处理)的消息类型 GetSysColor 判断指定windows显示对象的颜色 GetSystemDefaultLangID 取得系统的默认语言ID GetSystemDefaultLCID 取得当前的默认系统“地方” GetSystemInfo 取得与底层硬件平台有关的信息 GetSystemMetrics 返回与windows环境有关的信息 GetSystemPowerStatus 获得与当前系统电源状态有关的信息 GetSystemTime 取得当前系统时间,这个时间采用的是“协同世界时间”(即UTC,也叫做GMT)格式 GetSystemTimeAdjustment 使内部系统时钟与
一个
外部的时钟信号源同步 GetThreadLocale 取得当前线程的地方ID GetTickCount 用于获取自windows启动以来经历的时间长度(毫秒) GetTimeFormat 针对当前指定的“地方”,按特定的格式格式化
一个
系统时间 GetTimeZoneInformation 取得与系统时区设置有关的信息 GetUserDefaultLangID 为当前用户取得默认语言ID GetUserDefaultLCID 取得当前用户的默认“地方”设置 GetUserName 取得当前用户的名字 GetVersion 判断当前运行的Windows和DOS版本 GetVersionEx 取得与平台和操作系统有关的版本信息 HideCaret 在指定的
窗口
隐藏插入符(光标) IsValidCodePage 判断
一个
代码页是否有效 IsValidLocale 判断地方标识符是否有效 keybd_event 这个函数模拟了键盘行动 LoadKeyboardLayout 载入
一个
键盘布局 MapVirtualKey 根据指定的映射类型,执行不同的扫描码和字符转换 MapVirtualKeyEx 根据指定的映射类型,执行不同的扫描码和字符转换 MessageBeep 播放
一个
系统声音。系统声音的分配方案是在控制面板里决定的 mouse_event 模拟一次鼠标事件 OemKeyScan 判断OEM字符集中的
一个
ASCII字符的扫描码和Shift键状态 OemToChar 将OEM字符集的
一个
字串转换到ANSI字符集 SetCaretBlinkTime 指定插入符(光标)的闪烁频率 SetCaretPos 指定插入符的位置 SetComputerName 设置新的计算机名 SetCursor 将指定的鼠标指针设为当前指针 SetCursorPos 设置指针的位置 SetDoubleClickTime 设置连续两次鼠标单击之间能使系统认为是双击事件的间隔时间 SetEnvironmentVariable 将
一个
环境变量设为指定的值 SetKeyboardState 设置每个虚拟键当前在键盘上的状态 SetLocaleInfo 改变用户“地方”设置信息 SetLocalTime 设置当前地方时间 SetSysColors 设置指定
窗口
显示对象的颜色 SetSystemCursor 改变任何
一个
标准系统指针 SetSystemTime 设置当前系统时间 SetSystemTimeAdjustment 定时添加
一个
校准值使内部系统时钟与
一个
外部的时钟信号源同步 SetThreadLocale 为当前线程设置地方 SetTimeZoneInformation 设置系统时区信息 ShowCaret 在指定的
窗口
里显示插入符(光标) ShowCursor 控制鼠标指针的可视性 SwapMouseButton 决定是否互换鼠标左右键的功能 SystemParametersInfo 获取和设置数量众多的windows系统参数 SystemTimeToTzSpecificLocalTime 将系统时间转换成地方时间 ToAscii 根据当前的扫描码和键盘信息,将
一个
虚拟键转换成ASCII字符 ToUnicode 根据当前的扫描码和键盘信息,将
一个
虚拟键转换成Unicode字符 UnloadKeyboardLayout 卸载指定的键盘布局 VkKeyScan 针对Windows字符集中
一个
ASCII字符,判断虚拟键码和Shift键的状态 11. API之进程和线程函数 CancelWaitableTimer 这个函数用于取消
一个
可以等待下去的计时器操作 CallNamedPipe 这个函数由
一个
希望通过管道通信的
一个
客户进程调用 ConnectNamedPipe 指示一台服务器等待下去,直至客户机同
一个
命名管道连接 CreateEvent 创建
一个
事件对象 CreateMailslot 创建
一个
邮路。返回的句柄由邮路服务器使用(收件人) CreateMutex 创建
一个
互斥体(MUTEX) CreateNamedPipe 创建
一个
命名管道。返回的句柄由管道的服务器端使用 CreatePipe 创建
一个
匿名管道 CreateProcess 创建
一个
新进程(比如执行
一个
程序) CreateSemaphore 创建
一个
新的信号机 CreateWaitableTimer 创建
一个
可等待的计时器对象 DisconnectNamedPipe 断开
一个
客户与
一个
命名管道的连接 DuplicateHandle 在指出
一个
现有系统对象当前句柄的情况下,为那个对象创建
一个
新句柄 ExitProcess 中止
一个
进程 FindCloseChangeNotification 关闭
一个
改动通知对象 FindExecutable 查找与
一个
指定文件关联在一起的程序的文件名 FindFirstChangeNotification 创建
一个
文件通知对象。该对象用于监视文件系统发生的变化 FindNextChangeNotification 重设
一个
文件改变通知对象,令其继续监视下一次变化 FreeLibrary 释放指定的动态链接库 GetCurrentProcess 获取当前进程的
一个
伪句柄 GetCurrentProcessId 获取当前进程
一个
唯一的标识符 GetCurrentThread 获取当前线程的
一个
伪句柄 GetCurrentThreadId 获取当前线程
一个
唯一的线程标识符 GetExitCodeProces 获取
一个
已中断进程的退出代码 GetExitCodeThread 获取
一个
已中止线程的退出代码 GetHandleInformation 获取与
一个
系统对象句柄有关的信息 GetMailslotInfo 获取与
一个
邮路有关的信息 GetModuleFileName 获取
一个
已装载模板的完整路径名称 GetModuleHandle 获取
一个
应用程序或动态链接库的模块句柄 GetPriorityClass 获取特定进程的优先级别 GetProcessShutdownParameters 调查系统关闭时
一个
指定的进程相对于其它进程的关闭早迟情况 GetProcessTimes 获取与
一个
进程的经过时间有关的信息 GetProcessWorkingSetSize 了解
一个
应用程序在运行过程中实际向它交付了多大容量的内存 GetSartupInfo 获取
一个
进程的启动信息 GetThreadPriority 获取特定线程的优先级别 GetTheardTimes 获取与
一个
线程的经过时间有关的信息 GetWindowThreadProcessId 获取与指定
窗口
关联在一起的
一个
进程和线程标识符 LoadLibrary 载入指定的动态链接库,并将它映射到当前进程使用的地址空间 LoadLibraryEx 装载指定的动态链接库,并为当前进程把它映射到地址空间 LoadModule 载入
一个
Windows应用程序,并在指定的环境中运行 MsgWaitForMultipleObjects 等侯单个对象或一系列对象发出信号。如返回条件已经满足,则立即返回 SetPriorityClass 设置
一个
进程的优先级别 SetProcessShutdownParameters 在系统关闭期间,为指定进程设置他相对于其它程序的关闭顺序 SetProcessWorkingSetSize 设置操作系统实际划分给进程使用的内存容量 SetThreadPriority 设定线程的优先级别 ShellExecute 查找与指定文件关联在一起的程序的文件名 TerminateProcess 结束
一个
进程 WinExec 运行指定的程序 12. API之控件与消息函数 AdjustWindowRect 给定一种
窗口
样式,计算获得目标客户区矩形所需的
窗口
大小 AnyPopup 判断屏幕上是否存在任何弹出式
窗口
ArrangeIconicWindows 排列
一个
父
窗口
的最小化子
窗口
AttachThreadInput 连接线程输入函数 BeginDeferWindowPos 启动构建一系列新
窗口
位置的过程 BringWindowToTop 将指定的
窗口
带至
窗口
列表顶部 CascadeWindows 以层叠方式排列
窗口
ChildWindowFromPoint 返回父
窗口
中包含了指定点的第
一个
子
窗口
的句柄 ClientToScreen 判断
窗口
内以客户区坐标表示的
一个
点的屏幕坐标 CloseWindow 最小化指定的
窗口
CopyRect 矩形内容复制 DeferWindowPos 该函数为特定的
窗口
指定
一个
新
窗口
位置 DestroyWindow 清除指定的
窗口
以及它的所有子
窗口
DrawAnimatedRects 描绘一系列动态矩形 EnableWindow 指定的
窗口
里允许或禁止所有鼠标及键盘输入 EndDeferWindowPos 同时更新DeferWindowPos调用时指定的所有
窗口
的位置及状态 EnumChildWindows 为指定的父
窗口
枚举子
窗口
EnumThreadWindows 枚举与指定任务相关的
窗口
EnumWindows 枚举
窗口
列表中的所有父
窗口
EqualRect 判断两个矩形结构是否相同 FindWindow 寻找
窗口
列表中第
一个
符合指定条件的顶级
窗口
FindWindowEx 在
窗口
列表中寻找与指定条件相符的第
一个
子
窗口
FlashWindow 闪烁显示指定
窗口
GetActiveWindow 获得活动
窗口
的句柄 GetCapture 获得
一个
窗口
的句柄,这个
窗口
位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接收) GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的
一个
副本,结构中包含了与指定类有关的信息 GetClassLong 取得
窗口
类的
一个
Long变量条目 GetClassName 为指定的
窗口
取得类名 GetClassWord 为
窗口
类取得
一个
整数变量 GetClientRect 返回指定
窗口
客户区矩形的大小 GetDesktopWindow 获得代表整个屏幕的
一个
窗口
(桌面
窗口
)句柄 GetFocus 获得拥有输入焦点的
窗口
的句柄 GetForegroundWindow 获得前台
窗口
的句柄 GetLastActivePopup 获得在
一个
给定父
窗口
中最近激活过的弹出式
窗口
的句柄 GetParent 判断指定
窗口
的父
窗口
GetTopWindow 搜索内部
窗口
列表,寻找隶属于指定
窗口
的头
一个
窗口
的句柄 GetUpdateRect 获得
一个
矩形,它描叙了指定
窗口
中需要更新的那一部分 GetWindow 获得
一个
窗口
的句柄,该
窗口
与某源
窗口
有特定的关系 GetWindowContextHelpId 取得与
窗口
关联在一起的帮助场景ID GetWindowLong 从指定
窗口
的结构中取得信息 GetWindowPlacement 获得指定
窗口
的状态及位置信息 GetWindowRect 获得整个
窗口
的范围矩形,
窗口
的边框、标题栏、滚动条及菜单等都在这个矩形内 GetWindowText 取得
一个
窗体的标题(caption)文字,或者
一个
控件的内容 GetWindowTextLength 调查
窗口
标题文字或控件内容的长短 GetWindowWord 获得指定
窗口
结构的信息 InflateRect 增大或减小
一个
矩形的大小 IntersectRect 这个函数在lpDestRect里载入
一个
矩形,它是lpSrc1Rect与lpSrc2Rect两个矩形的交集 InvalidateRect 屏蔽
一个
窗口
客户区的全部或部分区域 IsChild 判断
一个
窗口
是否为另一
窗口
的子或隶属
窗口
IsIconic 判断
窗口
是否已最小化 IsRectEmpty 判断
一个
矩形是否为空 IsWindow 判断
一个
窗口
句柄是否有效 IsWindowEnabled 判断
窗口
是否处于活动状态 IsWindowUnicode 判断
一个
窗口
是否为Unicode
窗口
。这意味着
窗口
为所有基于文本的消息都接收Unicode文字 IsWindowVisible 判断
窗口
是否可见 IsZoomed 判断
窗口
是否最大化 LockWindowUpdate 锁定指定
窗口
,禁止它更新 MapWindowPoints 将
一个
窗口
客户区坐标的点转换到另一
窗口
的客户区坐标系统 MoveWindow 改变指定
窗口
的位置和大小 OffsetRect 通过应用
一个
指定的偏移,从而让矩形移动起来 OpenIcon 恢复
一个
最小化的程序,并将其激活 PtInRect 判断指定的点是否位于矩形内部 RedrawWindow 重画全部或部分
窗口
ReleaseCapture 为当前的应用程序释放鼠标捕获 ScreenToClient 判断屏幕上
一个
指定点的客户区坐标 ScrollWindow 滚动
窗口
客户区的全部或一部分 ScrollWindowEx 根据附加的选项,滚动
窗口
客户区的全部或部分 SetActiveWindow 激活指定的
窗口
SetCapture 将鼠标捕获设置到指定的
窗口
SetClassLong 为
窗口
类设置
一个
Long变量条目 SetClassWord 为
窗口
类设置
一个
条目 SetFocusAPI 将输入焦点设到指定的
窗口
。如有必要,会激活
窗口
SetForegroundWindow 将
窗口
设为系统的前台
窗口
SetParent 指定
一个
窗口
的新父 SetRect 设置指定矩形的内容 SetRectEmpty 将矩形设为
一个
空矩形 SetWindowContextHelpId 为指定的
窗口
设置帮助场景(上下文)ID SetWindowLong 在
窗口
结构中为指定的
窗口
设置信息 SetWindowPlacement 设置
窗口
状态和位置信息 SetWindowPos 为
窗口
指定
一个
新位置和状态 SetWindowText 设置
窗口
的标题文字或控件的内容 SetWindowWord 在
窗口
结构中为指定的
窗口
设置信息 ShowOwnedPopups 显示或隐藏由指定
窗口
所有的全部弹出式
窗口
ShowWindow 控制
窗口
的可见性 ShowWindowAsync 与ShowWindow相似 SubtractRect 装载矩形lprcDst,它是在矩形lprcSrc1中减去lprcSrc2得到的结果 TileWindows 以平铺顺序排列
窗口
UnionRect 装载
一个
lpDestRect目标矩形,它是lpSrc1Rect和lpSrc2Rect联合起来的结果 UpdateWindow 强制立即更新
窗口
ValidateRect 校验
窗口
的全部或部分客户区 WindowFromPoint 返回包含了指定点的
窗口
的句柄。忽略屏蔽、隐藏以及
透明
窗口
MYWWW.rar_BMP 裁剪图片_C++ 多幅图片_visual c_图片
多幅图片的层叠显示,bmp图片边界裁剪算法,
display_a_picture.rar_vc picture
用VC++软件来实现显示
一幅
图片,已经测试过
OPenGL编程书籍
1.创建
一个
OpenGL
窗口
: 在这个教程里,我将教你在Windows环境中创建OpenGL程序.它将显示
一个
空的OpenGL
窗口
,可以在
窗口
和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架. 理解OpenGL如何工作非常重要,你可以在教程的末尾下载源程序,但我强烈建议你至少读一遍教程,然后再开始编程. 2.你的第
一个
多边形: 在第
一个
教程的基础上,我们添加了
一个
三角形和
一个
四边形。也许你认为这很简单,但你已经迈出了一大步,要知道任何在OpenGL中绘制的模型都会被分解为这两种简单的图形。 读完了这一课,你会学到如何在空间放置模型,并且会知道深度缓存的概念。 3.添加颜色: 作为第二课的扩展,我将叫你如何使用颜色。你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色。 注意三角形上的颜色是如何混合的。 颜色为OpenGlL 工程增加很多。通过理解平面着色(flat coloring)和平滑着色(smooth coloring),你能显著的改善你的OpenGL Demo的样子。 4.旋转: 在这一课里,我将教会你如何旋转三角形和四边形。左图中的三角形沿Y轴旋转,四边形沿着X轴旋转。 这一章将引入两个变量, rtri 被用来存储三角形的角度, rquad存储四边形的角度。 和容易创建
一个
多边形组成的场景。让这些物体动起来是整个场景变得生动起来。在后面的课程钟我将教给你如何绕屏幕上的
一个
点旋转物体,使得物体绕屏幕而不是它的轴转动。 5.3D形体: 既然我们已经领会到多边形,方形,色彩和旋转。现在该建立3D物体了。我将使用多边形和矩形c创建3D物体。这次我们将扩展上一章的教程,并且将三角形转换成
一个
彩色的棱锥,把正方形变为
一个
实心正方体。棱锥使用混合色,正方体每个面使用一种颜色。在3D空间创建物体可能很费时间,但是所获得的结果(收获)值得这样做。充分发挥你的想象力吧。 6.纹理映射: 你想要它,它现在就在这里了,那就是 ... 纹理映射!!!在这一章我将教会你如何将
一幅
位图
(bitmap)映射到正方体的六个面上去。我们将使用第一章的OpenGL代码来创建工程。创建
一个
空的
窗口
比修改上一课的代码更容易。 你将会发现第一章的代码在对于快速创建工程来说是及其有价值的。第一章的代码为你设置好了一切,你所需要做的只是集中精力为效果编程。 7.纹理滤波, 光照和键盘控制: 好的,我希望到现在你已经理解了所有的东西,因为这是
一个
巨大的教程。我想教给你两个新的方法来过滤(filter)你的纹理,简单的光照,键盘控制并且还可能更多 :) .如果你对到这一课为止你所学的东西并不充满信心,那就回头复习一下。玩一下其它课程的代码,不要操之过急。最好专心把每一课学好,而不是蜻蜓点水,只知道如何把东西做出来。 8.混合 有理由等一下,
一个
来自很酷的Hypercosm的程序员伙伴问(我)他是否可以写一章关于混合的教程。第八课通常正是讲混合的,所以太巧了。这一章教程扩展了第七章。混合是一项很酷的技术 .. 我希望你们能好好享受这一章教程。这一章的作者是Tom Stanis他在这制作一章上花费了很多精力,所以让他知道你觉得怎么样。混合可不是
一个
好讲的话题。 9.在3D空间中移动
位图
: 这一章覆盖了一些你们要求的主题,你想知道如何移动你在3D屏幕空间上创造的物体。你想要知道如何在屏幕上绘制
一幅
位图
,并且
位图
的黑色部分不会覆盖它后面的东西。你想要简单的动画,想要更多的混合的应用,这一章将教会你所有这些。You'll notice there's no spinning boxes(yaker:很惭愧这一句我不是很明白)。前面的课程覆盖了OpenGL的基础,每一章都基于前面的内容。前面的课程涵盖了基础的OpenGL,每一课都是在前一课的基础上创建的。这一课是前面几课知识的综合,当你学习这课时,请确保你已经掌握了前面几课的知识。 10.加载3D世界,并在其中漫游: 你一直期待的教程来了!这一章友
一个
叫Lionel Brites的伙伴制作。这一课里你讲学到如何导入
一个
3D世界。代码仍然使用第一章的,但是,课程页面只是解释了新的部分,包括导入3D场景,在3D世界中移动。下载VC++代码并且在你阅读教程的同时阅读代码。按[B]键控制混合,[F]键控制滤波,[L]键控制光照(但光并不随场景移动),还有[Page UP]和[Page Down]键。我希望你能喜欢Lionel对网站的贡献。我有空的时候我会让这个教程更容易学习。 11.旗帜效果 (飘动的纹理): 这一章教程由Bosco带给你。他就是那个创造了很酷的小Demo: worthless的家伙。他喜欢每个人对他的Demo的反映,并且决定更进一步,在他的Demo的最后解释他怎么实现这么酷的效果的。这一章教程构建在第六章的代码之上。阅读完这一章之后,你将能弯曲,折叠以及操纵你自己的纹理。这绝对是个很漂亮的效果,并且比纹理固定的旗帜好得多。如果你喜欢这一章,请发邮件给bosco让他知道。 12.显示列表 想知道如何加速你的OpenGL程序么?每次为放置
一个
物体在屏幕上而写很多代码让你厌烦了吧?如果是这样,这一章就是为你准备的。学习如何用OpenGL来显示列表。只用一行代码预构建和显示物体。使用预编译物体加速你的程序。不要再一次又一次写重复的代码。让显示列表为你做所有的工作吧!这一章里我们将建造Q-bert金字塔(Q-bert是一款游戏),感谢显示列表,我们只需要用不多的几行代码。 13.
位图
字体 这一课我们将创建一些基于2D图像的字体,它们可以缩放,但不能旋转,并且总是面向前方,但作为基本的显示来说,我想已经够了。 14.图像字体 在一课我们将教你绘制3D的图形字体,它们可像一般的3D模型一样被变换。 15.图形字体的纹理映射: 这一课,我们将在上一课的基础上创建带有纹理的字体,它真的很简单。 16.看起来很酷的雾 这一课是基于第7课的代码的,你将学会三种不同的雾的计算方法,以及怎样设置雾的颜色和雾的范围。 17.2D 图像文字 在这一课中,你将学会如何使用四边形纹理贴图把文字显示在屏幕上。你将学会如何把256个不同的文字从
一个
256x256的纹理图像中分别提取出来,并为每
一个
文字创建
一个
显示列表,接着创建
一个
输出函数来创建任意你希望的文字。 18.二次几何体 利用二次几何体,你可以很容易的创建球,圆盘,圆柱和圆锥。 19.粒子系统 你是否希望创建爆炸,喷泉,流星之类的效果。这一课将告诉你如何创建
一个
简单的例子系统,并用它来创建一种喷射的效果。 20.蒙板 到目前为止你已经学会如何使用alpha混合,把
一个
透明
物体渲染到屏幕上了,但有的使用它看起来并不是那么的复合你的心意。使用蒙板技术,将会按照你蒙板的位置精确的绘制。 21.线,反走样,计时,正投影和简单的声音 这是我第
一个
大的教程,它将包括线,反走样,计时,正投影和简单的声音。希望这一课中的东西能让每个人感到高兴。 22.凹凸映射,多重纹理扩展 这是一课高级教程,请确信你对基本知识已经非常了解了。这一课是基于第六课的代码的,它将建立
一个
非常酷的立体纹理效果。 23.球面映射 这
一个
将教会你如何把环境纹理包裹在你的3D模型上,让它看起来象反射了周围的场景一样。 24.符号,扩展,剪裁和TGA图像文件的加载 在这一课里,你将学会如何读取你显卡支持的OpenGL的扩展,并在你指定的剪裁区域把它显示出来。 25.变形和从文件中加载3D物体 在这一课中,你将学会如何从文件加载3D模型,并且平滑的从
一个
模型变换为另
一个
模型。 26.剪裁平面,蒙板缓存和反射 在这一课中你将学会如何创建镜面显示效果,它使用剪裁平面,蒙板缓存等OpenGL中一些高级的技巧。 27.阴影 这是
一个
高级的主题,请确信你已经熟练的掌握了基本的OpenGL,并熟悉蒙板缓存。当然它会给你留下深刻的印象的。 28.贝塞尔曲面 这是一课关于数学运算的,没有别的内容了。来,有信心就看看它吧。 29.Blitter 函数 类似于DirectDraw的blit函数,过时的技术,我们有实现了它。它非常的简单,就是把一块纹理贴到另一块纹理上。 30.碰撞检测 这是一课激动的教程,你也许等待它多时了。你将学会碰撞剪裁,物理模拟太多的东西,慢慢期待吧。 31.模型加载 你知道大名鼎鼎的Milkshape3D建模软件么,我们将加载它的模型,当然你可以加载任何你认为不错的模型。 32.拾取, Alpha混合, Alpha测试, 排序 这又是
一个
小游戏,交给的东西会很多,慢慢体会吧 33.加载压缩和未压缩的TGA文件 在这一课里,你将学会如何加载压缩和为压缩的TGA文件,由于它使用RLE压缩,所以非常的简单,你能很快地熟悉它的。 34.从高度图生成的美丽地形 这一课将教会你如何从
一个
2D的灰度图创建地形 35.在OpenGL中播放AVI
视频
在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错。你可以试试。 36.放射模糊和渲染到纹理 如何实现放射状的滤镜效果呢,看上去很难,其实很简单。把渲染得图像作为纹理提取出来,在利用OpenGL本身自带的纹理过滤,就能实现这种效果,不信,你试试。 37.卡通映射 什么是卡通了,
一个
轮廓加上少量的几种颜色。使用一维纹理映射,你也可以实现这种效果。 38.从资源文件中载入图像 如何把图像数据保存到*.exe程序中,使用Windows的资源文件吧,它既简单又实用。 39.物理模拟简介 还记得高中的物理吧,直线运动,自由落体运动,弹簧。在这一课里,我们将创造这一切。 40.绳子的模拟 怎样模拟一根绳子呢,把它想象成
一个
个紧密排列的点,怎么样有了思路了吧,在这一课你你将学会怎样建模,简单吧,你能模拟更多。 41.体积雾 把雾坐标绑定到顶点,你可以在雾中漫游,体验一下吧。 42.多重视口 画中画效果,很酷吧。使用视口它变得很简单,但渲染四次可会大大降低你的显示速度哦:) 43.在OpenGL中使用FreeType库 使用FreeType库可以创建非常好看的反走样的字体,记住暴雪公司就是使用这个库的,就是那个做魔兽世界的。尝试一下吧,我只告诉你了基本的使用方式,你可以走的更远。 44.3D 光晕 当镜头对准太阳的时候就会出现这种效果,模拟它非常的简单,一点数学和纹理贴图就够了。好好看看吧。 45.顶点缓存 你想更快地绘制么?直接操作显卡吧,这可是前沿的图形技术,不要犹豫,我带你入门。接下来,你自己向前走吧。 46.全屏反走样 当今显卡的强大功能,你几乎什么都不用做,只需要在创建
窗口
的时候该
一个
数据。看看吧,驱动程序为你做完了一切。 47.CG 顶点脚本 nVidio的面向GPU的C语言,如果你相信它就好好学学吧,同样这里也只是个入门。记住,类似的语言还有微软的HLSL,OpenGL的GLSL,ATI的shaderMonker。不要选错哦:) 48.轨迹球实现的鼠标旋转
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章