﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Game？Life？-随笔分类-技术随笔</title><link>http://www.cppblog.com/sureandrew/category/6526.html</link><description>Love Family &amp;&amp; Love Career = Love Life</description><language>zh-cn</language><lastBuildDate>Tue, 02 Feb 2010 22:34:51 GMT</lastBuildDate><pubDate>Tue, 02 Feb 2010 22:34:51 GMT</pubDate><ttl>60</ttl><item><title>UE3 D3DDrv编译错误</title><link>http://www.cppblog.com/sureandrew/archive/2010/01/28/106647.html</link><dc:creator>阿炳</dc:creator><author>阿炳</author><pubDate>Thu, 28 Jan 2010 08:41:00 GMT</pubDate><guid>http://www.cppblog.com/sureandrew/archive/2010/01/28/106647.html</guid><wfw:comment>http://www.cppblog.com/sureandrew/comments/106647.html</wfw:comment><comments>http://www.cppblog.com/sureandrew/archive/2010/01/28/106647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sureandrew/comments/commentRss/106647.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sureandrew/services/trackbacks/106647.html</trackback:ping><description><![CDATA[我用vs2008编译UE3工程，前面几个都好好的就是到了D3DDrv这个库时，出现编译错误，如下：<br>development\src\d3ddrv\src\D3DStats.h(27) : error<br>C2785: 'T InitialStatValue(void)' and 'FD3DCounter InitialStatValue(void)' have<br>different return types<br>development\src\d3ddrv\src\D3DStats.h(27) : error<br>C3637: 'InitialStatValue' : a friend function definition cannot be a<br>specialization of a function template<br>development\src\d3ddrv\src\D3DStats.h(27) : error<br>C2912: explicit specialization; 'FD3DCounter InitialStatValue(void)' is not a<br>specialization of a function template<br>最后在一个国外的论坛找到解决方法：<br><code><font color="blue">class</font> FD3DCounter
<br>{
<br>
<br><font color="blue">template</font> &lt;<font color="blue">class</font> FD3DCounter&gt; <font color="blue">friend</font> FD3DCounter InitialStatValue(FD3DCounter()) { &nbsp;&nbsp;&nbsp;
<br><font color="blue">return</font> FD3DCounter(); &nbsp;&nbsp;&nbsp;
<br>}
<br>&nbsp;&nbsp;&nbsp;&nbsp;<font color="green">// Constructor.
</font><br><font color="blue">public</font>:
<br>
<br>DWORD &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RenderCycles,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WaitCycles,
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pixels;
<br>
<br>FD3DCounter():
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RenderCycles(0),
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WaitCycles(0),
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pixels(0)
<br>&nbsp;&nbsp;&nbsp;&nbsp;{}
<br>}; <br>注意这个时候还要改友元函数。<br></code><code><font color="blue">把<br>template</font>&lt;<font color="blue">class</font> T&gt; T InitialStatValue(<font color="blue">int</font> FD3DCounter&amp;) { <font color="blue">return</font> 0; } </code><br>改为<br><code><font color="blue">template</font> &lt;<font color="blue">class</font> T&gt; <font color="blue">friend</font> T InitialStatValue(T()) {
<font color="blue">return</font> T();
}</code><br>这样编译可以用过。<br>看来真的要好好复习下C++模板了。<br><br><img src ="http://www.cppblog.com/sureandrew/aggbug/106647.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sureandrew/" target="_blank">阿炳</a> 2010-01-28 16:41 <a href="http://www.cppblog.com/sureandrew/archive/2010/01/28/106647.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MFC 的一些常见问题</title><link>http://www.cppblog.com/sureandrew/archive/2008/09/05/61011.html</link><dc:creator>阿炳</dc:creator><author>阿炳</author><pubDate>Fri, 05 Sep 2008 09:10:00 GMT</pubDate><guid>http://www.cppblog.com/sureandrew/archive/2008/09/05/61011.html</guid><wfw:comment>http://www.cppblog.com/sureandrew/comments/61011.html</wfw:comment><comments>http://www.cppblog.com/sureandrew/archive/2008/09/05/61011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sureandrew/comments/commentRss/61011.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sureandrew/services/trackbacks/61011.html</trackback:ping><description><![CDATA[<div id="blog_text" class="cnt">
<div class="postTitle"><a  href="http://www.cppblog.com/eday/archive/2006/11/18/15375.html">MFC 的一些常见问题</a></div>
<div class="postText">
<div class="item-content">
<p><strong>如何抛出（throw）由CUserException派生的异常？</strong></p>
<p>当我试图捕获（catch）一个派生类异常时，我得到以下错误"error C2039:'classCMyException': is
not a member of 'CMyException' 'classCMyException': undeclared
identifier 'IsKindOf': cannot convert parameter 1 from 'int*' to 'const
struct CRuntimeClass*" <br>
<br>
你必需通过使用DECLARE_DYNAMIC（）和IMPLEMENT_DYNAMIC()宏来使你的CMyException类可以动态地创建。CATCH宏希望能够得到关于被抛出类的运行时刻信息。</p>
<p><strong>异常类一定要从CUserException中派生出来吗？</strong></p>
<p>不，CUserException中的"User"仅仅指用户产生的异常。而把它当作你所能派生的唯一异常是种常见的误解。</p>
<p><strong>如何从HDC建立一个CDC类？</strong></p>
<p>有时Windows API将会给你一个DC句柄，你可以通过它建立一个CDC类。例如：下拉式列表、组合框和按钮。通过hDC你将接收到绘制消息。下面是将HDC转换成你更熟悉的CDC的程序段。你也可以将该技巧用在其他任何MFC类和Windows句柄的转换中。</p>
<pre>void MyODList::DrawItem(LPDRAWITEMSTRUCT lpDrawItem)<br>{<br>    CDC myDC;<br>    myDC.Attach(lpDrawItem-&gt;hDC);<br>    //在此插入其他需要的代码。<br><br>    //如果你不将句柄分离，它将被删除，从而导致问题。<br>    myDC.Detach();<br>}</pre>
<pre>另一个方法是调用CDC类的FromHandle方法：<br>            CDC * pDC = CDC:FromHandle(lpDrawItem-&gt;hDC);</pre>
目前还不清楚哪种方法更优越―使用FromHandle()的错误也许会更少些，因为它不要求你分离（detach）句柄。
<p><strong>如何从磁盘上读取256色位图文件？</strong></p>
<p>当前，MFC并不支持直接读取和显示DIB文件和BMP文件。然而，有很多样例应用程序能够说明如何完成该项任务。第一个例子是MFC样例程序
DIBLOOK。样例MULTDOCS用DIBLOOK提供的相同源代码来读取并显示DIB文件和BMP文件。其他两个VC++中附带的例子是SDK软件
包中的DIBVIEW程序和SHOWDIB程序。</p>
<p><strong>如何改变一个视图的大小？</strong></p>
<p>通常，你可以调用函数MoveWindow（）来改变窗口的大小。在用MFC库开发的应用程序中，
视图是被框架窗口所围绕的一个子窗口。为了改变一个视图的大小，你可以通过调用函数GetParentFrame()来得到框架窗口的指针，然后调用函数
MoveWindow()来改变父窗口的大小。当父框架窗口改变大小时，视图也会自动地改变大小来适应父窗口。</p>
<p><strong>如何改变一个CFormView的大小？</strong></p>
<p>要想详细了解的话，你可以看有关Visual C＋＋基础知识的文章Q98598 《Using CFormView in SDI and
MDI
Applications》。基本上，在从CFormView类派生出来的类中，你必须覆盖函数OnInitialUpdate()。其他有关建立
CFormView的细节问题，可以从该文章中获得。</p>
<pre>在类ClikethisView中声明如下函数：<br>  virtual void OnInitialUpdate();<br><br>在ClikethisView的代码中，函数如下：<br><br>  void ClikethisView::OnInitialUpdate()<br>  {<br>      //使窗口与主对话框同样大小<br>      CFormView::OnInitialUpdate();<br>      GetParentFrame()-&gt;RecalcLayout();<br>      ResizeParentToFit( /*FALSE*/ );<br>  }</pre>
<p><strong>如何使用一个文档模板的新视图？</strong></p>
<p>在用AppWizard创建的应用程序中，你有两种选择：改变当前视图的派生关系或者建立一个新视图并且在你的MDI程序中同时利用新视图和原先的视图。<br>
<br>
<br>
为了创建一个新视图，你可以用ClassWizard由CView派生一个新的类。当新类创建以后，利用新视图或修改由AppWizard提供的视图，两者的步骤是相同的。<br>
<br>
<br>
修改视类的头文件，从而将所有对CView类的引用改名为你所想要的名称。本例中的类由CScrollView派生而来。通常，这个步骤包括对类的改变，视类将由如下方式派生而来：<br>
&nbsp;&nbsp;&nbsp;&nbsp; class CMyView : public CScrollView<br>
<br>
<br>
修改视类的实现文件，从而将所有对CView的引用改名为你所想要的名称。这包括将IMPLEMENT_DYNCREATE那一行的语句改为：<br>
&nbsp;&nbsp;&nbsp;&nbsp; IMPLEMENT_DYNCREATE(CMyView, CScrollView)<br>
<br>
<br>
将BEGIN_MESSAGE_MAP那一行的语句改为：<br>
&nbsp;&nbsp;&nbsp;&nbsp; BEGIN_MESSAGE_MAP(CMyView, CScrollView)<br>
<br>
<br>
并且将其他所有的CView改成CScrollView.<br>
<br>
<br>
假如你修改的视图是由AppWizard生成的，那么就不需要作更多的修改了。而如果你在创建一个新视图，先在
CWinApp::InitInstance()函数中找到对AddDocTemplate()函数的调用。AddDocTemplate()函数的第三
个参数是RUNTIME_CLASS(CSomeView)，用CMyView来代替CSomeView，就可以将当前视图改为新视图。在MDI应用程序
中，你可以增加第二个AddDocTemplate()函数调用来使用多视图类型，将RUNTIME_CLASS(CSomeView)改为
RUNTIME_CLASS (CMyView)。<br>
<br>
要想获得更多的信息请参阅Q99562中相关文章《Switching Views in a Single Document Interface Program》 。</p>
<p><strong>如何改变视图的背景色？</strong></p>
<p>你可以通过处理WM_ERASEBKGND消息来改变CView、CFrameWnd或CWnd对象的背景色。请看如下的程序段：</p>
<pre>BOOL CSampleView::OnEraseBkgnd(CDC* pDC)<br>  {<br>      // 设置所要求背景色的刷子<br>      CBrush backBrush(#ff8080);<br>      // 保存旧刷子<br>      CBrush* pOldBrush = pDC-&gt;SelectObject(&amp;backBrush);<br>      CRect rect;<br>      pDC-&gt;GetClipBox(&amp;rect);     // 擦除所需的区域<br>      pDC-&gt;PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);<br>      pDC-&gt;SelectObject(pOldBrush);<br>      return TRUE;<br>  }</pre>
而我则用如下方法解决这个问题：
<pre>HBRUSH dlgtest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) <br>  {<br>      switch (nCtlColor)<br>      {<br>          case CTLCOLOR_BTN:<br>          case CTLCOLOR_STATIC:<br>          {<br>              pDC-&gt;SetBkMode(TRANSPARENT);<br>          }<br>          case CTLCOLOR_DLG:<br>          {<br>              CBrush*     back_brush;<br>              COLORREF    color;<br>              color = (COLORREF) GetSysColor(COLOR_BTNFACE);<br>              back_brush = new CBrush(color);<br>              return (HBRUSH) (back_brush-&gt;m_hObject);<br>          }<br>      }<br>      return(CFormView::OnCtlColor(pDC, pWnd, nCtlColor));<br>  }</pre>
<p><strong>如何得到当前视图？</strong></p>
<p>最佳方法是将视图当作一个参数来传递。如果不能这样做，但你确信它是当前激活文档和当前激活视图的话，你也可以得到该视图。具体细节见Visual
C++文章Q108587《Get Current CDocument or CView from Anywhere》。</p>
<pre>简单说来，用：<br><br>      ((CFrameWnd*) AfxGetApp()-&gt;m_pMainWnd))-&gt;GetActiveDocument()<br><br>和：<br><br>      ((CFrameWnd*)(AfxGetApp()-&gt;m_pMainWnd))-&gt;GetActiveView()</pre>
来得到文档和视图。一个好的方法是将它们封装在你的CMyDoc和CMyView类的静态函数中，并且核对它们是否属于正确的RUNTIME_CLASS。然而，假如这个视图不是当前激活视图或者你在运行OLE本地激活，这样将不成功。
<p><strong>如何在一个文档中建立多个视图？</strong></p>
<p>CDocTemplate::CreateNewFrame()函数创建MFC
MDI应用程序中的文档的附加视图。为了调用该函数，要指定一个指向CDocument对象（指将为之建立视图的文档）的指针和一个指向可从中复制属性的
框架窗口的指针。一般情形下，该函数的第二个参数为NULL。 <br>
<br>
当应用程序调用函数CreateNewFrame()时，该函数就创建一个框架窗口和在该窗口内的视图。框架窗口和它的视图的类型由与CreateNewFrame()函数调用指定的文档相关的文档摸板(CDocTemplate)决定。 <br>
<br>
Visual C++中的CHKBOOK MFC样例程序也演示了如何为文档建立附加的框架和视图。检查CHKBOOK.CPP文件中的CChkBookApp::OpenDocumentfile()函数。 <br>
<br>
另一个用函数CreateNewFrame()的例子是MULTVIEW样本程序。 <br>
<br>
CreateNewFrame()函数建立了一个框架和一个视图，而不仅仅是一个视图。假如CreateNewFrame()函数不能完全符合你的需要，可参考CreateNewFrame()函数的源程序来了解对建立结构和视图所必须的步骤。</p>
<p><strong>如何在MDI程序中得到所有的视图？</strong></p>
<p>你必须用一些文档中没有记载的函数：</p>
<pre>CDocument::GetFirstViewPosition(); // DOCCORE.CPP<br>  CDocument::GetNextView(); // DOCCORE.CPP<br>  CMultiDocTemplate::GetFirstDocPosition(); // DOCMULTI.CPP<br>  CMultiDocTemplate::GetNextDoc(); // DOCMULTI.CPP</pre>
<p>你还需要与CWinApp的成员m_templateList打交道。<br>
注意：在MFC 版本4.0中已改变。现在已经有一个叫CDocManager的类可以帮助你显示所有的视图和文档。请参考《MFC Internals》获得更详细的信息。</p>
<p><strong>如何建立一个可用鼠标拉动的CScrollView类</strong></p>
<p>在CIS上从MSMFC库下载AUTOSV.LZH。这个程序告诉你如何实现一个辅助消息循环来管理鼠标的活动，并提供了钩挂来对代码进行定制。这是一个免费软件。</p>
<p><strong>一定要用视图/文档结构吗？</strong></p>
<p>MFC并不一定要求你使用文档/视图结构。查看HELLO、 MDI和HELLOAPP例子―它们就没有用那种结构。大多数MFC特性都可以在非文档/视图应用程序中得到运用。但是当你不用文档 / 视图结构时，你确实会失去一些特性，例如打印预览和许多OLE特性。</p>
<p><strong>如何得到当前文档？</strong></p>
<p>请详细参阅"如何得到当前视图？"章节。</p>
<p><strong>文档何时被析构？</strong></p>
<p>在SDI程序中，程序退出后文档就被删除。在MDI程序中，与该文档相关的最后一个视图关闭时文档就被删除。为了在SDI和MDI中同时用这个文档，你应该在虚函数DeleteContents()函数中删除该文档的数据，而不是在析构器中。</p>
<p><strong>如何建立多文档？</strong></p>
<p>为了加入对附加文档类型的支持，你可以在CWinApp派生类中创建和注册附加CmultiDocTemplate对象。这种方法已经在MULTDOCS样例程序中得以说明。将一个附加文档类型加入到MFC程序的一般步骤如下：</p>
<p>用AppWizard来创建一个新的文档类和视图类。 <br>
用资源编辑器增加新的资源字串来支持新的文档类。要想知道关于文档样板字符串格式的更多内容，请参阅"如何理解文档样板字符串"。<br>
<br>
用资源编辑器增加附加的应用程序图标和菜单资源。注意，这些资源中每一个的ID都必须与在步骤2中创建的文档模板字符串的ID是相同的。这个ID被CmultiDocTemplate类用来识别与附加文档类型相关的资源。<br>
<br>
在应用程序的InitInstance（）函数中，创建了另一个CMultiDocTemplate对象并且用CWinApp::AddDocTemplate()函数来注册。例如：</p>
<pre>CMultiDocTemplate* pDocTemplate2 = new CMultiDocTemplate(<br>  IDR_DOC2TYPE, RUNTIME_CLASS(CDoc2),<br>  RUNTIME_CLASS(CMDIChildWnd),RUNTIME_CLASS(CView2));<br>  AddDocTemplate(pDocTemplate2);</pre>
最后，将定制的序列化和绘图代码加入到你的新文档和视图类中。
<p><strong>如何得到一个打开文档的列表？</strong></p>
<p>下面的程序段指明如何得到用CDocTemplate对象建立的所有文档的指针列表。<br>
下面的程序段中，CMyApp由CWinApp派生而来。变量m_templateList是一个CPtrList对象，它是CwinApp的成员变量，
包含一个所有文档模板指针的列表。文档模板函数GetFirstDocPosition()和GetNextDoc()被用来在文档模板列表中进行迭代来
得到每一个文档模板。</p>
<pre>void CMyApp::GetDocumentList(CObList * pDocList)<br>  {<br>      ASSERT(pDocList-&gt;IsEmpty());<br>      POSITION pos = m_templateList.GetHeadPosition();<br>      while (pos)<br>      {<br>          CDocTemplate* pTemplate = <br>              (CDocTemplate*)m_templateList.GetNext(pos);<br>          POSITION pos2 = pTemplate-&gt;GetFirstDocPosition();<br>          while (pos2) <br>          {<br>              CDocument * pDocument;<br>              if ((pDocument=pTemplate-&gt;GetNextDoc(pos2)) != NULL)<br>                  pDocList-&gt;AddHead(pDocument);<br>          }<br>      }<br>  }</pre>
<p>在参考手册或在线帮助中，有两个CdocTemplate类的公共成员函数没有被说明。然而， 这些公共成员函数在CDocTemplate类中被定义，并且为在打开文档的列表中前后搜索提供了简单的支持。</p>
<p>这些函数如下：<br>
<br>
<br>
Function virtual POSITION GetFirstDocPosition() const；<br>
调用该函数得到在打开的文档列表中与模板相关联的第一个文档的位置。返回的POSITION的值能够被GetNextDoc成员函数反复使用。 <br>
<br>
Function Virtual CDocument* GetNextDoc(POSITION&amp; rPosition) const；<br>
rPostion是前面调用GetNextDoc
或GetFirstDocPosition成员函数返回的POSITION值。这个值不能是NULL。调用该函数来在所有打开的文档中进行迭代。该函数返
回被rPosition所标识的文档并将rPosition设置为列表中的下一个文档的POSITION值。假如所检索的是列表中的最后一个文
档，rPosition将被设为空值。</p>
<p><font color="#0000ff">注意，这仅对MFC3.2版本或更低版本有效，对MFC4.0版本请参考下面：</font></p>
<pre>void CMyApp::DoSomethingToAllDocs()<br>  {<br>      CObList  pDocList;<br>      POSITION pos = GetFirstDocTemplatePosition();<br>      while(pos)<br>      {<br>          CDocTemplate* pTemplate = GetNextDocTemplate(pos); <br>          POSITION pos2 = pTemplate-&gt;GetFirstDocPosition();<br>          while(pos2)<br>          {<br>              CDocument* pDocument;<br>              if(pDocument = pTemplate-&gt;GetNextDoc(pos2))<br>                  pDocList.AddHead(pDocument);<br>          }<br>      }<br>      if(!pDocList.IsEmpty()){<br>          pos = pDocList.GetHeadPosition();<br>      while(pos)<br>      {  <br>          //为每一个文档调用CDocument函数<br>          ( (CDocument*)pDocList.GetNext(pos) )<br>              -&gt;UpdateAllViews(NULL);<br>      }<br>  }</pre>
<p><strong>如何使我的程序在启动时不创建一个新文档？</strong></p>
<p>在程序的InitInstance中的ProcessShellCommand函数之前加入： cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing</p>
<p> </p>
<p>（－）. 下面是常见的Afx全局函数：</p>
<p> </p>
<p>AfxFormatString1：类似printf一般地将字符串格式化</p>
<p> </p>
<p>AfxFormatString2：类似printf一般地将字符串格式化</p>
<p> </p>
<p>AfxMessageBox：类似Windows API 函数 MessageBox</p>
<p> </p>
<p>AfxOuputDebugString：将字符串输往除错装置</p>
<p> </p>
<p>AfxGetApp：获得application object (CwinApp派生对象)的指针</p>
<p> </p>
<p>AfxGetMainWnd：获得程序主窗口的指针</p>
<p> </p>
<p>AfxGetInstance：获得程序的instance handle</p>
<p> </p>
<p> </p>
<p> </p>
<p>（二）. CString 与char []之间的转换. </p>
<p> </p>
<p>在VC中，恐怕这两个是经常要进行转换的吧</p>
<p> </p>
<p>char str[10] = &#8221;str&#8221;;</p>
<p> </p>
<p>CString sstr = &#8220;sstr&#8221;;</p>
<p> </p>
<p>sstr.Format(&#8220;%s&#8221;,str);</p>
<p> </p>
<p>strcpy(str,(LPCTSTR)sstr);</p>
<p> </p>
<p> </p>
<p> </p>
<p>（三）. 关闭程序:</p>
<p> </p>
<p>PostQuitMessage(WM_CLOSE);&nbsp;&nbsp; 或者PostQuitMessage(WM_DESTROY);</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 更绝的是关闭所有的程序：::ExitWindows ();</p>
<p> </p>
<p> </p>
<p> </p>
<p>（四）. 在关闭窗口时，当要对文件进行保存时，可在这里添加函数：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.）在CMainFrame里的OnClose（）里，用MessageBox("内容","标题",组合形式);组合形式可以查看MSDN的MESSAGEBOX( ) Function</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.）在CXXXDoc::SaveModified() 里，只能用AfxMessageBox("");</p>
<p> </p>
<p>不能用MessageBox（）函数</p>
<p> </p>
<p> </p>
<p> </p>
<p>（五）. 如何修改窗体的标题：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.）修改主窗口的标题：m_pMainWnd-&gt;SetWindowText("你的标题");</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 2.）如果在你的document类中进行改，则直接调用SetTitle("...")，如果在你的view类中改，则GetDocument()-&gt;SetTitle("...")</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 3.）如果想使窗口的标题全部替换，则用：AfxGetMainWnd()-&gt;SetWindowText("你的标题");</p>
<p> </p>
<p> </p>
<p> </p>
<p>（六）. 得到窗体的标题：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.）AfxGetMainWnd()-&gt;GetWindowText(); </p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp; 2.）先FindWindow()找到窗口的HWND,在GetWindowText();</p>
<p> </p>
<p> </p>
<p> </p>
<p>（七）. 在多文档/视图中：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 1.）子窗口的最大化：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  void CChildFrame::ActivateFrame(int nCmdShow)</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  {</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // TODO: Add your specialized code here and/or call the base class</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  nCmdShow=SW_MAXIMIZE;</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  CMDIChildWnd::ActivateFrame(nCmdShow);</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p> </p>
<p> </p>
<p> </p>
<p>2.）屏蔽子对话框：在APP类里把这两句话屏蔽掉</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!ProcessShellCommand(cmdInfo))</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return FALSE;</p>
<p> </p>
<p>3.）关闭子窗口：</p>
<p> </p>
<p>::SendMessage(::AfxGetMainWnd()-&gt;m_hWnd, WM_COMMAND,ID_FILE_CLOSE,0);</p>
<p> </p>
<p> </p>
<p> </p>
<p>（八）. 在装进自定义的光标后，在移动的过程中，鼠标的形状总是在自定义和默认的光标之间晃动，可以这样解决，在视中的PreCreateWindow（）中加入如下几句：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;  BOOL CXXXXView::PreCreateWindow(CREATESTRUCT&amp; cs)</p>
<p> </p>
<p>{</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // TODO: Modify the Window class or styles here by modifying</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  // the CREATESTRUCT cs</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  cs.lpszClass =AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,0,</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  (HBRUSH)::GetStockObject (WHITE_BRUSH),0);</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  return CView::PreCreateWindow(cs);</p>
<p> </p>
<p>}</p>
<p> </p>
<p> </p>
<p> </p>
<p>（九）. 怎样禁止改变窗口的大小和不能移动的窗口：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 再 CMainFrame的OnCreate函数中加入：</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMenu *pTopMenu=GetSystemMenu(false);</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pTopMenu-&gt;RemoveMenu(4,MF_BYPOSITION);//最大化窗口不可用</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pTopMenu-&gt;RemoveMenu(2,MF_BYPOSITION);//size</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pTopMenu-&gt;RemoveMenu(1,MF_BYPOSITION);//使不可移动</p>
<p> </p>
<p> </p>
<p> </p>
<p>（十）.使窗口始终在最前方：</p>
<p> </p>
<p>只要在App类中的InitInstance()函数中加入以下代码就可以了:</p>
<p> </p>
<p>BOOL CwindowOnTopApp:: InitInstance()</p>
<p> </p>
<p>{</p>
<p> </p>
<p>&nbsp;&nbsp;  //此处略去了VC自动生成的代码</p>
<p> </p>
<p>&nbsp;&nbsp;  m_pMainWnd-&gt;showWindow(SW_SHOW);</p>
<p> </p>
<p>&nbsp;&nbsp;  m_pMainWnd-&gt;UpdateWindow();</p>
<p> </p>
<p>&nbsp;&nbsp;  m_pMainWnd-&gt;SetWindowPos(&amp;CWnd::WndTopMost,0,0,0,0,</p>
<p> </p>
<p>SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);</p>
<p> </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return true;</p>
<p> </p>
<p>}</p>
<p>转载，留待以后查看。<br></p>
</div>
</div>
</div><img src ="http://www.cppblog.com/sureandrew/aggbug/61011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sureandrew/" target="_blank">阿炳</a> 2008-09-05 17:10 <a href="http://www.cppblog.com/sureandrew/archive/2008/09/05/61011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XP下安装Linux及重装XP后修复Linux</title><link>http://www.cppblog.com/sureandrew/archive/2008/05/05/48834.html</link><dc:creator>阿炳</dc:creator><author>阿炳</author><pubDate>Mon, 05 May 2008 15:59:00 GMT</pubDate><guid>http://www.cppblog.com/sureandrew/archive/2008/05/05/48834.html</guid><wfw:comment>http://www.cppblog.com/sureandrew/comments/48834.html</wfw:comment><comments>http://www.cppblog.com/sureandrew/archive/2008/05/05/48834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sureandrew/comments/commentRss/48834.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sureandrew/services/trackbacks/48834.html</trackback:ping><description><![CDATA[将系统第一启动顺序改为光驱,放入linux光盘，就可以按照提示安装,在分区时选择手动分区:其中boot分300M左右大小,swap分为内存的2倍大小,剩下的都分给root.&nbsp; <br>在windows系统上装了linux系统最怕的就是重装windows系统,下面介绍一种方法。<br>装完linux系统后最好做一个启动文件,方法是用命令:mkbootdisk&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;linux.img&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(注:后面的linux.img名字可以随便取,不过扩展名一定要是&nbsp;&nbsp;&nbsp;.img的).可以把这个文件放到一个U盘上,也可以放在一个你能找到的地方.&nbsp; <br>不要以为上面的步骤没用,一旦你有问题要重新装windows系统,而恰好你又没有linux光盘的话,这个文件就有大用了.重装windows系统会把linux的grub引导给删除的.&nbsp; <br>一旦重装windows系统,没法启动linux的话,首先下载一个linuxdos(一个能在windows下查看linux中的文件的东西),用它找到你做的那个启动文件,把它放到你的windows中的c盘中.再下一个虚拟软盘vfloppy(可以从http://download.csdn.net/user/syboo/vfloppy下载),用虚拟软盘找到你的c盘中的启动文件就行了,这样再怎么重装windows系统你也不用怕了.
<img src ="http://www.cppblog.com/sureandrew/aggbug/48834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sureandrew/" target="_blank">阿炳</a> 2008-05-05 23:59 <a href="http://www.cppblog.com/sureandrew/archive/2008/05/05/48834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu之开机检测硬盘</title><link>http://www.cppblog.com/sureandrew/archive/2008/05/03/48720.html</link><dc:creator>阿炳</dc:creator><author>阿炳</author><pubDate>Sat, 03 May 2008 09:47:00 GMT</pubDate><guid>http://www.cppblog.com/sureandrew/archive/2008/05/03/48720.html</guid><wfw:comment>http://www.cppblog.com/sureandrew/comments/48720.html</wfw:comment><comments>http://www.cppblog.com/sureandrew/archive/2008/05/03/48720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sureandrew/comments/commentRss/48720.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sureandrew/services/trackbacks/48720.html</trackback:ping><description><![CDATA[Ubuntu默认的设置是每开机30次就检测硬盘一次，这个对于笔记本用户来说有点频繁，对于台式机也很不爽。彻底关掉也不好。解决的方法如下：<br>
<br>
如果想下次开机不检测硬盘，可以创建如下一个空白的文件即可。<br>
$sudo touch /fastboot<br>
<br>
如果想下次开机检测硬盘，可以创建如下一个空白文件。<br>
$sudo touch /forcefsck <br>
<br>
如果想每开机60次检测一次硬盘，用下面的命令。<br>
$sudo tune2fs -c 60 <br>
<br>
如果想一周检测一次硬盘，用下面的命令。<br>
$sudo tune2fs -i 1w <br>
<br>
如果想知道更多tune2fs命令的内容，用下面的命令。<br>
$man tune2fs<img src ="http://www.cppblog.com/sureandrew/aggbug/48720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sureandrew/" target="_blank">阿炳</a> 2008-05-03 17:47 <a href="http://www.cppblog.com/sureandrew/archive/2008/05/03/48720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在ubuntu7.10上的virtualbox里安装ReactOS</title><link>http://www.cppblog.com/sureandrew/archive/2008/04/16/47177.html</link><dc:creator>阿炳</dc:creator><author>阿炳</author><pubDate>Tue, 15 Apr 2008 18:53:00 GMT</pubDate><guid>http://www.cppblog.com/sureandrew/archive/2008/04/16/47177.html</guid><wfw:comment>http://www.cppblog.com/sureandrew/comments/47177.html</wfw:comment><comments>http://www.cppblog.com/sureandrew/archive/2008/04/16/47177.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sureandrew/comments/commentRss/47177.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sureandrew/services/trackbacks/47177.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/sureandrew/archive/2008/04/16/47177.html'>阅读全文</a><img src ="http://www.cppblog.com/sureandrew/aggbug/47177.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sureandrew/" target="_blank">阿炳</a> 2008-04-16 02:53 <a href="http://www.cppblog.com/sureandrew/archive/2008/04/16/47177.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gdb调试器命令详解［转载］</title><link>http://www.cppblog.com/sureandrew/archive/2008/03/30/45772.html</link><dc:creator>阿炳</dc:creator><author>阿炳</author><pubDate>Sun, 30 Mar 2008 14:30:00 GMT</pubDate><guid>http://www.cppblog.com/sureandrew/archive/2008/03/30/45772.html</guid><wfw:comment>http://www.cppblog.com/sureandrew/comments/45772.html</wfw:comment><comments>http://www.cppblog.com/sureandrew/archive/2008/03/30/45772.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sureandrew/comments/commentRss/45772.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sureandrew/services/trackbacks/45772.html</trackback:ping><description><![CDATA[在linux下编译程序要用到gdb,我一直记不到几个命令，所以转来一篇讲解gdb命令的帖子，一边随时查找。<br>作者:yrj 的 Blog<br><strong><font size="6">gdb 命令详解<br></font></strong>
<table class="MsoNormalTable" style="border: 1pt solid windowtext;" border="1" cellpadding="0" cellspacing="1">
    <tbody>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">awatch</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">指定一个变量，如果这个变量被读或者被写，则暂停程序运行，在调试器中显示信息，并等待下一个调试命令。参考<span lang="EN-US">rwatch</span>和<span lang="EN-US">watch</span>命令。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">backtrace</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">显示函数调用得所有栈框架（<span lang="EN-US">stack frames</span>）的<span lang="EN-US">&nbsp;</span>踪迹和当前函数的参数的值，<span lang="EN-US">bt</span>是这个命令的简写。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">break</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">设置一个断点，这个命令需要指定代码行或者函数名作为参数<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">clear</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">删除一个断点，这个命令需要制定代码行或者函数名作为参数<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">continue</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">调试器停止的地方继续执行<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">Ctrl-C</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">在当前位置停止执行正在执行的程序，断点在当前行<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">disable</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">禁止断点功能，这个命令需要禁止的断点在断点列表索引值作为参数<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">display</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">在断点的停止的地方，显示指定的表达式的值。（显示变量）<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">enable</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">允许断点功能，这个命令需要允许的断点在断点列表索引值作为参数<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">finish</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">继续执行，知道当前函数返回<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">ignore</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">忽略某个断点制定的次数。例：<span lang="EN-US">ignore 4 23 </span>忽略断点<span lang="EN-US">4</span>的<span lang="EN-US">23</span>次运行，在第<span lang="EN-US">24</span>次的时候中断<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">info breakpoints</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">查看断点信息<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">info display</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">查看设置的需要显示的表达式的信息<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">kill</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">终止当前<span lang="EN-US">debug</span>的进程<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">list</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">显示<span lang="EN-US">10</span>行代码。如果没有提供参数给这个命令，则从当前行开始显示<span lang="EN-US">10</span>行代码。<span lang="EN-US"><br></span>如果提供了函数名作为参数，则从函数开头显示。如果提供代码行的编号作为参<span lang="EN-US"><br></span>数，这一行作为开头显示。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">load</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">动态载入一个可执行文件到调试器。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">next</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">执行下一行的源代码的所有指令。如果是函数调用，则也当作一行源代码，执行到此函数返回<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">nexti</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">执行下一行的源代码中的一条汇编指令<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">print</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">显示变量的值<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">ptype</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">显示变量的类型<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">return</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">强制从当前函数返回<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">run</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">从程序开始的地方执行<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">rwatch</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">指定一个变量，如果这个变量被读，则暂停程序运行，在调试器中显示信息，并等待下一个调试命令。参考<span lang="EN-US">rwatch</span>和<span lang="EN-US">watch</span>命令。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">set</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">设置变量的值。例如：<span lang="EN-US">set nval=54 </span>将把<span lang="EN-US">54</span>保存到<span lang="EN-US">nval</span>变量中<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">step</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">继续执行程序下一行源代码的所有指令。如果是调用函数，这个命令将进入函数的内部，单步执行函数中代码。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">stepi</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">继续执行程序下一行源代码中的汇编指令。如果是函数调用，这个命令将进入函数的内部，单步执行函数中的汇编代码。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">txbreak</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">在当前函数的退出的点上设置一个临时的断点（只可使用一次）。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">undisplay</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">删除一个<span lang="EN-US">display</span>设置的变量显示。这个命令需要将<span lang="EN-US">display list</span>中的索引做参数。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">watch</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">指定一个变量，如果这个变量被写，则暂停程序运行，在调试器中显示信息，并等待下一个调试命令。参考<span lang="EN-US">rwatch</span>和<span lang="EN-US">watch</span>命令。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">whatis</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">显示变量的值和类型。<span lang="EN-US"></span></span></p>
            </td>
        </tr>
        <tr>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 109.1pt; background-color: transparent;" width="145">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">xbreak</span></p>
            </td>
            <td style="border: 1pt solid windowtext; padding: 0.75pt; width: 308pt; background-color: transparent;" width="411">
            <p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">在当前函数的退出的点上设置一个断点。</span></p>
            </td>
        </tr>
    </tbody>
</table>
<br><br><img src ="http://www.cppblog.com/sureandrew/aggbug/45772.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sureandrew/" target="_blank">阿炳</a> 2008-03-30 22:30 <a href="http://www.cppblog.com/sureandrew/archive/2008/03/30/45772.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CodeBlocks使用简介</title><link>http://www.cppblog.com/sureandrew/archive/2008/03/29/45650.html</link><dc:creator>阿炳</dc:creator><author>阿炳</author><pubDate>Fri, 28 Mar 2008 16:16:00 GMT</pubDate><guid>http://www.cppblog.com/sureandrew/archive/2008/03/29/45650.html</guid><wfw:comment>http://www.cppblog.com/sureandrew/comments/45650.html</wfw:comment><comments>http://www.cppblog.com/sureandrew/archive/2008/03/29/45650.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sureandrew/comments/commentRss/45650.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sureandrew/services/trackbacks/45650.html</trackback:ping><description><![CDATA[<p align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;学了这么久技术，其实几乎没写过技术文章。今天第一次写技术文章。想着还是写点简单的吧，就写写CodeBlocks的简单使用教程吧！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果你安装CodeBlocks8.02，他有集成了MinGW的版本，包含了GCC，在第一次运行时，他会让你选择默认的编译器，如果是集成了MinGW的，默认就是GCC，选这就可以了，你也可以选别的，但是我感觉没必要，CodeBlocks+MinGW这个组合挺好的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;装好后点击CB（CodeBlocks一下简称CB）图标，打开如下图。<br><img height=600 alt="" src="http://www.cppblog.com/images/cppblog_com/sureandrew/cb1.png" width=800 border=0></p>
其实界面跟visual studio.net很相似，但是我感觉很清爽(关键我喜欢开源的东西：)，操作和配置其实也很相似。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下面我们就先生成一个简单的工程来看一下<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;选择File-&gt;New-&gt;Project,弹出如下对话框<br><img height=480 alt="" src="http://www.cppblog.com/images/cppblog_com/sureandrew/cb3.png" width=640 border=0><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可供选择的模板工程还真多，好多图形相关的工程，还有开源图形库模板，我们就选一个OpenGL Project，然后一路往下，生成一个你命名的工程，我起得是myopengl，然后编译运行就可以了，<br><img height=300 alt="" src="http://www.cppblog.com/images/cppblog_com/sureandrew/cb4.png" width=300 border=0><br>这几乎是最简单的窗口OpenGL程序了，不过也有接近200行代码。<br>o(&#8745;_&#8745;)o...写的太差了！
<img src ="http://www.cppblog.com/sureandrew/aggbug/45650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sureandrew/" target="_blank">阿炳</a> 2008-03-29 00:16 <a href="http://www.cppblog.com/sureandrew/archive/2008/03/29/45650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>