📄 fg__win32adaptor_8cpp-source.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=gb2312"><title>FishGUI: FG_Win32Adaptor.cpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- 制作者 Doxygen 1.3.6 --><div class="qindex"><a class="qindex" href="main.html">首页</a> | <a class="qindex" href="modules.html">模块</a> | <a class="qindex" href="hierarchy.html">类继承关系</a> | <a class="qindex" href="classes.html">按字典顺序排序的列表</a> | <a class="qindex" href="annotated.html">组合类型列表</a> | <a class="qindex" href="files.html">文件列表</a> | <a class="qindex" href="functions.html">组合类型成员</a> | <a class="qindex" href="globals.html">文件成员</a></div><h1>FG_Win32Adaptor.cpp</h1><a href="FG__Win32Adaptor_8cpp.html">浏览该文件的文档。</a><div class="fragment"><pre>00001 <span class="comment">/*--------------------------------------------------------------------------</span>00002 <span class="comment"></span>00003 <span class="comment"> FG_Win32Adaptor.cpp - Win32的适配器类的实现文件</span>00004 <span class="comment"></span>00005 <span class="comment"> 本程序是FishGUI软件的一部分</span>00006 <span class="comment"></span>00007 <span class="comment"> 版权所有 (C) 2003,2004 王咏武</span>00008 <span class="comment"> http://www.contextfree.net/wangyw/</span>00009 <span class="comment"></span>00010 <span class="comment">----------------------------------------------------------------------------</span>00011 <span class="comment"></span>00012 <span class="comment"> 作者对 FishGUI 软件及其所有源代码授权如下:</span>00013 <span class="comment"></span>00014 <span class="comment"> 允许任何个人、组织、机构、企业无偿获得、修改、使用、重新发布 FishGUI 软</span>00015 <span class="comment"> 件及其源代码,或按照有偿或者无偿的方式发行基于 FishGUI 源代码的全部或部</span>00016 <span class="comment"> 分内容开发的软件产品,——但行使以上权利时,须遵守以下约定:</span>00017 <span class="comment"></span>00018 <span class="comment"> 1、重新发布 FishGUI 软件及其源代码时,不得隐去软件及其源代码中原有的版</span>00019 <span class="comment"> 权信息和开发者标识。</span>00020 <span class="comment"></span>00021 <span class="comment"> 2、发行基于 FishGUI 源代码的全部或部分内容开发的软件产品时,必须在产品</span>00022 <span class="comment"> 的显著位置标明以下字样:</span>00023 <span class="comment"></span>00024 <span class="comment"> 【本产品的一部分功能是基于王咏武在 FishGUI 软件中的工作完成的】</span>00025 <span class="comment"></span>00026 <span class="comment"> 3、在正式出版物中引用 FishGUI 的文档、源代码或注释内容的,应注明软件的</span>00027 <span class="comment"> 原作者为王咏武。</span>00028 <span class="comment"></span>00029 <span class="comment">--------------------------------------------------------------------------*/</span>00040 <span class="preprocessor">#include <stdio.h></span>00041 <span class="preprocessor">#include "windows.h"</span>00042 <span class="preprocessor">#include "../Utility/FG_Utility.h"</span>00043 <span class="preprocessor">#include "<a class="code" href="FG__Win32Adaptor_8h.html">FG_Win32Adaptor.h</a>"</span>00044 <span class="preprocessor">#include "FG_WIn32DrawInterface.h"</span>00045 00046 <span class="preprocessor">#if defined(WIN32) && defined(_DEBUG)</span>00047 <span class="preprocessor"></span> <span class="comment">/* Trace memory allocation in windows debug version */</span>00048 <span class="preprocessor"> #include <crtdbg.h></span>00049 <span class="keyword">static</span> <span class="keywordtype">char</span> THIS_FILE[] = __FILE__;00050 <span class="preprocessor"> #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)</span>00051 <span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _DEBUG */</span>00052 00053 <span class="comment">//##ModelId=3F4E099D01F1</span><a name="l00054"></a><a class="code" href="classFG__Win32Adaptor.html#a0">00054</a> <span class="keywordtype">bool</span> <a class="code" href="classFG__Win32Adaptor.html#a0">FG_Win32Adaptor::InitInstance</a>()00055 {00056 <span class="keywordflow">if</span> (! m_pDraw)00057 m_pDraw = <span class="keyword">new</span> <a class="code" href="classFG__Win32DrawInterface.html">FG_Win32DrawInterface</a>();00058 00059 <span class="keywordtype">char</span> szAppName[] = <span class="stringliteral">"FishGUI Win32 Simulator"</span>;00060 WNDCLASS wndClass;00061 00062 <span class="keywordflow">if</span> (! <a class="code" href="classFG__Win32Adaptor.html#p1">m_hPrevInst</a>)00063 {00064 wndClass.style = CS_HREDRAW|CS_VREDRAW;00065 wndClass.lpfnWndProc = <a class="code" href="classFG__Win32Adaptor.html#f0">FG_Win32Adaptor::WndProc</a>;00066 wndClass.cbClsExtra = 0;00067 wndClass.cbWndExtra = 0;00068 wndClass.hInstance = <a class="code" href="classFG__Win32Adaptor.html#p0">m_hInst</a>;00069 wndClass.hIcon = LoadIcon(<a class="code" href="group__Utility.html#ga11">NULL</a>, IDI_APPLICATION);00070 wndClass.hCursor = LoadCursor(<a class="code" href="group__Utility.html#ga11">NULL</a>, IDC_ARROW);00071 wndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);00072 wndClass.lpszMenuName = <a class="code" href="group__Utility.html#ga11">NULL</a>;00073 wndClass.lpszClassName = szAppName;00074 RegisterClass(&wndClass);00075 }00076 00077 HWND hWnd;00078 hWnd = CreateWindow(szAppName, szAppName,00079 WS_VISIBLE | WS_MINIMIZEBOX | WS_SYSMENU,00080 0, 0, <a class="code" href="group__Utility.html#ga3">SCREEN_WIDTH</a> + 10, <a class="code" href="group__Utility.html#ga4">SCREEN_HEIGHT</a> + 30, 00081 <a class="code" href="group__Utility.html#ga11">NULL</a>, <a class="code" href="group__Utility.html#ga11">NULL</a>, <a class="code" href="classFG__Win32Adaptor.html#p0">m_hInst</a>, <a class="code" href="group__Utility.html#ga11">NULL</a>);00082 00083 <a class="code" href="structFG__Message.html">FG_Message</a> Msg(<a class="code" href="group__Utility.html#gga12a17">FG_MSG_STARTUP</a>);00084 <a class="code" href="classFG__OSAdaptor.html#a2">SendMsg</a>(& Msg);00085 00086 <span class="comment">// create timer tick for stimulating EMGUI</span>00087 SetTimer(hWnd, 1, 50, <a class="code" href="group__Utility.html#ga11">NULL</a>);00088 00089 ShowWindow(hWnd, <a class="code" href="classFG__Win32Adaptor.html#p2">m_nCmdShow</a>);00090 UpdateWindow(hWnd);00091 00092 <span class="keywordflow">return</span> <span class="keyword">true</span>;00093 }00094 00095 <span class="comment">//##ModelId=3F4E09F802BB</span><a name="l00096"></a><a class="code" href="classFG__Win32Adaptor.html#a1">00096</a> <span class="keywordtype">bool</span> <a class="code" href="classFG__Win32Adaptor.html#a1">FG_Win32Adaptor::ExitInstance</a>()00097 {00098 <a class="code" href="structFG__Message.html">FG_Message</a> Msg(<a class="code" href="group__Utility.html#gga12a18">FG_MSG_HALT</a>);00099 <a class="code" href="classFG__OSAdaptor.html#a2">SendMsg</a>(& Msg);00100 00101 <span class="keywordflow">if</span> (m_pDraw)00102 <span class="keyword">delete</span> m_pDraw;00103 <span class="keywordflow">if</span> (m_pAdaptor)00104 <span class="keyword">delete</span> m_pAdaptor;00105 00106 <span class="keywordflow">return</span> <span class="keyword">true</span>;00107 }00108 00109 <span class="comment">//##ModelId=3F4E09F8031F</span><a name="l00110"></a><a class="code" href="classFG__Win32Adaptor.html#a2">00110</a> <span class="keywordtype">bool</span> <a class="code" href="classFG__Win32Adaptor.html#a2">FG_Win32Adaptor::Execute</a>()00111 {00112 MSG msg;00113 <span class="keywordflow">while</span> (GetMessage(& msg, 0, 0, 0))00114 { 00115 TranslateMessage(& msg); 00116 DispatchMessage(& msg); 00117 }00118 <span class="keywordflow">return</span> <span class="keyword">true</span>;00119 }00120 00121 <span class="comment">//##ModelId=40925CB0009F</span><a name="l00122"></a><a class="code" href="classFG__Win32Adaptor.html#a6">00122</a> <span class="keywordtype">void</span> <a class="code" href="classFG__Win32Adaptor.html#a6">FG_Win32Adaptor::SetBmpPath</a>(<span class="keywordtype">char</span> * pPath, <span class="keywordtype">int</span> len)00123 {00124 memcpy(<a class="code" href="classFG__Win32Adaptor.html#p3">m_BmpPath</a>, pPath, len);00125 <a class="code" href="classFG__Win32Adaptor.html#p3">m_BmpPath</a>[len] = 0;00126 strcat(<a class="code" href="classFG__Win32Adaptor.html#p3">m_BmpPath</a>, <span class="stringliteral">"\\Win32_Bmp"</span>);00127 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -