??xml version="1.0" encoding="utf-8" standalone="yes"?>
在mysql里进mysql?br>mysql>use mysqlQ?br>然后select user?br>mysql>select * from user;
或?br>select * from mysql.user;
]]>
C2785: 'T InitialStatValue(void)' and 'FD3DCounter InitialStatValue(void)' have
different return types
development\src\d3ddrv\src\D3DStats.h(27) : error
C3637: 'InitialStatValue' : a friend function definition cannot be a
specialization of a function template
development\src\d3ddrv\src\D3DStats.h(27) : error
C2912: explicit specialization; 'FD3DCounter InitialStatValue(void)' is not a
specialization of a function template
最后在一个国外的论坛扑ֈ解决ҎQ?br>class FD3DCounter
{
template <class FD3DCounter> friend FD3DCounter InitialStatValue(FD3DCounter()) {
return FD3DCounter();
}
// Constructor.
public:
DWORD RenderCycles,
WaitCycles,
Pixels;
FD3DCounter():
RenderCycles(0),
WaitCycles(0),
Pixels(0)
{}
};
注意q个时候还要改友元函数?br>?br>template<class T> T InitialStatValue(int FD3DCounter&) { return 0; }
改ؓtemplate <class T> friend T InitialStatValue(T()) {
return T();
}
q样~译可以用过?br>看来真的要好好复习下C++模板了?br>
]]>
1Q定时器
最直观Q又是最无奈的一个方法就是用定时器。既然我们在对话框开始显CZ前不能用ShowWindow(SW_HIDE)其隐藏Q那q一个时间让它显C,完了我们在隐藏它?
ҎQ?
1.在OnInitDialog()函数里设|定时器Q(WINDOWS API里面响应消息WM_IN99vDIALOGQ?
SetTimer(1, 1, NULL);
2.d处理WM_TIMER的消息处理函数OnTimer,d代码Q?
if(nIDEvent == 1)
{
DeleteTimer(1);
ShowWindow(SW_HIDE);
}
q种Ҏ的缺Ҏ显而易见的Q用定时器Q得程序的E_性似乎打一个折扣;H口是要先显C出来的Q那么效果就是窗口闪了一下消失?
2Q改变对话框昄状况
在对话框初始化时改变其显C属性可以让它隐藏v来。方法是调用SetWindowPlacement函数Q?
BOOL CDialogExDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//DO something
WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(&wp);
return TRUE;
}
在需要显C时Q通常是响应热键或者托盘图标的鼠标消息Q:
WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_SHOW;
SetWindowPlacement(&wp);
q样的效果很不理惻IH口昄在屏q的左上角,q且是只有标题栏Q要正常昄Q还需加上如下代码Q?
定义一个成员变量CRect rect;
在OnInitDialog()里面Q?
GetWindowRect(&rect);
在需要显C的地方Q?
SetWindowPos(&wndNoTopMost, wndRc.left, wndRc.top, wndRc.right, wndRc.bottom, SWP_SHOWWINDOW);
CenterWindow();
即ɘq样Q效果还是很差?
q种Ҏq有一个弊端是当程序开始运行ƈ且隐藏v来后Q原来激zȝH口变成了非Ȁzȝ态了Q而当对话框显C出来后Q对话框自n也是非激zȝ态的?
3Q不l制H口
当对话框昄时将要响应消息WM_PAINTl制客户区,相应消息WM_NCPAINTl制H口Ҏ。我们在H口W一ơ自l自w时隐藏H口Q可以收到比较良好的效果。由于窗口是先画H口ҎQ所以我们仅需处理WM_NCPAINT卛_。代码如下:
dWM_NCPAINT处理函数?
void CMyDialog::OnNcPaint()
{
static int i = 2;
if(i > 0)
{
i --;
ShowWindow(SW_HIDE);
}
else
CDialog::OnNcPaint();
}
q里有个问题Qؓ什么要定义静态变量i而且讑օgؓ2呢?
我们只要H口隐藏W一ơ,所以定义这个变量可以判断是否时首次昄H口。当E序开始运行时Q系l发?
QSendMessageQWM_NCPAINT消息Q此时程序的H口Ҏ应该被显C,但是此时我们没有作Q何显C的操作Q而是窗口隐
藏,ShowWindow(SW_HIDE)把H口的WS_VISIBLE属性去掉,l箋执行Q程序将查WS_VISIBLE属性,如果没有则显C窗
口,所以又发送了一个WM_NCPAINT消息。所以我们要处理两次WM_NCPAINT消息?
在需要窗口显C时Q调用ShowWindow(SW_SHOW)卛_?
E序执行的结果是Q原来处于激zȝ态的H口可能会闪动两下,然后仍然处于Ȁzȝ态。这U处理方式比上面的方式要优越得多?
4Q将对话框作为子H口
q种Ҏ是采用SDI框架Q主H口始终隐藏Q对话框作ؓȝ口的成员变量Q在CMainFrame::OnCreate()里面加入下代码:
if(!dlg.Create(IDD_MYDIALOG, this))
{
return –1;
}
dlg.ShowWindow(SW_HIDE);
在要昄对话框的地方用dlg.ShowWindow(SW_SHOW);卛_。注意,ȝ口一定要隐藏Q否则对话框可能会闪C下?
隐藏状态栏H口
上面介绍了几U检查对话框的方法,大家如果试过的话可能已经注意到系l状态栏里在E序启动时会有程序的图标闪过Q在隐藏对话框的时候这个也是要隐藏的,Ҏ很简单:
在OnInitDialog()函数里面加上ModifyStyleEx(WS_EX_APPWINDOW,
WS_EX_TOOLWINDOW);卛_。在要显C窗口的地方加上代码ModifyStyleEx(WS_EX_TOOLWINDOW,
WS_EX_APPWINDOW);卛_H口的扩展样式改回来?
以上是我的一点经验ȝQ有错误或不完善的地方还望大家提出指正。欢q大家与我联pR?br>
]]>
]]>
Allegro - Z C/C++ 的游戏引擎,支持囑ŞQ声韻I输入Q游戏时钟,点Q压~文件以及GUI?
Axiom 引擎 -
OGRE的衍生引擎?
Baja 引擎 - 专业品质的图像引擎,用于The Lost Mansion?
Boom -
Doom代码的一部分。由TeamTNT开?
Build 引擎 - 一个第一人称击游戏引擎Q用于Duke Nukem 3D?
Bullet -
开源物理引擎,q泛应用在各大游戏主机?
BYOND - “Build Your Own Net
Dream”的所写,支持各种cd的游戏,包括MMORPG?
Ca3D-引擎 - 一个比较成熟的引擎Q有自己的SDKQ世界编辑器{?
Cadabra 3D 引擎 - 用于快速开?D游戏?
Catmother -
一个基于BSD授权的引擎,只限个h使用Q不能做商业用途。是一家游戏公司的开源引擎?
CheapHack - 一个已l过时的TomazQuake衍生引擎?
Crystal Entity Layer - Crystal Space 3D 引擎的扩?
Crystal Space -
3D应用E序的常规框架?
Cube - Cube2 ──> Sauerbraten
DarkPlaces - 高开?D引擎之一?
Delta3d - 整合和其他知名免费引擎,最初由国军方开发?
DGD - 一个面向对象的MUD引擎?
Doom 引擎 -
现在已经免费的引擎,曄于Doom和Doom II
DXFramework - 一个简单,带有教学性质?D/3D引擎Q基于DirectX和Visual
Studio
DX Studio - 一个专?D引擎Q附带编辑器套gQ由Worldweaver公司开发?
Eclipse - 一?D
MMORPG~辑器?
Elysium Source - 2D|络游戏引擎QVB6开发?
Engine 001 - 2D 动作cRPG游戏~辑器?
Epee 引擎 -一?D/3D开放源代码囑փ引擎Q多q_?
Eternity 引擎 - Doom引擎的改q?
Exult -
Ultima VII使用的引擎的开源版?
FIFE - 辐射1?使用引擎的克隆?
Game Blender -
Blender的子目游戏引擎Q用于开发游戏?
Game Maker - 面向对象的Y游戏开发^収ͼ支持拖放~辑以及其自q脚本语言?
GQ -
一个Quake引擎Q增M来自TomazQuake和DarkPlaces的许多新Ҏ?
GZDoom - ZZDoom的引擎?
Genesis3D - 用于Windows?D实时渲染引擎
GemRB - Infinity Engine的一个免费的软g实现?
G3DRuby - 用于高3D囑Ş?
Haaf's Game Engine - 一个用硬件加速的2D游戏引擎?
Irrlicht
引擎 - 一个多q_高质量的3D囑Ş引擎?
ioquake3 - 一个基于id Tech 3的引?
Gosu 2D游戏开发库Q用于C++?
Jogre - 一个基于Java的网l游戏引擎?
MRPGe - Visual Basic开发的2D
RPG游戏引擎Q附带内|的脚本支持Q可定制化强Q正在开发阶Dc?
M.U.G.E.N - 2D格斗游戏引擎?
Multiverse Network
- |络游戏开发^収ͼ包含服务端、客LQ以及一些开发工P对个人免费)
Nebula Device - 由d国的游戏开发工作室开发的实时渲染3D引擎?
NeL 引擎 - 用于开发网l游戏的引擎?
OctLight - Java游戏引擎Q基于OpenGL?
Open Dynamics
Engine - 物理引擎
Open Game Engine - 一个开源引擎,包含开发游戏所需的各U组件?
OGRE Engine -
一个非常流行的面向对象囑Ş渲染引擎Q亦UOGRE3D?
Online RPG Maker - 一?D|络游戏引擎Q以脚本方式~辑?
Panda3D 引擎 - ZPython的快速开发游戏引擎?
PlayerWorlds - 一个简z且q泛使用?D|络游戏引擎?
PLIB - 包含3D、音效、GUI、窗口管理。支持Linux/Windows/MacOSX?
ProQuake - 更动q的Quake引擎?
Pygame - python游戏引擎Q作品见PyWeek
毁灭公爵II引擎 - Quake II的引擎?
毁灭公爵III引擎 -
Quake III的引擎?
Reality Factory - 一个开源引擎,面向非程序员开发,ZGenesis3d囑Ş引擎?
Raydium
- Maniadrive 使用
RealmForge - 用于微Y .NET Framework的引擎,Visual3D.NET的原始版本?
Sauerbraten - 一个基于Cube引擎的优化版?
Sonic Robo Blast 2 - 深度修改的Doom Legacy引擎
Soya 3D - ZPython的开?D引擎
Stratagus - 一个多q_x战略游戏引擎?
Telejano -
Quake引擎的修改版?
Tenebrae - Quake引擎的修改版?
Toi - 一个正在开发的3D游戏引擎Q可用于单机和网l游戏开发?
Tomb4 - The engine used to play custom Tomb Raider games built using TRLE
(Tomb Raider Level Editor)
vbGORE - 用Visual Basic 6开发的|络游戏引擎Q通过3D函数表达2D囑ŞQ?
Well of Souls - Z脚本化编辑的2D引擎Q附带可视化世界~辑器?
Yake - lg化,面向对象化的的引擎?
Zak
引擎 - Z余和专业游戏开发者开发的2D引擎Q基于DirectX 8.1??支持脚本、脓囑֜图、音效、粒子系l等?
商业引擎
Arcane 引擎 - Wolfpack Studios为《Shadowbane》开发的引擎
Aurora 引擎 -
为RPG研发的引擎?
Beyond Virtual - 一个面向对象化的实时渲?D引擎Q表CU?
Blade3D - ZMicrosoft
XNA的新一代引擎?
BRender - 一个即时渲?D引擎Q用于电脑游戏,模拟器,l图工具开发?
C4 Engine - Eric
Lengyel开发的下一代电脑游戏引?
Chrome Engine - 支持DirectX 10的下一代游戏框Ӟ主要用于FPS游戏QWindows,
Xbox 360Q,由Techland开发?
Coldstone game engine - an old game creation suite
for Macintosh/Windows to create role-playing or adventure-style games
CryENGINE, CryENGINE2 - CryENGINE是《孤岛惊》的游戏引擎?CryEngine 2
是Crytek为开发《孤岛危机》研发的C代游戏引擎?
Dagor Engine 3 - A high-tech cross-platform game
engine (3D, physics, game logic) with rich toolset for content development
Deep Creator - A 3D game engine
Doom 3 engine - Used by the games Doom
3, Quake 4, Prey and Quake Wars
EAGL (EA Graphics Library) - A
cross-platform graphics engine used by Electronic Arts in their EA Sports
titles.
Earth-4 Engine - The graphics engine used in Earth 2160
Electron
engine - Currently in development by Obsidian Entertainment for their game
Neverwinter Nights 2, based on the Aurora engine
euphoria - A real-time
motion synthesis engine by NaturalMotion
Explorations - 2d MMO creator
FPSCreator - 3D First Person Shooter creator
Frostbite Engine- Game
engine used for the next-gen title Battlefield: Bad Company
Gamebryo - A
cross-platform 3D computer graphics engine coded in C++
GFX3D -
目标公司为旗下的数款游戏开发的引擎?
Havok[1] - Very High-tech cross platform (PC, PS3, Xbox
360 etc) middleware Engine.
IMUSE - Specifically designed to synchronize
music with visual action
INSANE - Used in LucasArts games
Infinity
Engine - Allows the creation of isometric computer role-playing games
Jedi -
A game engine developed by LucasArts for Star Wars: Dark Forces and Outlaws
Kaneva Game Platform - A full featured MMOG engine for independent and
professional game development
KjAPI - A C++ technology to create games and
3D applications for PC computers
Lithtech - A competing alternative to the
Quake, and Unreal engines.
Lithtech Juipter Ex - A new generation Lithtech
engine developed by Monolith to create the game F.E.A.R.
Medusa - A C++ 3D
game engine developed by Palestar and used in the DarkSpace MMO. It features
distributed world simulation, single tool version control and asset realisation,
cross-platform compatibility and an integrated client/server network system.
morpheme - A graphically-authorable animation engine by NaturalMotion
Monumental Technology Suite - A MMOG platform, including server and cleint
technology and development / live management tools.
Multiverse Network - an
MMOG platform, including server, client, and tools. (Free for development and
use--revenue sharing upon commercial deployment).
Odyssey Engine - Used to
create three dimensional computer role-playing games, used in Star Wars: Knights
of the Old Republic
ORE - Online RPG Engine
Quest3D - www.quest3d.com
Power Render -
A general purpose software development kit for games and 3D visualization
RAGE - A game engine created by Rockstar Games use it to power their
upcoming video games on the Xbox 360 and PlayStation 3
Reality Engine - 3D
game engine by Artificial Studios
RelentENGINE - A next-generation FPS
engine supporting massive destroyable city environments and realistic vehicle
control, makes extensive use of shader model 3.
RenderWare - A very popular
3D API and graphics rendering engine
Retribution Engine - A game engine to
make first person shooter games
Revolution3D - A 3D graphics engine
developed by X-Dream Project
RPG Maker XP - A 2D engine to make top-down and
isometric-style role-playing games for Windows.
SAGE engine - Used to create
real-time strategy games
SCUMM engine - Used in LucasArts graphical
adventure games
Serious Engine - The engine by Croteam used in the epic
Serious Sam: The First Encounter and the inspirational - The Second Encounter
Shark 3D - A middleware from Spinor for computer, video games and realtime
3D applications
Silent Storm engine - A turn-based strategy game engine
Sith - A game engine developed by Lucasarts for Jedi Knight: Dark Forces II
Slayer - A game engine created by The Collective, Inc. and used in Buffy the
Vampire Slayer, Star Wars Episode III: Revenge of the Sith, Indiana Jones and
the Emperor's Tomb and Wrath Unleashed
Source engine - A Game Engine
developed by Valve Software for Half-Life 2
Torque Game Engine - A modified
version of a 3D computer game engine originally developed by Dynamix for the
2001 FPS Tribes 2
Torque Game Engine Advanced - A next-generation 3D game
engine support modern GPU hardware and shaders.
TOSHI - A fourth generation
cross platform game engine designed by Blue Tongue Entertainment
Truevision3d - A 3D game engine using the DirectX API
Unigine -
Cross-platform middleware with great graphics
Unity - An easy-to-use
open-ended 3D game/interactive software engine
Unreal engine - One of the
most popular game engines for action games
Vengeance engine - A video game
engine based on the Unreal Engine 2/2.5
Vicious Engine - Available for
Microsoft Windows, Sony PlayStation 2, Microsoft Xbox, and Sony PlayStation
Portable
3DGame Studio - www.3dgamestudio.com
Vision
Game Engine - A commercial game engine used in 50+ titles by companies like T2,
Atari, Neowiz and Threewave. Available for PC, Xbox, Xbox360 and PS3
Visual3D.NET - 3D platform and visual development environment built upon
Microsoft .NET 2.0 and XNA Framework for developing for PC, Xbox 360, and
Windows Mobile devices using C#, Visual Basic, J#, C++.NET, JScript.NET,
IronPython, and visual scripting.
Virtools - A 3D engine combined with
unique high-level development framework, used for game prototyping and rapid
developments. Available for Windows, Macintosh, Xbox, PSP
White Engine -
Square-Enix's proprietary seventh generation game engine to be used for their
PS3 projects.
zerodin engine -
一个MMORPG专用的商业引擎,用于PCQXBOX360{多个^収ͼ目前为止最适合开发MMORPG的商业引擎,引擎前n用于著名的RF online.
Zero - 3D game engine used in Star Wars: The Clone Wars, Star Wars:
Battlefront, and Star Wars: Battlefront II
Maz 3D Game Engine - Designed by
Students C++ & OpenGL
手机游戏引擎
GledPlay - 一套完整的SDK用于开发手机游戏?
game-editor - 为GP2X开发游戏的开发套件?
PSP
WGAF - Guild Software用于开发Vendetta
Online的引擎?
XnGine - 最早的实时3D引擎之一?/font>
]]>
novodex
http://www.novodex.com/
ode
http://ode.org/
Tokamak
http://www.adamdawes.com/programming/tokamak/index.html
Newton
http://www.physicsengine.com/
OPCODE
http://www.codercorner.com/Opcode.htm
flade (flash)
#http://www.cove.org/flade/
声音
openal
http://www.openal.org/
openal++
http://alpp.sourceforge.net/
http://sourceforge.net/projects/alpp/
人工
http://openai.sourceforge.net/
http://sourceforge.net/projects/openai/
3D Engine
blender
http://www.blendercn.org/
http://www.deathblood.net/main/tutorial/
http://www.blenderart.org/index.html
http://bbs.blendercn.org/viewtopic.php?t=183 FTP
http://www.blendercn.org/download/blenderwiki/ Blender手册(From wiki.blendercn.org)
http://www.blendercn.org/download/tutorials/ 基础视频教程
http://www.blendercn.org/download/blendercn/ Blender中文?
http://www.blendercn.org/download/yafray/ Yafray渲染?
http://www.blendercn.org/download/blenderart/blenderart_mag-1.zip Blenderart杂志
http://www.blendercn.org/download/blenderart/blenderart_mag-2.zip
http://www.blendercn.org/download/blendersc/ Blander源代码编译环?
http://code.google.com/p/wpyre/ 分布式渲?br>
http://www.softlab.ece.ntua.gr/~jpanta/Graphics/Kerkythea/ 场景~辑器,带材质编辑器
klayGE
http://klayge.sourceforge.net/ 中国人做的引?_土
Axiom
http://axiomengine.sourceforge.net/ c#版的OGRE
CAL3D
http://sourceforge.net/projects/cal3d/ 骨骼动画引擎
OGRE
http://www.ogre3d.org/
http://ofusion.inocentric.com/
http://chronos.digitalsentience.com/
Irrlicht
http://irrlicht.sourceforge.net/ 官方
http://www.irrlicht3d.org/ 作者blog
http://irredit.irrlicht3d.org/ 场景~辑?br>
http://www.gdtoolkit.8m.net/ toolkit
http://irrlichtnetcp.sourceforge.net/ .net包装
http://irrklang.irrlicht3d.org/ irr配套的声韛_和编辑器
http://irrlichtitalia.altervista.org/start/
http://46577.rapidforum.com/area=11
http://flysnow.cnblogs.com/
mesa3d
http://www.mesa3d.org/
Crystal Space 3D SDK
http://www.crystalspace3d.org/
GUI
CEGUI
http://www.cegui.org.uk/
CEGUI#
http://ceguisharp.sourceforge.net/ CEGUI C#?br>
通信引擎
raknet
http://www.rakkarsoft.com/ 开原的|络引擎,商用收费
enet
http://enet.cubik.org/ udp可靠传输
tnl
http://www.opentnl.org/ torque network library
udt
http://udt.sourceforge.net/
Sockets Lib
http://www.alhem.net/Sockets/
hawk
http://www.hawksoft.com/
linux upnp sdk
http://sourceforge.net/projects/upnp/
脚本
天脚本引擎,cc
http://www.angelcode.com/
游戏引擎
Truevision3D
http://www.truevision3d.com/ 不开源,支持多种语言
Nebula 2
http://sourceforge.net/projects/nebuladevice
http://nebuladevice.cubik.org/
NeoEngine
http://www.neoengine.org/
Fly3D
#http://www.fly3d.com.br/
http://fabio.policarpo.nom.br/fly3d/
OpenSceneGraph
http://www.physicsengine.com/
RealmForge
http://www.visual3d.net/ 官方
http://sourceforge.net/projects/realmforge 目地址
clan
#http://www.clanlib.org/
1. Codecreatures http://www.codecult.com
2. Ogre (free) http://ogre.sourceforge.net/
3. Serious Engine http://www.croteam.com/engine_features.shtml
4. Jet 3D (free) http://www.jet3d.com/
5. 6DX http://www.aztica.com/modules/news/
7. Intrinsic Alchemy http://www.intrinsic.com/
7. Q (free) http://www.qubesoft.com/q/overview.php
8. Power Render 4 http://www.egerter.com/powerrender/index.htm
9. Twilight 3DGE 2 http://twilight3d.com/products/3dge/
10. Wild Tangent http://www.wildtangent.com/default....driver_overview
11. Vital Engine http://www.deep-shadows.com/en/ve20_features.html
12. Quazal http://www.quazal.com/products/index.html
13. Renderware http://www.renderware.com/
14. X Ray Engine http://www.stalker-game.com/index.php?t=engine
15. Netimmerse http://www.ndl.com
16. ExNihilo (free) http://www.ploksoftware.org/index.php
17. Plib (free) http://plib.sourceforge.net/index.html
18. Carsten's 3D Engine (free) http://www.ca3d-engine.de/
19. 3D State (free) http://www.3dstate.com/
20. Destiny 3D http://www.destiny3d.com/pages/engine.html
21. Nive 3D (free) http://www.faktiss.net/index.html
22. Shine 3D http://www.nmg.ru/product.asp?lang=en&design=&id={11376C9A-FB6F-11D3-A930-00C0F0494FCA}
23. Game Creation System 3.0 http://www.pieskysoft.com/prod_gcs.html
24. Amp 3D Game Design System http://www.slamsoftware.com/frameset.html
25. Cloak NT http://www.cauldron.sk/tech/cloaknt.htm
26. Panard Vision (free) http://www.panardvision.com/v3/pv_overview.php
27. Shark 3D http://www.shark3d.com/
28. Fly 3D (free) http://www.fly3d.com.br/
29. Vega Prime http://www.multigen.com/products/ru...ime/index.shtml
30. Jamagic http://www.clickteam.com/English/jamagic.php
31. Quake 2 (free) http://www.idsoftware.com/business/...=true&version=6
32. 3D RAD http://www.3drad.com/
33. Dark Basic Pro http://www.darkbasicpro.com/
34. Blitz 3D http://www.blitzbasic.com/
35. Quest3D http://www.quest3d.com awsome engine
36. 3D Gamestudio A5 http://www.conitec.net/a4info.htm good for beginners
37. TrueVision http://francis.dupont.free.fr/coind...ish/truevision/
38. FreeCraft (free) http://freecraft.net/
39. Genesis 3D (free) http://www.genesis3d.com
40. Auran Jet http://www.auran.com/jet/overview.htm
41. Nebula Device (free) http://www.radonlabs.de/
42. Crystal Space (free) http://crystal.sourceforge.net/drupal/index.php
43. Torque http://www.garagegames.com/pg/product/view.php?id=1
44. LithTech http://www.lithtech.com/
45. Quake 3 Arena http://www.idsoftware.com/business/...=true&version=6
46. Vulpine http://www.vulpine.de/
47. Unreal http://udn.epicgames.com/
48. Miracle 3D http://www.miracle3d.da.ru/
49. Cipher http://www.synapticsoup.com/cipher-overview.htm
50. Virtools http://www.virtools.com/ nasty engine, but very expensive
51. Blender (free) http://www.blender.nl
52. Open GVS http://www.opengvs.com/about.htm
53. Adventuremaker http://www.adventuremaker.com/index.html
54. InterAx Game Engine http://www.cognitial.com/interax/index.htm
55. Power Render X http://www.egerter.com/prx/index.htm
56. Aleph One (free) http://source.bungie.org/
57. The Afterburner http://www.angelfire.com/my/demos/home.htm
58. NemoX (free) http://perso.wanadoo.fr/malakoff/index.htm
59. PTL & QDTE (free) http://membres.lycos.fr/frochet/frame.htm
60. 3DE http://www.recent-software.com/
61. SurRender http://www.surrender3d.com/gfx_main.php
62. Multimedia Fusion http://www.clickteam.com/English/mmfusion.php
63. GraalOnline http://www.cyberjoueurs.com/
64. C2 Engine http://www.pocketeers.com/c2.htm
65. Tenebrae http://tenebrae.sourceforge.net/index.php
66. Crytek http://crytek.com/
67. Shockwave3D: http://www.macromedia.com/software/director/
68. Pulse3D : http://www.pulse3D.com
69. Axel : http://www.mindavenue.com
70. anark studio http://www.anark.com
71. architectural /visualization, dedicated to 3ds Max http://www.cubicspace.com
72. architectural /visualization, dedicated to 3ds Max http://www.vr4max.com
73. Vegastrike http://vegastrike.sourceforge.net/ NEW
74. up to date site for nice engines http://www.3dengines.net/
75. dynamyic engine havok http://www.havok.com/
76. a complete black box solution for absolutely any game that can be imagined http://www.nevrax.org/
77. 3D game engine and multiplayer/singleplayer FPS game http://sourceforge.net/projects/cube/
78. toolkit that lets you create quality games without knowing any programming http://www.realityfactory.ca/v3/
79. 3D game engine developed by 3Ddrome http://www.3ddrome.com/engine.php
80. Iehovah realtime destructible dynamic terrains! http://www.iehovah.com/
81. Voxlap the most advanced 6dof voxel engine http://advsys.net/ken/voxlap.htm
82. 3Impact (trial) - http://www.3impact.com/index.htm
83. The Urgh Engine (demo) - http://www.urgh.cjb.net/
84. Fluid Interactive neEngine - http://www.fluidinteractive.com/
85. Reality Factor Pro - http://pro.realityfactory.ca/
86. Cipher Engine - http://www.cipherengine.com/
87. Auran Jet - http://www.auran.com/jet/default.htm
88. 3D Rulers AMP 3D - http://www.4drulers.com/amp.html
89. Power Render - http://www.3dengine.ca/
90. True Vision 3D - http://www.truevision3d.com/html/
91. Aztica - http://www.aztica.com/modules/news/
92. CloakNT - http://www.cauldron.sk/tech/cloaknt.htm
93. Light Speed - http://lightspeed3d.cjb.net/
94. ExoEngine - http://www.exocortex.org/3dengine/
95. Codecult - http://www.codecult.com/
96. Twilight 3D - http://www.twilight3d.com/modules.p...=thread&order=0
97. Squire3d Engine - http://www.squiresoftgames.com/squire3d.html
98. SunSpire 3D Engine - http://www.razor.sk/sunspire.html
99. flexibil engine http://www.3impact.com
100. first time used an it's really flexibel http://www.garagegames.com/
一、底层开发包和工?/p>
Mesa 是一个类OpenGLQ?http://www.opengl.org Q的开源实现?/p>
2. http://openil.sourceforge.net
DevIL Q即以前的OpenILQ是一个跨q_的图形处理包Q支?/p>
BMP、JPG、GIF {多U图形文件格式?/p>
二?D 游戏开发包
http://www-900.ibm.com/developerWorks/cn/linux/theme/special/
SDLQSimple DirectMedia LayerQ是一个跨q_的多媒体和游戏开
发包Q提?D、音频、事仉动、多U程和定时器{服务,q有?/p>
量的扩充开发包Q如TCP/IP |络、游戏角艌Ӏ音等。SDL 是用C
开发的Q但也有Perl、PHP、Delphi {多U语a的版本?/p>
ClanLib 是一个通用的C++游戏开发包Q提供游戏资源操作、网l?/p>
对象处理、GUI 主题和游戏脚本等支持。支持Windows 和Linux?/p>
PMT Files – Open Source Game Development
三?D 引擎和游戏开发包
1. http://crystal.sourceforge.net/
Crystal Space 是一个用C++开发的3D 游戏开发包。有丰富?/p>
功能Q支持Direct3D、OpenGL、Glide {?/p>
2. http://ogre.sourceforge.net/
OGRE 是一个面向对象的3D 引擎Q支持DirectX、OpenGL ?/p>
Glide {?/p>
3. http://hem.passagen.se/opengl/glfw/
GLFW 是一个OpenGL 的应用框Ӟ支持Linux 和Windows?/p>
4. http://apocalyx.sourceforge.net/
Apocalyx 是一个基于OpenGL ?D 引擎?/p>
Nive 是一个C++ 3D 引擎Q基于OpenGL ?/p>
DevILQ支持Windows 和Linux/Xwindow?/p>
6. http://plib.sourceforge.net/
Plib 是一?D 游戏开发包?/p>
7. http://alleg.sourceforge.net/ Allegro 是一个跨q_的C/C++游戏开发包Q提?D?D、声效、用
戯入、文件、压~、GUI {功能?/p>
PMT Files – Open Source Game Development
四、游戏和游戏框架
FreeCraft 是一个实时战略游戏(RTSQ框架?/p>
2. http://www.worldforge.org/ Worldforge 是一个完整的大型|络RPG 游戏框架?/p>
Arianne 是一个大型网lRPG 游戏Q同时也是一个游戏框架?/p>
五、其?/p>
1. http://openai.sourceforge.net/ OpenAI 是一个h工智能的工具包,包括经|络、遗传算
法、有限状态机{?/p>
一、英文网?/p>
Daily Game Development News & Resources
All Your Game Development Needs
3. http://www.gamedeveloper.net/
4. http://www.gametutorials.com/
Game Programming with Personality, From Start to Finish
Demo & Game Development
The Game Programming and Design Search Engine
7. http://www.2dgame-tutorial.com
CMP - The Art & Science of Making Games
CMP - Game Developer Magazine
中文游戏开发技术资料和交流
金点工作?/p>
云风工作?/p>
何苦做游戏,游戏制作的文?/p>
|页游戏Webgame开发论?/p>
盛趣信息技术(上vQ有限公?OGDEV.NET -- |络游戏研发|?/span>
55RPG论坛-专业游戏开发制作论?/p>
《游戏艺术工厂?游戏术、游戏开发、游戏研发h员最大的|络交流q_
9. gamedev.csdn.net/ bbs.gamedev.csdn.net/Web/
CSDN游戏开发站Q竭诚ؓ游戏开发者服务?/span>
10. www.sf.org.cn/
开发视?- Ud开发社?/p>
MOD中国同盟C?/p>
12. games.enet.com.cn/zhuanti/school/
enet游戏开发专?/p>
13. www.66rpg.com/
66RPGQ业余游戏制作者之ӞRPG制作大师专题?/p>
MGameDiy手机游戏DIY联盟
15. www.j2megame.cn/
手机游戏开发网
99Game 模拟器研I?/p>
独立游戏开发中国站
游戏之家 VB游戏开?/p>
DIYRPG Forum 游戏制作 RPG制作大师
西安游戏学院
Q=Q=Q=Q=Q=Q=Q=Q=Q=
q个游戏使用了quake3的引擎,所以画面相当好Q在ubuntu里面安装非常?/p> sudo apt-get install tremulous q个游戏只有多h版本Q进入游戏之后把|络ҎinternetQ然后get newserverQ就可以获取|上的服务器了,服务器还比较多。找Ch数和ping值都满意的游戏加入之后,按esc修改一下设|,比如分L率什么的Q? 我是用的1280X1024Q还非常畅。进入之后好像可以选择两个U族Q一个是人类Q一个是外星怪物。玩法还是比较简单,是杀人,然后得钱Q买装备Q? 再杀人?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 百战天虫 sudo apt-get install wormux 可爱的小虫子们跑到linux下面?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= sudo apt-get install chromium q个是linux下面cML的一个游戏,非常好玩Q强烈推?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= linux下面的泡龙 sudo apt-get install frozen-bubble 画面可爱Q适合和女朋友一LQ上面的wormux也是不错的选择 Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= sudo apt-get install tuxkart 跑跑卡丁车, Q效果一?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= sudo apt-get install frozen-buble 桌面弹球 2d 游戏Q音乐好听(我最喜欢q个游戏Q?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= FooBillardQ?D撞球遊戲 Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= SluneQ?D企鵝開車冒險遊戲,動作過關,內容非常豐富,也能玩不同類型的遊?如保齡球{?/p> sudo apt-get install slune Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= TORCSQ?D賽車遊戲,玩v來還不錯 Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= AstromenaceQ?D直式捲軸I間飛機擊遊戲,畫面相當_ http://www.viewizard.com/download/amenace046b.tar.bz2 (注:如果無法遊戲,可開啟Synaptic查詢是否已安裝以下所需怾套gQ? Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= NexuizQ?DW一人稱槍戰遊戲,畫面非常_,很好?推薦i喜歡槍戰遊戲的朋友 下載檔案Q?nexuiz-v222.zip 完成後解壓縮,進入解壓^後的資料夾,點擊nexuiz-linux-glx.sh或nexuiz-linux-sdl.sh檔案,選擇埯,卛_開始遊戲 Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?/p> 中國象棋cnchess0.2?br> 下載檔案 http://www.magiclinux.org/people/yunfan/frogchess/cnchess-0.2.bin.tar.bz2 Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?/p>
QUAKE 3 Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= DOOM 1?? Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 虚竞技?004QUT2004Q? Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= Invasion Battle of SurvivalQ?/p> 2D模擬{略遊戲,玩法似紅色警戒,滿豐富的,地圖也很? 下載BOS遊戲資料庫: http://bos.seul.org/files/bos_2_0_1.tar.gz 安裝遊戲所需套gQ? 下載完以上兩個檔案後解壓^?開啟i端?進入stratagus-2.2.2資料?例如Q小弟要進入攄於桌面的stratagus-2.2.2資料?使用此指令: Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 《Nexuiz?官方|站 http://www.alientrap.org/nexuiz/ q是一Ƒօ费的跨^台的FPS游戏。一个完全夸互联网?DM竞赛游戏。游戏的目的是利用完美的武器^衡和快节奏让M竞赛回归本源Q远ȝ 在射L戏日真实的势。你可以q接C服务器与世界各地的玩家游戏。它使用DarkPlaces游戏引擎即Quake1引擎的改良版本,最多支?4 人同时在U,q且拥有HDR效果。在2005q??1日推?.0版本Q现在通用的是?007q??6日更新的2.2.3版本。Nexuiz标志? 汉字?#8220;?#8221;字?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q= 《America’s Army?官方|站 http://www.americasarmy.com/ q是一ƾ战术类多hFPS游戏Q它q国陆军免费制作,用来宣传自己帮助征兵工作。在2002q??日发布首版,现在使用的是2007q??2 日更新的2.8.1版本。尽有批评者指责它h政治目的Q但是精良的制作和强调真实性与战术合作使其大受Ƣ迎。它的主|C到2007q已l有过 800万h注册Q在2002q到2005qQ意时间都?500人在U,q以America’s Army成ؓ十大在线游戏。育曾推出q它的改q版Q它也有中文站?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?/p> 《EnemyTerritory: QuakeWar?官方|站 http://www.enemyterritory.com/ q是WolfensteinW一人称击游戏的《Enemy Territory》(敌占区)的箋作。游戏背景和Quake 4》一样都是Quakepd里的大背景,游戏里面加入过40U的常见的以及特有的车辆Q包括摩托RQ坦克,直升机,无重力飞船等。采用增强型Doom3 引擎Q将包含动态光影,昼夜循环Q天气,植被{一pd先进的效果。在2006qE3展被评ؓ最佛_U多人游戏?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?/p> 《Tremulous?官方|站 http://tremulous.net/ q是一Ƒּ源的W一人称击游戏Q也具备|上Ҏ功能Q而且有即时战略元素。类似GloomQquake 2的MODQ和Natural SelectionQHalf-Life 的MODQ。游戏里有两个种族,人族和异形,各有优势和劣ѝ这个游戏已l被下蝲q?0万次。在2006qMOD游戏评选中被评?#8220;最独特的游?#8221;?/p> Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?/p> 《Vendetta?官方|站 http://www.vendetta-online.com/ Vendetta Online》是一ƾ以宇宙景的MMORPG游戏。新玩家?个小时的体验旉Q如果你想l每月则需支付5元。玩安在三个势力中选择一方,然后N自己的宇宙飞船,自由飞行探险Q因游戏的战斗风格是“FPS”?#8220;实时”Q所以动作性很?/p> |
如何抛出QthrowQ由CUserExceptionz的异常?
当我试图捕获QcatchQ一个派生类异常Ӟ我得C下错?error C2039:'classCMyException': is
not a member of 'CMyException' 'classCMyException': undeclared
identifier 'IsKindOf': cannot convert parameter 1 from 'int*' to 'const
struct CRuntimeClass*"
你必需通过使用DECLARE_DYNAMICQ)和IMPLEMENT_DYNAMIC()宏来使你的CMyExceptioncd以动态地创徏。CATCH宏希望能够得到关于被抛出cȝq行时刻信息?/p>
异常cM定要从CUserException中派生出来吗Q?/strong>
不,CUserException中的"User"仅仅指用户生的异常。而把它当作你所能派生的唯一异常是种常见的误解?/p>
如何从HDC建立一个CDCc?
有时Windows API会l你一个DC句柄Q你可以通过它徏立一个CDCcR例如:下拉式列表、组合框和按钮。通过hDC你将接收到绘制消息。下面是HDC转换成你更熟悉的CDC的程序段。你也可以将该技巧用在其他Q何MFCcdWindows句柄的{换中?/p>
void MyODList::DrawItem(LPDRAWITEMSTRUCT lpDrawItem)
{
CDC myDC;
myDC.Attach(lpDrawItem->hDC);
//在此插入其他需要的代码?br>
//如果你不句柄分,它将被删除,从而导致问题?br> myDC.Detach();
}
另一个方法是调用CDCcȝFromHandleҎQ?br> CDC * pDC = CDC:FromHandle(lpDrawItem->hDC);目前q不清楚哪种Ҏ更优―用FromHandle()的错误也怼更少些,因ؓ它不要求你分(detachQ句柄?
如何从磁盘上d256色位图文Ӟ
当前QMFCq不支持直接d和显CDIB文g和BMP文g。然而,有很多样例应用程序能够说明如何完成该Q务。第一个例子是MFC样例E序 DIBLOOK。样例MULTDOCS用DIBLOOK提供的相同源代码来读取ƈ昄DIB文g和BMP文g。其他两个VC++中附带的例子是SDK软g 包中的DIBVIEWE序和SHOWDIBE序?/p>
如何改变一个视囄大小Q?/strong>
通常Q你可以调用函数MoveWindowQ)来改变窗口的大小。在用MFC库开发的应用E序中, 视图是被框架H口所围绕的一个子H口。ؓ了改变一个视囄大小Q你可以通过调用函数GetParentFrame()来得到框架窗口的指针Q然后调用函? MoveWindow()来改变父H口的大。当父框架窗口改变大时Q视图也会自动地改变大小来适应父窗口?/p>
如何改变一个CFormView的大?
要想详细了解的话Q你可以看有关Visual CQ+基础知识的文章Q98598 《Using CFormView in SDI and MDI Applications》。基本上Q在从CFormViewcL生出来的cMQ你必须覆盖函数OnInitialUpdate()。其他有兛_? CFormView的细节问题,可以从该文章中获得?/p>
在类ClikethisView中声明如下函敎ͼ
virtual void OnInitialUpdate();
在ClikethisView的代码中Q函数如下:
void ClikethisView::OnInitialUpdate()
{
//使窗口与d话框同样大小
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit( /*FALSE*/ );
}
如何使用一个文模板的新视图?
在用AppWizard创徏的应用程序中Q你有两U选择Q改变当前视囄z关系或者徏立一个新视图q且在你的MDIE序中同时利用新视图和原先的视图?br>
Z创徏一个新视图Q你可以用ClassWizard由CViewz一个新的类。当新类创徏以后Q利用新视图或修改由AppWizard提供的视图,两者的步骤是相同的?br>
修改视类的头文gQ从而将所有对CViewcȝ引用改名Z所惌的名U。本例中的类由CScrollViewz而来。通常Q这个步骤包括对cȝ改变Q视cd由如下方式派生而来Q?br>
class CMyView : public CScrollView
修改视类的实现文Ӟ从而将所有对CView的引用改名ؓ你所惌的名U。这包括IMPLEMENT_DYNCREATE那一行的语句改ؓQ?br>
IMPLEMENT_DYNCREATE(CMyView, CScrollView)
BEGIN_MESSAGE_MAP那一行的语句改ؓQ?br>
BEGIN_MESSAGE_MAP(CMyView, CScrollView)
q且其他所有的CViewҎCScrollView.
假如你修改的视图是由AppWizard生成的,那么׃需要作更多的修改了。而如果你在创Z个新视图Q先?
CWinApp::InitInstance()函数中找到对AddDocTemplate()函数的调用。AddDocTemplate()函数的第?
个参数是RUNTIME_CLASS(CSomeView)Q用CMyView来代替CSomeViewQ就可以当前视图改为新视图。在MDI应用E序
中,你可以增加第二个AddDocTemplate()函数调用来用多视图cdQ将RUNTIME_CLASS(CSomeView)改ؓ
RUNTIME_CLASS (CMyView)?br>
要想获得更多的信息请参阅Q99562中相x章《Switching Views in a Single Document Interface Program??/p>
如何改变视图的背景色Q?/strong>
你可以通过处理WM_ERASEBKGND消息来改变CView、CFrameWnd或CWnd对象的背景色。请看如下的E序D:
BOOL CSampleView::OnEraseBkgnd(CDC* pDC)而我则用如下Ҏ解决q个问题Q?
{
// 讄所要求背景色的刷子
CBrush backBrush(#ff8080);
// 保存旧刷?br> CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect); // 擦除所需的区?br> pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
HBRUSH dlgtest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch (nCtlColor)
{
case CTLCOLOR_BTN:
case CTLCOLOR_STATIC:
{
pDC->SetBkMode(TRANSPARENT);
}
case CTLCOLOR_DLG:
{
CBrush* back_brush;
COLORREF color;
color = (COLORREF) GetSysColor(COLOR_BTNFACE);
back_brush = new CBrush(color);
return (HBRUSH) (back_brush->m_hObject);
}
}
return(CFormView::OnCtlColor(pDC, pWnd, nCtlColor));
}
如何得到当前视图Q?/strong>
最x法是视囑ֽ作一个参数来传递。如果不能这样做Q但你确信它是当前激zL和当前Ȁz视囄话,你也可以得到该视图。具体细节见Visual C++文章Q108587《Get Current CDocument or CView from Anywhere》?/p>
单说来,用:来得到文档和视图。一个好的方法是它们封装在你的CMyDoc和CMyViewcȝ静态函CQƈ且核对它们是否属于正的RUNTIME_CLASS。然而,假如q个视图不是当前Ȁz视图或者你在运行OLE本地Ȁz,q样不成功?
((CFrameWnd*) AfxGetApp()->m_pMainWnd))->GetActiveDocument()
和:
((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveView()
如何在一个文中建立多个视图Q?/strong>
CDocTemplate::CreateNewFrame()函数创徏MFC
MDI应用E序中的文档的附加视图。ؓ了调用该函数Q要指定一个指向CDocument对象Q指ؓ之徏立视囄文Q的指针和一个指向可从中复制属性的
框架H口的指针。一般情形下Q该函数的第二个参数为NULL?
当应用程序调用函数CreateNewFrame()Ӟ该函数就创徏一个框架窗口和在该H口内的视图。框架窗口和它的视图的类型由与CreateNewFrame()函数调用指定的文档相关的文档摸板(CDocTemplate)军_?
Visual C++中的CHKBOOK MFC样例E序也演CZ如何为文徏立附加的框架和视图。检查CHKBOOK.CPP文g中的CChkBookApp::OpenDocumentfile()函数?
另一个用函数CreateNewFrame()的例子是MULTVIEWhE序?
CreateNewFrame()函数建立了一个框架和一个视图,而不仅仅是一个视图。假如CreateNewFrame()函数不能完全W合你的需要,可参考CreateNewFrame()函数的源E序来了解对建立l构和视图所必须的步骤?/p>
如何在MDIE序中得到所有的视图Q?/strong>
你必ȝ一些文档中没有记蝲的函敎ͼ
CDocument::GetFirstViewPosition(); // DOCCORE.CPP
CDocument::GetNextView(); // DOCCORE.CPP
CMultiDocTemplate::GetFirstDocPosition(); // DOCMULTI.CPP
CMultiDocTemplate::GetNextDoc(); // DOCMULTI.CPP
你还需要与CWinApp的成员m_templateList打交道?br> 注意Q在MFC 版本4.0中已改变。现在已l有一个叫CDocManager的类可以帮助你显C所有的视图和文档。请参考《MFC Internals》获得更详细的信息?/p>
如何建立一个可用鼠标拉动的CScrollViewc?/strong>
在CIS上从MSMFC库下载AUTOSV.LZH。这个程序告诉你如何实现一个辅助消息@环来理鼠标的活动,q提供了钩挂来对代码q行定制。这是一个免费Y件?/p>
一定要用视?文档l构吗?
MFCq不一定要求你使用文/视图l构。查看HELLO?MDI和HELLOAPP例子―它们就没有用U结构。大多数MFCҎ都可以在非文/视图应用E序中得到运用。但是当你不用文?/ 视图l构Ӟ你确实会失去一些特性,例如打印预览和许多OLEҎ?/p>
如何得到当前文Q?/strong>
误l参?如何得到当前视图Q?章节?/p>
文档何时被析构?
在SDIE序中,E序退出后文p删除。在MDIE序中,与该文相关的最后一个视囑օ闭时文p删除。ؓ了在SDI和MDI中同时用q个文Q你应该在虚函数DeleteContents()函数中删除该文的数据,而不是在析构器中?/p>
如何建立多文档?
Z加入寚w加文档类型的支持Q你可以在CWinAppzcM创徏和注册附加CmultiDocTemplate对象。这U方法已l在MULTDOCS样例E序中得以说明。将一个附加文类型加入到MFCE序的一般步骤如下:
用AppWizard来创Z个新的文类和视囄?
用资源编辑器增加新的资源字串来支持新的文类。要想知道关于文档样板字W串格式的更多内容,请参?如何理解文h字符??br>
用资源编辑器增加附加的应用程序图标和菜单资源。注意,q些资源中每一个的ID都必M在步?中创建的文模板字符串的ID是相同的。这个ID被CmultiDocTemplatecȝ来识别与附加文cd相关的资源?br>
在应用程序的InitInstanceQ)函数中,创徏了另一个CMultiDocTemplate对象q且用CWinApp::AddDocTemplate()函数来注册。例如:
CMultiDocTemplate* pDocTemplate2 = new CMultiDocTemplate(最后,定制的序列化和l图代码加入C的新文和视囄中?
IDR_DOC2TYPE, RUNTIME_CLASS(CDoc2),
RUNTIME_CLASS(CMDIChildWnd),RUNTIME_CLASS(CView2));
AddDocTemplate(pDocTemplate2);
如何得到一个打开文的列表?
下面的程序段指明如何得到用CDocTemplate对象建立的所有文档的指针列表?br> 下面的程序段中,CMyApp由CWinAppz而来。变量m_templateList是一个CPtrList对象Q它是CwinApp的成员变量, 包含一个所有文档模板指针的列表。文档模板函数GetFirstDocPosition()和GetNextDoc()被用来在文模板列表中进行P代来 得到每一个文模ѝ?/p>
void CMyApp::GetDocumentList(CObList * pDocList)
{
ASSERT(pDocList->IsEmpty());
POSITION pos = m_templateList.GetHeadPosition();
while (pos)
{
CDocTemplate* pTemplate =
(CDocTemplate*)m_templateList.GetNext(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while (pos2)
{
CDocument * pDocument;
if ((pDocument=pTemplate->GetNextDoc(pos2)) != NULL)
pDocList->AddHead(pDocument);
}
}
}
在参考手册或在线帮助中,有两个CdocTemplatecȝ公共成员函数没有被说明。然而, q些公共成员函数在CDocTemplatecM被定义,q且为在打开文的列表中前后搜烦提供了简单的支持?/p>
q些函数如下Q?br>
Function virtual POSITION GetFirstDocPosition() constQ?br>
调用该函数得到在打开的文列表中与模板相兌的第一个文的位置。返回的POSITION的D够被GetNextDoc成员函数反复使用?
Function Virtual CDocument* GetNextDoc(POSITION& rPosition) constQ?br>
rPostion是前面调用GetNextDoc
或GetFirstDocPosition成员函数q回的POSITION倹{这个g能是NULL。调用该函数来在所有打开的文中q行q代。该函数q?
回被rPosition所标识的文ƈrPosition讄为列表中的下一个文档的POSITION倹{假如所索的是列表中的最后一个文
,rPosition被设ؓI倹{?/p>
注意Q这仅对MFC3.2版本或更低版本有效,对MFC4.0版本请参考下面:
void CMyApp::DoSomethingToAllDocs()
{
CObList pDocList;
POSITION pos = GetFirstDocTemplatePosition();
while(pos)
{
CDocTemplate* pTemplate = GetNextDocTemplate(pos);
POSITION pos2 = pTemplate->GetFirstDocPosition();
while(pos2)
{
CDocument* pDocument;
if(pDocument = pTemplate->GetNextDoc(pos2))
pDocList.AddHead(pDocument);
}
}
if(!pDocList.IsEmpty()){
pos = pDocList.GetHeadPosition();
while(pos)
{
//为每一个文调用CDocument函数
( (CDocument*)pDocList.GetNext(pos) )
->UpdateAllViews(NULL);
}
}
如何使我的程序在启动时不创徏一个新文Q?/strong>
在程序的InitInstance中的ProcessShellCommand函数之前加入Q?cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing
Q-Q? 下面是常见的Afx全局函数Q?/p>
AfxFormatString1Q类似printf一般地字W串格式?/p>
AfxFormatString2Q类似printf一般地字W串格式?/p>
AfxMessageBoxQ类似Windows API 函数 MessageBox
AfxOuputDebugStringQ将字符串输往除错装置
AfxGetAppQ获得application object (CwinAppz对象)的指?/p>
AfxGetMainWndQ获得程序主H口的指?/p>
AfxGetInstanceQ获得程序的instance handle
Q二Q? CString 与char []之间的{?
在VC中,恐怕这两个是经常要q行转换的吧
char str[10] = ”str”;
CString sstr = “sstr”;
sstr.Format(“%s”,str);
strcpy(str,(LPCTSTR)sstr);
Q三Q? 关闭E序:
PostQuitMessage(WM_CLOSE); 或者PostQuitMessage(WM_DESTROY);
更绝的是关闭所有的E序Q?:ExitWindows ();
Q四Q? 在关闭窗口时Q当要对文gq行保存Ӟ可在q里d函数Q?/p>
1.Q在CMainFrame里的OnCloseQ)里,用MessageBox("内容","标题",l合形式);l合形式可以查看MSDN的MESSAGEBOX( ) Function
2.Q在CXXXDoc::SaveModified() 里,只能用AfxMessageBox("");
不能用MessageBoxQ)函数
Q五Q? 如何修改H体的标题:
1.Q修改主H口的标题:m_pMainWnd->SetWindowText("你的标题");
2.Q如果在你的documentcMq行改,则直接调用SetTitle("...")Q如果在你的viewcM改,则GetDocument()->SetTitle("...")
3.Q如果想使窗口的标题全部替换Q则用:AfxGetMainWnd()->SetWindowText("你的标题");
Q六Q? 得到H体的标题:
1.QAfxGetMainWnd()->GetWindowText();
2.Q先FindWindow()扑ֈH口的HWND,在GetWindowText();
Q七Q? 在多文/视图中:
1.Q子H口的最大化Q?/p>
void CChildFrame::ActivateFrame(int nCmdShow)
{
// TODO: Add your specialized code here and/or call the base class
nCmdShow=SW_MAXIMIZE;
CMDIChildWnd::ActivateFrame(nCmdShow);
}
2.Q屏蔽子对话框:在APPc里把这两句话屏蔽掉
if (!ProcessShellCommand(cmdInfo))
return FALSE;
3.Q关闭子H口Q?/p>
::SendMessage(::AfxGetMainWnd()->m_hWnd, WM_COMMAND,ID_FILE_CLOSE,0);
Q八Q? 在装q自定义的光标后Q在Ud的过E中Q鼠标的形状L在自定义和默认的光标之间晃动Q可以这栯冻I在视中的PreCreateWindowQ)中加入如下几句:
BOOL CXXXXView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.lpszClass =AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,
(HBRUSH)::GetStockObject (WHITE_BRUSH),0);
return CView::PreCreateWindow(cs);
}
Q九Q? 怎样止改变H口的大和不能Ud的窗口:
?CMainFrame的OnCreate函数中加入:
CMenu *pTopMenu=GetSystemMenu(false);
pTopMenu->RemoveMenu(4,MF_BYPOSITION);//最大化H口不可?/p>
pTopMenu->RemoveMenu(2,MF_BYPOSITION);//size
pTopMenu->RemoveMenu(1,MF_BYPOSITION);//使不可移?/p>
Q十Q?使窗口始l在最前方Q?/p>
只要在AppcM的InitInstance()函数中加入以下代码就可以?
BOOL CwindowOnTopApp:: InitInstance()
{
//此处略去了VC自动生成的代?/p>
m_pMainWnd->showWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
m_pMainWnd->SetWindowPos(&CWnd::WndTopMost,0,0,0,0,
SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);
Return true;
}
转蝲Q留待以后查看?br>