⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g02.htm

📁 一本介绍如何开发游戏,如何进行游戏编程的非常值得一看的好书.
💻 HTM
📖 第 1 页 / 共 5 页
字号:
                int WINAPI WinMain(HINSTANCE hinstance,<br>                          HINSTANCE hprevinstance,<br>                          LPSTR lpcmdline,<br>                          int ncmdshow);<br>                首先,应当注意到奇怪的WINAPI声明符,这相当于PASCAL函数声明符,它强制参数从左边向右边传递,而不是像默认的CDECL声明符那样参数从右到左转移。但是,PASCAL调用约定声明已经过时了,WINAPI代替了该函数。必须使用WinMain()的WINAPI声明符;否则,将向函数返回一个不正确的参数并终止开始程序。</p>            <p><b>测试参数</b></p>            <p>   下面我们详细看一下每个参数<br>                ·hinstance——该参数是一个Windows为你的应用程序生成的实例句柄。实例是一个用来跟踪资源的指针或数。本例中,hinstance就像一个名字或地址一样,用来跟踪你的应用程序。<br>                ·hprevinstance——该参数已经不再使用了,但是在Windows的旧版本中,它跟踪应用程序以前的实例(换句话说,就是产生当前实例的应用程序实例)。难怪Microsoft要去除它,它就像一次长途跋涉——主我们为之头疼。<br>                ·lpcmdline——这是一个空终止字符串,和标准C/C++ main(int argc,char **argv)函数中的命令行参数相似。不同的是,它不是一个单独的像argc那样指出命令行的参数。例如,如果你创建一个名字为TEST.EXE的Windows应用程序,并且使用下面的参数运行:<br>                TEST.EXE one<br>                lpcmdline将含有下面数据:<br>                lpcmdline = &quot;one two three&quot;<br>                注意,.EXE的名字本身并不是命令行的一部分。<br>                ·ncmdshow——最后一整型参数在运行过程中被传递给应用程序,带有如何打开主应用程序窗口的信息。这样,用户便会拥有一点控制应用程序如何启动的能力。当然,作为一个程序员,如果想忽略它也可以,而想使用它也行。(你将参数传递给ShowWindow(),我们又超前了!)表2.2列出了ncmdshow最常用的参数值。</p>            <p align="center"><b>表2.2 cmdshow的Windows代码</b><br>            </p>            <table width="90%" border="1" cellspacing="0" cellpadding="0" align="center" bordercolorlight="#000000" bordercolordark="#FFFFFF">              <tr>                <td width="22%" bgcolor="#CCCCFF">                   <div align="center"><b>值</b></div>                </td>                <td width="78%" bgcolor="#CCCCFF">                   <div align="center"><b>功  能</b></div>                </td>              </tr>              <tr>                <td width="22%">SW_SHOWNORMAL</td>                <td width="78%">  激活并显示一个窗口。如果该窗口最小化或最大化的话,Windows将它恢复到原始尺寸和位置。当第一次显示该窗口时,应用程序将指定该标志。</td>              </tr>              <tr>                <td width="22%">SW_SHOW</td>                <td width="78%">  激活一个窗口,并按当前尺寸和位置显示</td>              </tr>              <tr>                <td width="22%">SW_HIDE</td>                <td width="78%">   隐藏一个窗口,并激活另外一个窗口</td>              </tr>              <tr>                <td width="22%">SW_MAXIMIZE</td>                <td width="78%">  将指定的窗口最大化</td>              </tr>              <tr>                <td width="22%">SW_MINIMIZE</td>                <td width="78%">  将指定的窗口最小化</td>              </tr>              <tr>                <td width="22%">SW_RESTORE</td>                <td width="78%">  激活并显示一个窗口,如果该窗口最小化或最大化的话,Windows将它恢复到原始尺寸和位置。当恢复为最小化窗口时,应用程序必须指定该标志。</td>              </tr>              <tr>                <td width="22%">SW_SHOWMAXIMIZED</td>                <td width="78%">  激活一个窗口,并以最大化窗口显示</td>              </tr>              <tr>                <td width="22%">SW_SHOWMINIMIZED</td>                <td width="78%">  激活一个窗口,并以最小化窗口显示</td>              </tr>              <tr>                <td width="22%">SW_SHOWMINNOACTIVE</td>                <td width="78%">  以最小化窗口方式显示一个窗口,激活的窗口依然保持激活的状态</td>              </tr>              <tr>                <td width="22%">SW_SHOWNA</td>                <td width="78%">  以当前状态显示一个窗口,激活的窗口依然保持激活的状态  </td>              </tr>              <tr>                <td width="22%">SW_SHOWONACTIVATE</td>                <td width="78%">  以上一次窗口尺寸和位置来显示窗口,激活的窗口依然保持激活的状态</td>              </tr>            </table>            <p>   如表2.2所示,ncmdshow有许多设置(目前许多值都没有意义)。实际上,这些设置大部分都不在ncmdshow中传递。可以应用另一个函数               ShowWindow()来使用它们,该函数在一个窗口创建时就开始显示。对此我们在本章后面将进行详细的讨论。<br>                我想说的一点是,Windows带有大量的你从未使用过的选项和标志等等,就像VCR编程选项一样——越多越好,任你使用。Windows就是按照这种方式设计的。这将使每个人都感到满意,这也意味着它包含了许多选项。实际上,我们在99%时间内将会使用SW_SHOW、SW_SHOWNORMAL和SW_HIDE,但是你还要了解在1%的时间内会用到的其他选项。</p>            <p> <b>选择一个信息框</b></p>            <p>  最后让我们讨论一下WinMain()中调用MessageBox()的实际机制。MessageBox()是一个Win32 API函数,它替我们做某些事,使我们不需自己去做。该函数经常以不同的图标和一个或两个按钮来显示信息。你看,简单的信息显示在Windows应用程序中非常普通,有了这样一个函数就节省了程序员半个多小时的时间,而不必每次使用都要编写它。<br>                MessageBox()并没有什么多少功能,但是能够在屏幕上显示一个窗口,提出一个问题,并且等候用户的输入。下面是MessageBox()的原型:<br>                int MessageBox(HWND hwn,//handle of owner window<br>                        LPCTSTR lptext,//address of text in message box<br>                        LPCTSTR lpcaption,//address of title of message box<br>                        UINT utype);//style of message box<br>                参数定义如下:<br>                hwnd——这是信息框连续窗口的句柄。目前我们还不能谈及窗口句柄,因此只能认为它是信息框的父窗口。在DEMO2_2.CPP,我们将它设置为空值NULL,因此使用Windows桌面作为父窗口。<br>                lptext——这是一个包含显示文本的空值终止字符串。<br>                lpcaption——这是一个包含显示文本框标题的空值终止字符串。<br>                utype——这大概是该簇参数中唯一令人激动的参数了,控制信息显示框的各类。<br>                表2.3列出了几种MessageBox()选项(有些删减)。</p>            <p>  <b>表2.3 MessageBox()选项</b><br>                ─────────────────────────────────<br>                         <b>标志  描述</b> <br>                ─────────────────────────────────<br>                      <b>下列设置控制信息框的一般类型 </b><br>                ───────────┬─────────────────────<br>                MB_OK        │信息框含有一个按钮:OK,这是默认值<br>                MB_OKCANCEL     │信息框含有两个按钮:OK和Cancel<br>                MB_RETRYCANCEL   │信息框含有两个按钮:Retry和Cancel<br>                MB_YESNO      │信息框含有两个按钮:Yes和No<br>                MB_YESNOCANCEL   │信息框含有三个按钮:Yes、No和Cancel<br>                MB_ABORTRETRYIGNORE│信息框含有三个按钮:Yes、No和Cancel<br>                ───────────┴─────────────────────<br>                     <b>这一组控制在图标上添加一点“穷人的多媒体”</b><br>                ───────────┬─────────────────────<br>                MB_ICONEXCLAMATION │信息框显示一个惊叹号图标<br>                MB_ICONINFORMATION │信息框显示一个由圆圈中的小写字母I构成的图标<br>                MB_ICONQUESTION   │信息框显示一个问号图标<br>                MB_ICONSTOP     │信息框显示一个终止符图标<br>                ───────────┴─────────────────────<br>                       <b>该标志组控制默认时高亮的按钮</b> <br>                ───────────┬─────────────────────<br>                MB_DEFBUTTONn    │其中n是一个指示默认按钮的数字(1-4),从左<br>                           │到右计数<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -