﻿<?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++博客-吓偶一跳</title><link>http://www.cppblog.com/xiwrong/</link><description>-.- 留给自己查阅</description><language>zh-cn</language><lastBuildDate>Thu, 09 Apr 2026 01:55:53 GMT</lastBuildDate><pubDate>Thu, 09 Apr 2026 01:55:53 GMT</pubDate><ttl>60</ttl><item><title>Fantastical Notion</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137529.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:36:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137529.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137529.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137529.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137529.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137529.html</trackback:ping><description><![CDATA[
		<div>
				<font color="#800000" size="5">
						<strong>//多色窗口设置</strong>
				</font>
		</div>
		<div>
				<strong>
						<font color="#800000" size="5">单文档+C^View的定制</font>
				</strong>
		</div>
		<div>
				<font color="#800000">#define RED RGB(255, 0, 0)<br />#define GREEN RGB(0, 255, 0)<br />#define BLUE RGB(0, 0, 255)<br />#define BLACK RGB(0, 0, 0)</font>
		</div>
		<div> </div>
		<div>void CMutiColorWindowsView::OnDraw(CDC* pDC)<br />{<br /> CMutiColorWindowsDoc* pDoc = GetDocument();<br /> ASSERT_VALID(pDoc);<br /> if (!pDoc)<br />  return;</div>
		<div>
				<font style="BACKGROUND-COLOR: #000000">
				</font> </div>
		<div> <font color="#800000">CRect r;<br /> // TODO: 在此处为本机数据添加绘制代码<br /> GetClientRect(r);<br /> if(r.right&gt;750 &amp;&amp; r.right&lt;1000 || r.bottom&gt;750 &amp;&amp; r.bottom&lt;1000)<br />  pDC-&gt;FillSolidRect(r, RED);<br /> else if(r.right&gt;500 &amp;&amp; r.right&lt;750 || r.bottom&gt;500 &amp;&amp; r.bottom&lt;750)<br />  pDC-&gt;FillSolidRect(r, GREEN);<br /> else if(r.right&lt;500 || r.bottom&lt;500)<br />  pDC-&gt;FillSolidRect(r, BLUE);<br /> else<br />  pDC-&gt;FillSolidRect(r, BLACK);</font></div>
		<div>}</div>
		<div>————————————————————————————————————————————————————————————————</div>
		<div>
				<font color="#800000" size="5">
						<strong>//不规则窗口建立</strong>
				</font>
		</div>
		<div>
				<font color="#800000"> CRgn m_rgn;</font>
		</div>
		<div>BOOL CunRegularWindowsDlg::OnInitDialog()<br />{<br /> CDialog::OnInitDialog();</div>
		<div> // 将“关于...”菜单项添加到系统菜单中。</div>
		<div> // IDM_ABOUTBOX 必须在系统命令范围内。<br /> ASSERT((IDM_ABOUTBOX &amp; 0xFFF0) == IDM_ABOUTBOX);<br /> ASSERT(IDM_ABOUTBOX &lt; 0xF000);</div>
		<div> CMenu* pSysMenu = GetSystemMenu(FALSE);<br /> if (pSysMenu != NULL)<br /> {<br />……</div>
		<div> // TODO: 在此添加额外的初始化代码</div>
		<div> <font color="#800000">CRect rcDialog;<br /> GetClientRect(rcDialog);<br /> m_rgn.CreateEllipticRgn(rcDialog.left, rcDialog.top, rcDialog.Width(),<br />        rcDialog.Height());<br /> SetWindowRgn((HRGN)m_rgn, TRUE);<br /> m_rgn.DeleteObject();</font><br /> return TRUE;  // 除非将焦点设置到控件，否则返回 TRUE<br />}</div>
		<div>——————————————————————————————————————————————————————————————————</div>
		<div>
				<strong>
						<font color="#800000" size="5">//显示运行进程</font>
				</strong>
		</div>
		<div>
				<strong>
						<font color="#800000" size="5">
						</font>
				</strong> </div>
		<div>
				<font color="#800000" size="5">
						<strong> </strong>
						<font size="4">CListCtrl m_listProcess;<br /> CImageList m_imgSmall;</font>
				</font>
		</div>
		<div>
				<strong>
						<font color="#800000" size="5">BOOL CEnumProcessDlg::OnInitDialog()</font>
				</strong>
		</div>
		<div>
				<strong>
						<font color="#800000" size="5">{</font>
				</strong>
		</div>
		<div>
				<strong>
						<font color="#800000" size="5">……</font>
				</strong>
		</div>
		<div>// TODO: 在此添加额外的初始化代码<br /> m_imgSmall.Create(16, 16, ILC_MASK | ILC_COLORDDB, 1, 100);</div>
		<div>
				<br /> m_listProcess.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);<br /> m_listProcess.SetBkColor(RGB(247,247,255));<br /> m_listProcess.SetTextColor(RGB(0,0,255));<br /> m_listProcess.SetTextBkColor(RGB(247,247,255));</div>
		<div>
				<br /> m_listProcess.InsertColumn(0, L"Process File Name", LVCFMT_LEFT, 250, 0);<br /> m_listProcess.InsertColumn(1, L"Process ID", LVCFMT_CENTER, 100, 1);<br /> m_listProcess.InsertColumn(2, L"Parent ProID", LVCFMT_CENTER, 100, 2);</div>
		<div>
				<strong>
						<font color="#800000" size="5">}</font>
				</strong>
		</div>
		<div>
				<strong>
						<font color="#800000" size="5">
						</font>
				</strong> </div>
		<div>
				<font color="#993300" size="5">
						<strong>void CEnumProcessDlg::OnBnClickedButtonCatch()<br />{</strong>
				</font>
				<br /> // TODO: 在此添加控件通知处理程序代码</div>
		<div>//  m_listProcess.InsertItem(0,L"01");<br />//  m_listProcess.SetItemText(0, 1, L"chetnao");<br />//  m_listProcess.SetItemText(0, 2, L"921984");<br />// <br />//  m_listProcess.InsertItem(1,L"02");<br />//  m_listProcess.SetItemText(1,1,L"mada");<br />//  m_listProcess.SetItemText(1,2,L"345678");<br />// <br />//  m_listProcess.InsertItem(2,L"03");<br />//  m_listProcess.SetItemText(2,1,L"luoxian");<br />//  m_listProcess.SetItemText(2,2,L"987654");</div>
		<div>  HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);<br />  if(snapshot == NULL) return;<br />  m_listProcess.SetRedraw(FALSE);</div>
		<div>  PROCESSENTRY32 processinfo;<br /> MODULEENTRY32 moduleinfo;<br />  processinfo.dwSize = sizeof(processinfo);<br />  BOOL status = Process32First(snapshot, &amp;processinfo);<br /> Module32First(snapshot, &amp;moduleinfo);<br /><strong><font color="#0000ff"> SHFILEINFO shSmall;</font></strong></div>
		<div> CString str;<br /> int indexImage;<br /> m_listProcess.SetImageList(&amp;m_imgSmall, LVSIL_SMALL); <br /> while(status) {<br />  ZeroMemory(&amp;shSmall, sizeof(shSmall));  <br />  SHGetFileInfo(moduleinfo.szExePath, <br />   0, &amp;shSmall, <br />   sizeof(shSmall), <br />   SHGFI_ICON | <br />   SHGFI_SMALLICON);<br />  indexImage = m_imgSmall.Add(shSmall.hIcon);  <font color="#008000">//MODULEENTRY32 可以提供程序的Path但是会出现乱码</font></div>
		<div>
				<font color="#008000">
						<font color="#008000">                                                                       //PROCESSENTRY32 只能提供filename，在ProcessID与ParentProcessID起着重要作用</font>
						<br />
				</font>  int nCount = m_listProcess.GetItemCount();</div>
		<div>  m_listProcess.InsertItem(nCount, processinfo.szExeFile, indexImage);</div>
		<div>  str.Format(L"%d", processinfo.th32ProcessID);<br />   m_listProcess.SetItemText(nCount, 1, str);  <br />  str.Format(L"%d", processinfo.th32ParentProcessID);<br />   m_listProcess.SetItemText(nCount, 2, str);  </div>
		<div>  status = Process32Next(snapshot, &amp;processinfo);<br />  Module32Next(snapshot, &amp;moduleinfo);<br /> }//while</div>
		<div>  m_listProcess.SetRedraw(TRUE);</div>
		<div>
				<font color="#800000" size="5">
						<strong>}</strong>
				</font>
		</div>
		<div>
				<br />// typedef struct tagPROCESSENTRY32 {<br />//  DWORD     dwSize;<br />//  DWORD     cntUsage;<br />//  DWORD     th32ProcessID;<br />//  ULONG_PTR th32DefaultHeapID;<br />//  DWORD     th32ModuleID;<br />//  DWORD     cntThreads;<br />//  DWORD     th32ParentProcessID;<br />//  LONG      pcPriClassBase;<br />//  DWORD     dwFlags;<br />//  TCHAR     szExeFile[MAX_PATH];<br />// } PROCESSENTRY32, *PPROCESSENTRY32;</div>
		<div>// typedef struct _SHFILEINFO {<br />//  HICON hIcon;<br />//  int iIcon;<br />//  DWORD dwAttributes;<br />//  TCHAR szDisplayName[MAX_PATH];<br />//  TCHAR szTypeName[80];<br />// } SHFILEINFO;<br />————————————————————————————————————————————————————————————————<br /><br />设置图标与位图<br />void CStaticTextDlg::OnButton1() <br />{<br /> // TODO: Add your control notification handler code here<br /> CStatic *pStatic1 = (CStatic*) GetDlgItem(IDC_STATIC1);<br /> pStatic1-&gt;SetWindowText("");<br /> pStatic1-&gt;ModifyStyle(0x0, SS_ICON | SS_CENTERIMAGE);<br /> pStatic1-&gt;SetIcon(AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME));<br />}<br />void CEx5Dlg::OnButton3() <br />{<br /> // TODO: Add your control notification handler code here<br /> CStatic *pStatic3=(CStatic*)GetDlgItem(IDC_STATIC3);<br /> pStatic3-&gt;SetWindowText("");<br /> pStatic3-&gt;ModifyStyle(0x0,SS_BITMAP|SS_CENTERIMAGE);<br /> pStatic3-&gt;SetBitmap(::LoadBitmap(AfxGetApp()-&gt;m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1))); <br />}<br /></div>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:36 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】Linux Ubuntu系统设置总要</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137527.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:31:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137527.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137527.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137527.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137527.html</trackback:ping><description><![CDATA[使用ubuntu随处见到乱码现象，windows 下写的txt乱码，网页中的flash乱码、Rhythmbox中的歌曲信息乱码、mplayer播放器字幕乱码，wine乱码等等.  <br />一、解决txt乱码:  <br />      在windows下能够打开的txt文本文件在ubuntu下用gedit打开时，中文显示是乱码，这是因为编码方式不同造成的主要是编码不同，windows下简体中文多用gb2312编码 （或gbk, gb18030）, linux下多用utf8编码！  <br />   解决乱码方法：  <br />     第一种：在Applications（应用程序）菜单上点右键，选择Edit Menu（编辑菜单）.在Main Menu（主菜单）的对话框中勾选System Tools（系统工具）－－Configuration Editor（配置编辑器），并从Applications菜单中开启。  <br /> <br />依次开启 /apps/gedit-2/preferences/encodings/双击右侧auto_detected,在弹出对话框中点选Add，添加 Values值为GB18030或GB2312,确定后选中，点选Up按钮将其移至第一位。同样方法，对show_in_menu进行设置，并将 GB18030或GB2312置于首位，这样就行了！  <br />     第二种：按组合键ALT+F2打开“运行应用程序“对话框，输入 gconf-editor，运行，进入配置编辑器：依次开启 /apps/gedit-2/preferences/encodings/双击右侧auto_detected,在弹出对话框中点选Add，添加 Values值为GB18030或GB2312,确定后选中，点选Up按钮将其移至第一位。同样方法，对show_in_menu进行设置，并将 GB18030或GB2312置于首位，这样就行了！  <br /> <br />二、网页中的flash乱码:  <br /> <br />刚刚装上的ubuntu默认浏览器是Firefox，但是Ubuntu默认不安装像flash这种带版权的软件。所以当你浏览像youku这种带有 flash的网页时，firefox会提示你安装缺失插件，选择安装Flash插件后确实是可以显示flash了，不过你会发现，在flash上面的中文都是方框！  <br /> <br />那么说下解决方法吧：  <br /> <br />终端中输入:  <br /> <br />cd /etc/fonts/conf.d/  <br /> <br />sudo cp 49-sansserif.conf 49-sansserif.conf_backup  <br /> <br />sudo gedit ./49-sansserif.conf  <br /> <br />将其中的第1、2、4个后面的sans-serif用你自己系统中的中文字体的名字代替，  <br /> <br />比如：我的系统中安装了wqy-zenhei.ttf(文泉驿，ubuntu中文自带），我则用wqy-zenhei代替上述所说的字段，结果如下：  <br /> <br />&lt;match target=”pattern”&gt;  <br />&lt;test qual=”all” name=”family” compare=”not_eq”&gt;  <br />&lt;string&gt;wqy-zenhei&lt;/string&gt;  <br />&lt;/test&gt;  <br />&lt;test qual=”all” name=”family” compare=”not_eq”&gt;  <br />&lt;string&gt;wqy-zenhei&lt;/string&gt;  <br />&lt;/test&gt;  <br />&lt;test qual=”all” name=”family” compare=”not_eq”&gt;  <br /> <br />&lt;string&gt;monospace&lt;/string&gt;  <br /> <br />&lt;/test&gt;  <br /> <br />&lt;edit name=”family” mode=”append_last”&gt;  <br />&lt;string&gt;wqy-zenhei&lt;/string&gt;  <br />&lt;/edit&gt;  <br />&lt;/match&gt;  <br /> <br />（方法参考：<a href="http://blog.csdn.net/liujin4049/archive/2008/06/06/2518507.aspx" target="_blank">http://blog.<wbr>csdn.net/liu<wbr>jin4049/arch<wbr>ive/2008/06/<wbr>06/2518507.a<wbr>spx</wbr></wbr></wbr></wbr></wbr></a>）  <br />二、Rhythmbox中的歌曲信息乱码：  <br /> <br />先安装mutagen：sudo apt-get install python-mutagen  <br /> <br />然后转到你的MP3目录，例如我的歌曲放在系统的音乐文件夹则输入：cd /home/holmesrain（此为我的用户名，你需要换成你的用户名）/音乐  <br /> <br />执行以全命令进行转换：mid3iconv -e GBK *.mp3  <br /> <br />再用Rhythmbox重新导入歌曲文件夹就行了！  <br /> <br />（方法参考：<a href="http://hi.baidu.com/luckdst/blog/item/071bd0270fb67e0b918f9d1c.html" target="_blank">http://hi.ba<wbr>idu.com/luck<wbr>dst/blog/ite<wbr>m/071bd0270f<wbr>b67e0b918f9d<wbr>1c.html</wbr></wbr></wbr></wbr></wbr></a>）  <br />三、wine乱码：  <br /> <br />从wine的菜单中选择browse C:\Driver,进入windows文件夹，双击运行regedit.exe文件。  <br /> <br />搜索： LogPixels  <br />找到的行应该是：HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts  <br />将其中的：  <br />“LogPixels”=dword:00000060  <br />改为：  <br />“LogPixels”=dword:00000070  <br /> <br />搜索： FontSubstitutes  <br />找到的行应该是：HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes  <br />将其中的：  <br />“MS Shell Dlg”=”Tahoma”  <br />“MS Shell Dlg 2″=”Tahoma”  <br /> <br />改为：  <br />“MS Shell Dlg”=”SimSun”  <br /> <br />“MS Shell Dlg 2″=”SimSun”  <br /> <br />退出注册表就会发现一切OK了 
<h4><br /></h4><span style="COLOR: rgb(128,0,0)">ubuntu pdf乱码的终极解决办法 </span><div id="appShareOpt"></div><div id="app-share-content"><br />刚装了ubuntu8.04，发现用系统默认的Evince程序看pdf文档时，中文pdf文档打开后显示的都是乱码，上网查了一下资料，发现以下方法:<br /><br />    第一步，在线安装中文语言支持包(若安装的adobe reader,则跳过此步)：<br />         <span style="COLOR: rgb(0,153,2)">sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional</span><br />    <br />    第二步，安装完后打开pdf文档，如果发现仍然是乱码，安装poppler-data：从8.04开始，源中开始提供poppler-data安装包的支持，可以直接输入命令 <br />         <span style="COLOR: rgb(0,153,2)">sudo apt-get install poppler-data</span><br />或者去官方下载tar.gz压缩包自己安装，网址是<a href="http://poppler.freedesktop.org/" target="_blank">http://poppler.freedesktop.org/</a> ，目前最新版本为0.2，下载回来的压缩包为poppler-data-0.2.0.tar.gz，解压缩 <br />     sudo tar xzvf poppler-data-0.1.1.tar.gz -C /usr/local/ &amp;&amp; cd /usr/local/poppler*<br />安装 <br />     sudo make install datadir=/usr/share<br /><br />    第三步，在我的机器上，上一步安装完成后打开pdf文档发现中文乱码都变成方块了，于是进行第三步，删除字体(关键，否则还是为乱码)<br />        <span style="COLOR: rgb(102,1,153)">sudo rm /etc/fonts/conf.d/49-sansserif.conf</span><br />完成后再打开pdf文档，发现中文字体已经能正常显示了，至此，问题解决。</div><img src ="http://www.cppblog.com/xiwrong/aggbug/137527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:31 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GLUT库下的部分主要函数</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137526.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:29:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137526.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137526.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137526.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137526.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137526.html</trackback:ping><description><![CDATA[
		<div id="app-share-content">
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">一 、初始化</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">1</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<font color="#ff0000">void glutInit(int* argc,char** argv)</font>
						</span>
				</div>
				<div style="MARGIN-LEFT: 50.45pt; TEXT-INDENT: -12pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">这个函数用来初始化</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">GLUT</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">库。对应</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">main</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">函数的形式应是：</span>
				</div>
				<div style="MARGIN-LEFT: 38.45pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">int main(int argc,char* argv[]);</span>
				</div>
				<div style="MARGIN-LEFT: 38.45pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">这个函数从</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">main</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">函数获取其两个参数。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">2</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<font color="#ff0000">void glutInitWindowSize(int width,int height);</font>
						</span>
				</div>
				<div style="MARGIN-LEFT: 14.3pt; TEXT-INDENT: 24pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<font color="#ff0000">void glutInitWindowPosition(int x,int y);</font>
						</span>
				</div>
				<div style="MARGIN-LEFT: 38.45pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">这两个函数很好理解是设置</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">glut</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">程序要产生的窗口的大小和位置（左上角）。以像素为单位。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">3</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、<font color="#ff0000">void glutInitDisplayMode(unsigned int mode);</font></span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
						</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">设置图形显示模式。参数mode的可选值为：</span>
				</div>
				<div style="MARGIN-LEFT: 48pt; TEXT-INDENT: -48pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_RGBA</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：当未指明GLUT—RGBA或GLUT—INDEX时，是默认使用的模式。</span>
				</div>
				<div style="MARGIN-LEFT: 26.95pt; TEXT-INDENT: -3pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">表明欲建立RGBA模式的窗口。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_RGB</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：与GLUT—RGBA作用相同。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_INDEX</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：指明为颜色索引模式。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_SINGLE</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：只使用单缓存</span>
				</div>
				<div style="MARGIN-LEFT: 24pt; TEXT-INDENT: -24pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_DOUBLE</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：使用双缓存。以避免把计算机作图的过程都表现出来，或者为了平滑地实现动画。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_ACCUM</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：让窗口使用累加的缓存。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_ALPHA</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：让颜色缓冲区使用alpha组件。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_DEPTH</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：使用深度缓存。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_STENCIL</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：使用模板缓存。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_MULTISAMPLE</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：让窗口支持多例程。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_STEREO</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">：使窗口支持立体。</span>
				</div>
				<div style="MARGIN-LEFT: 24pt; TEXT-INDENT: -24pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>GLUT_LUMINACE:luminance</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">是亮度的意思。但是很遗憾，在多数OpenGL平台上，不被支持。</span>
				</div>
				<div style="MARGIN-LEFT: 24pt; TEXT-INDENT: -24pt; LINE-HEIGHT: 150%" align="center">
						<hr align="center" width="100%" size="2" />
				</div>
				<div style="MARGIN-LEFT: 24pt; TEXT-INDENT: -24pt; LINE-HEIGHT: 150%; TEXT-ALIGN: left" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">二、</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">事件处理（Event Processing）</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">1</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、<font color="#ff0000">void <wbr></wbr>glutMainLoop(void)</font></span>
				</div>
				<div style="MARGIN-LEFT: 50.3pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
						</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">让glut程序进入事件循环。在一个glut程序中最多只能调用一次。一旦调用，会直到程序结束才返回。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">2</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、<font color="#ff0000">glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height))</font></span>
				</div>
				<div style="MARGIN-LEFT: 48pt; TEXT-INDENT: -48pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
						</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">注册当前窗口的形状变化回调函数。当改变窗口大小时，该窗口的形状改变回调函数将被调用。</span>
				</div>
				<div style="MARGIN-LEFT: 48pt; TEXT-INDENT: -48pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">3</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、</span>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">glutDisplayFunc(</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">void (GLUTCALLBACK *func)(void)</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">)</span>
						</font>
				</div>
				<div style="MARGIN-LEFT: 46.65pt; TEXT-INDENT: -6pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
						</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">注册当前窗口的显示回调函数，当一个窗口的图像层需要重新绘制时，</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">GLUT</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">将调用该窗口的的显示回调函数。显示回调函数不带任何参数，它负责整个图像层的绘制。我们的大部分工作将集中在这个函数中。</span>
				</div>
				<div style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">4</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、</span>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">glutMouseFunc(</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">void (GLUTCALLBACK *func)(int button, int state, int x, int y)</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">)</span>
						</font>
				</div>
				<div style="MARGIN-LEFT: 48pt; TEXT-INDENT: -48pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
						</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">设置鼠标器按键回调函数，当鼠标的左键、右键或中键被按下时触发被注册的函数执行。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">5</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、</span>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">glutMotionFunc</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">(</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">void (GLUTCALLBACK *func)(int x, int y)</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">)</span>
						</font>
				</div>
				<div style="MARGIN-LEFT: 21pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">设置鼠标器移动回调函数，当鼠标发生移动时执行被注册的函数。</span>
				</div>
				<div style="MARGIN-LEFT: 18pt; TEXT-INDENT: -18pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">6</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、</span>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">glutKeyboardFunc</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">(</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">void (GLUTCALLBACK *func)(unsigned char key, int x, int y)</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">)</span>
						</font>
				</div>
				<div style="MARGIN-LEFT: 21pt; TEXT-INDENT: 21pt; LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">设置键盘回调函数，当键盘有键被按下是调用所注册的函数。</span>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">7</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">、</span>
						<font color="#ff0000">
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">glutIdleFunc(</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">void (GLUTCALLBACK *func)(void)</span>
								<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">)</span>
						</font>
				</div>
				<div style="LINE-HEIGHT: 150%" align="left">
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
								<wbr>
								</wbr>
						</span>
						<span style="FONT-SIZE: 12pt; LINE-HEIGHT: 150%">设置空闲回调函数，当CPU空闲时调用该函数。</span>
				</div>
		</div>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:29 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137526.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】GLUT资料</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137525.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:29:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137525.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137525.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137525.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137525.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137525.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、初始化(initialization)void glutInit(int* argc,char** argv)这个函数用来初始化GLUT库。对应main函数的形式应是：int main(int argc,char* argv[]); void glutInitWindowSize(int width,int height);void glutInitWindowPosition(int x,i...&nbsp;&nbsp;<a href='http://www.cppblog.com/xiwrong/archive/2010/12/26/137525.html'>阅读全文</a><img src ="http://www.cppblog.com/xiwrong/aggbug/137525.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:29 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137525.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】OpenGL实用工具包（GLUT）</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137524.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:26:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137524.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137524.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137524.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137524.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137524.html</trackback:ping><description><![CDATA[
		<div>
				<strong>
						<font color="#0000ff">OpenGL概览</font>
				</strong>
				<p>一个图形硬件的软件接口，包括大约250个函数，用来指定用户和操作，以创建交互式三维应用程序。也是一个独立于硬件的高效接口，可以在很多硬件平台上实现。OpenGL实用库（OpenGL Utility Library）提供了许多建模的特性，是OPenGL实现的标准组成部分。</p>
				<p>OpenGL是一个状态机，它一直处于你指定的各种状态或模式中，直到你修改这些状态为止。</p>
				<p>OpenGL渲染流水线，大多数OpenGL实现都使用相似的操作，包括顶点操作、图元装配、像素操作、纹理装配、光栅化、片元操作</p>
				<p>
						<font color="#0000ff">
								<strong>OpenGL实用工具包（GLUT）</strong>
						</font>
				</p>
				<p>简化打开窗口、检测输入等任务，用于创建复杂三维物体（如球体、圆环和茶壶）。</p>
				<p>
						<font color="#ff0000">
								<strong>1、窗口管理</strong>
						</font>
				</p>
				<p>
						<strong>glutInit(&amp;argc, argv);//初始化<br />glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);//指定模式<br />glutInitWindowPosition(100, 100);//指定窗口起始位置<br />glutInitWindowSize(250, 250);//指定大小<br />glutCreateWindow("TRIANGLE");//指定标题</strong>
				</p>
				<p>
						<strong>
								<font color="#ff0000">2、显示回调函数</font>
						</strong>
				</p>
				<p>
						<strong>glutDisplayFunc(renderScene);//重新绘制场景需要的函数</strong>
				</p>
				<p>
						<strong>glutPostRedisplay();//程序修改了窗口的内容</strong>
				</p>
				<p>
						<strong>
								<font color="#ff0000">3、运行程序</font>
						</strong>
				</p>
				<p>
						<strong>glutMainLoop();调用注册的显示回调函数</strong>
				</p>
				<p>
						<strong>
								<font color="#ff0000">4、处理输入事件</font>
						</strong>
				</p>
				<p>
						<font color="#000000">
								<strong>glutReshapeFunc(reshape);//窗口大小发生改变时应采取的措施<br />glutMouseFunc(mouse);//键盘响应<br />glutKeyboardFunc(keyb);//鼠标响应</strong>
						</font>
				</p>
				<p>
						<font color="#000000">
								<strong>glutMotionFunc(motion);/按下/鼠标并移动鼠标的响应函数</strong>
						</font>
				</p>
				<p>
						<strong>
								<font color="#ff0000">5、管理后台处理</font>
						</strong>
				</p>
				<p>
						<font color="#000000">
								<strong>glutIdleFunc(spinDisplay);</strong>
						</font>
				</p>
				<p>
						<strong>
								<font color="#ff0000">6、绘制三维物体</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#0000ff">动画</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#0000ff">通常以每秒24帧投影到屏幕来实现，运动就是重画加交换。</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#0000ff">双缓存技术，</font>
						</strong>
						<strong>
								<font color="#0000ff">伪代码如下：</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">open_window_in_double_buffer_mode();</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">for (int i=0; i&lt;1000000; i++){</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">clear_the_window();</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">draw_frame(i);</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">swap_the_buffers();</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">}</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#ff0000">实例：使用双缓存绘制的旋转正方形。（需要正确配置相关dll、lib、.h等文件，否则编译或link时会出错）</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">如图：</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">
										<span>
												<img src="https://zwjd3q.bay.livefilestore.com/y1pG_IX3dvMuRSvdTDu6H0E0ZjP-8w1xFHgquL7J1qtfjTrz19XCyVZXBXvxVRMT0bNMp3AD4SglUyu-hU-xXgbaJ-zD75kdbz1/06fb9a345b082a98d1a2d31d.jpg" />
										</span>
								</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">
										<span>
												<span>
														<img src="https://zwjd3q.bay.livefilestore.com/y1pF1gk3syO9-nsfEbtObLbm4PUDUQHWYB7QdqnYX2OKvXqg2PCMVLpQgxhwGWfetIBZetTVZGY0PDhumoWYQCC06j4MQzCqFd2/73951f34dc119b145ab5f51e.jpg" />
												</span>
										</span>
								</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">代码如下：<br />#include "stdio.h"<br />#include "stdlib.h"<br />#include "windows.h"<br />#include "GL/gl.h"<br />#include "GL/glut.h"</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">static GLfloat spin = 0.0;//</font>
								<font color="#00ffff">旋转的角度</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">void init()<br />{<br />glClearColor(0.0, 0.0, 0.0, 0.0);<br />glMatrixMode(GL_FLAT); <br />}</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">void renderScene(void) <br />{<br />glClear(GL_COLOR_BUFFER_BIT);//clear all pixels<br />glPushMatrix();<br />glRotatef(spin, 0.0, 0.0, 1.0);<br />glColor3f(1.0, 1.0, 1.0);<br />glRectf(-25.0, -25.0, 25.0, 25.0);<br />glPopMatrix();<br />glutSwapBuffers();<br />}</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">void spinDisplay(void)<br />{<br />spin = spin + 2.0; <br />if (spin &gt; 360)<br />   spin = spin -360;</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">glutPostRedisplay();<br />}</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">void reshape(int w, int h)<br />{<br />glViewport(0, 0, (GLsizei)w, (GLsizei)h);<br />glMatrixMode(GL_PROJECTION);<br />glLoadIdentity();<br />glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);<br />glMatrixMode(GL_MODELVIEW);<br />glLoadIdentity();<br />}</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">void mouse(int button, int state, int x, int y)<br />{<br />switch (button)<br />{<br />case GLUT_LEFT_BUTTON://<font color="#00ffff">左键启动<br /></font>   if (state == GLUT_DOWN)<br />    glutIdleFunc(spinDisplay);<br />   break;<br />case GLUT_RIGHT_BUTTON://<font color="#00ffff">右键停止<br /></font>   if (state == GLUT_DOWN)<br />    glutIdleFunc(NULL);<br />   break;<br />default:<br />   break;<br />}<br />}</font>
						</strong>
				</p>
				<p>
						<strong>
								<font color="#000000">//双缓存模式<br />int main(int argc, char **argv)<br />{<br />glutInit(&amp;argc, argv);<br />glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);<br />glutInitWindowPosition(100, 100);<br />glutInitWindowSize(250, 250);<br />glutCreateWindow("square");<br />init();<br />glutDisplayFunc(renderScene);<br />glutReshapeFunc(reshape);<br />glutMouseFunc(mouse);<br />glutMainLoop();<br />return 0;<br />}</font>
						</strong>
				</p>
		</div>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:26 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单文档&amp;&amp;控件</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137523.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:24:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137523.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137523.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137523.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137523.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137523.html</trackback:ping><description><![CDATA[
		<div>#pragma once<br /><font color="#ff0000">#define IDC_BUTTON 1001</font></div>
		<div>class CDialog_ControlView : public CView<br />{<br />protected: // 仅从序列化创建<br /> CDialog_ControlView();<br /> DECLARE_DYNCREATE(CDialog_ControlView)</div>
		<div>// 属性<br />public:<br /> CDialog_ControlDoc* GetDocument() const;</div>
		<div>// 操作<br />public:<br /><font color="#ff0000"> CButton m_button;</font></div>
		<div>// 重写<br />public:<br /> virtual void OnDraw(CDC* pDC);  // 重写以绘制该视图<br /> virtual BOOL PreCreateWindow(CREATESTRUCT&amp; cs);<br />protected:<br /> virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);<br /> virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);<br /> virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);</div>
		<div>// 实现<br />public:<br /> virtual ~CDialog_ControlView();<br />#ifdef _DEBUG<br /> virtual void AssertValid() const;<br /> virtual void Dump(CDumpContext&amp; dc) const;<br />#endif</div>
		<div>protected:</div>
		<div>// 生成的消息映射函数<br />protected:<br /> <font color="#ff0000">//{{AFX_MSG(CDialog_ControlView)<br /> afx_msg void OnButton();<br /> //}}AFX_MSG<br /></font> DECLARE_MESSAGE_MAP()<br />};</div>
		<div>#ifndef _DEBUG  // Dialog_ControlView.cpp 中的调试版本<br />inline CDialog_ControlDoc* CDialog_ControlView::GetDocument() const<br />   { return reinterpret_cast&lt;CDialog_ControlDoc*&gt;(m_pDocument); }<br />#endif</div>
		<div> </div>
		<div>————————————————————————————————————————————————————————————————————</div>
		<div> </div>
		<div>// Dialog_ControlView.cpp : CDialog_ControlView 类的实现<br />//</div>
		<div>#include "stdafx.h"<br />#include "Dialog_Control.h"</div>
		<div>#include "Dialog_ControlDoc.h"<br />#include "Dialog_ControlView.h"</div>
		<div>#ifdef _DEBUG<br />#define new DEBUG_NEW<br />#endif</div>
		<div>
				<br />// CDialog_ControlView</div>
		<div>IMPLEMENT_DYNCREATE(CDialog_ControlView, CView)</div>
		<div>BEGIN_MESSAGE_MAP(CDialog_ControlView, CView)<br /><font color="#ff0000"> //{{AFX_MSG_MAP(CDialog_ControlView)<br /> ON_BN_CLICKED(IDC_BUTTON, OnButton)<br /> //}}AFX_MSG_MAP</font><br /> // 标准打印命令<br /> ON_COMMAND(ID_FILE_PRINT, &amp;CView::OnFilePrint)<br /> ON_COMMAND(ID_FILE_PRINT_DIRECT, &amp;CView::OnFilePrint)<br /> ON_COMMAND(ID_FILE_PRINT_PREVIEW, &amp;CView::OnFilePrintPreview)<br /> ON_WM_SIZE()<br />END_MESSAGE_MAP()</div>
		<div>// CDialog_ControlView 构造/析构</div>
		<div>CDialog_ControlView::CDialog_ControlView()<br />{<br /> // TODO: 在此处添加构造代码</div>
		<div>}</div>
		<div>CDialog_ControlView::~CDialog_ControlView()<br />{<br />}</div>
		<div>BOOL CDialog_ControlView::PreCreateWindow(CREATESTRUCT&amp; cs)<br />{<br /> // TODO: 在此处通过修改<br /> //  CREATESTRUCT cs 来修改窗口类或样式</div>
		<div> return CView::PreCreateWindow(cs);<br />}</div>
		<div>// CDialog_ControlView 绘制</div>
		<div>void CDialog_ControlView::OnDraw(CDC* /*pDC*/)<br />{<br /> CDialog_ControlDoc* pDoc = GetDocument();<br /> ASSERT_VALID(pDoc);<br /> if (!pDoc)<br />  return;</div>
		<div> // TODO: 在此处为本机数据添加绘制代码<br /> <font color="#ff0000"> //创建按钮<br />  m_button.Create(<br />  //按钮标题<br />  "i am a dynimic button",<br />  //按钮风格<br />  WS_CHILD|WS_VISIBLE|WS_BORDER,<br />  //按钮大小<br />  CRect(300,40,500,80),<br />  //按钮父指针<br />  this,<br />  //该按钮对应的ID号<br />  IDC_BUTTON);<br /></font>}</div>
		<div>
				<br />// CDialog_ControlView 打印</div>
		<div>BOOL CDialog_ControlView::OnPreparePrinting(CPrintInfo* pInfo)<br />{<br /> // 默认准备<br /> return DoPreparePrinting(pInfo);<br />}</div>
		<div>void CDialog_ControlView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<br />{<br /> // TODO: 添加额外的打印前进行的初始化过程<br />}</div>
		<div>void CDialog_ControlView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<br />{<br /> // TODO: 添加打印后进行的清理过程<br />}</div>
		<div>
				<br />// CDialog_ControlView 诊断</div>
		<div>#ifdef _DEBUG<br />void CDialog_ControlView::AssertValid() const<br />{<br /> CView::AssertValid();<br />}</div>
		<div>void CDialog_ControlView::Dump(CDumpContext&amp; dc) const<br />{<br /> CView::Dump(dc);<br />}</div>
		<div>CDialog_ControlDoc* CDialog_ControlView::GetDocument() const // 非调试版本是内联的<br />{<br /> ASSERT(m_pDocument-&gt;IsKindOf(RUNTIME_CLASS(CDialog_ControlDoc)));<br /> return (CDialog_ControlDoc*)m_pDocument;<br />}<br />#endif //_DEBUG</div>
		<div>
				<br />// CDialog_ControlView 消息处理程序<br /><font color="#ff0000">void CDialog_ControlView::OnButton()<br />{<br /> MessageBox("okk");<br />}</font><br /></div>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137523.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:24 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137523.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows OpenGL 初始模板</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137521.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:23:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137521.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137521.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137521.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137521.html</trackback:ping><description><![CDATA[
		<p> </p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #008080">  1</span> <span style="COLOR: #008000">//</span><span style="COLOR: #008000"> WindowsOpengl33.cpp : 定义应用程序的入口点。<br /></span><span style="COLOR: #008080">  2</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//<br /></span><span style="COLOR: #008080">  3</span> <span style="COLOR: #008000"></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000"> WIN32_LEAN_AND_MEAN</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">  4</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdafx.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">  5</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">WindowsOpengl33.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">  6</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Windows.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">  7</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">gl</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">gl.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">  8</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">gl</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">glu.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">  9</span> <span style="COLOR: #000000">#include </span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">gl</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">glaux.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 10</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 11</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000"> angle </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 12</span> <span style="COLOR: #000000">HDC g_HDC;<br /></span><span style="COLOR: #008080"> 13</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000"> fullScreen </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 14</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">为设备环境设置像素格式的函数</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 15</span> <span style="COLOR: #008000"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> SetupPixelFormat(HDC hDC)<br /></span><span style="COLOR: #008080"> 16</span> <span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 17</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> nPixelFormat;<br /></span><span style="COLOR: #008080"> 18</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> PIXELFORMATDESCRIPTOR pfd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080"> 19</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(PIXELFORMATDESCRIPTOR),<br /></span><span style="COLOR: #008080"> 20</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 21</span> <span style="COLOR: #000000">  PFD_DRAW_TO_WINDOW </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 22</span> <span style="COLOR: #000000">  PFD_SUPPORT_OPENGL </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 23</span> <span style="COLOR: #000000">  PFD_DOUBLEBUFFER,<br /></span><span style="COLOR: #008080"> 24</span> <span style="COLOR: #000000">  PFD_TYPE_RGBA,<br /></span><span style="COLOR: #008080"> 25</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 26</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 27</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 28</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 29</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 30</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 31</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 32</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 33</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 34</span> <span style="COLOR: #000000">  PFD_MAIN_PLANE,<br /></span><span style="COLOR: #008080"> 35</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080"> 36</span> <span style="COLOR: #000000">  </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080"> 37</span> <span style="COLOR: #000000"> };<br /></span><span style="COLOR: #008080"> 38</span> <span style="COLOR: #000000"> nPixelFormat </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> ChoosePixelFormat(hDC, </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">pfd);<br /></span><span style="COLOR: #008080"> 39</span> <span style="COLOR: #000000"> SetPixelFormat(hDC, nPixelFormat, </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">pfd);<br /></span><span style="COLOR: #008080"> 40</span> <span style="COLOR: #000000">}<br /></span><span style="COLOR: #008080"> 41</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 此代码模块中包含的函数的前向声明:</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080"> 42</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);<br /></span><span style="COLOR: #008080"> 43</span> <span style="COLOR: #000000"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> WINAPI WinMain(HINSTANCE hInstance,<br /></span><span style="COLOR: #008080"> 44</span> <span style="COLOR: #000000">                     HINSTANCE hPrevInstance,<br /></span><span style="COLOR: #008080"> 45</span> <span style="COLOR: #000000">                     LPTSTR    lpCmdLine,<br /></span><span style="COLOR: #008080"> 46</span> <span style="COLOR: #000000">                     </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">       nShowCmd)<br /></span><span style="COLOR: #008080"> 47</span> <span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 48</span> <span style="COLOR: #000000"> WNDCLASSEX windowClass;<br /></span><span style="COLOR: #008080"> 49</span> <span style="COLOR: #000000"> HWND hwnd;<br /></span><span style="COLOR: #008080"> 50</span> <span style="COLOR: #000000"> MSG msg;<br /></span><span style="COLOR: #008080"> 51</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000"> done;<br /></span><span style="COLOR: #008080"> 52</span> <span style="COLOR: #000000"> DWORD dwExStyle;<br /></span><span style="COLOR: #008080"> 53</span> <span style="COLOR: #000000"> DWORD dwStyle;<br /></span><span style="COLOR: #008080"> 54</span> <span style="COLOR: #000000"> RECT windowRect;<br /></span><span style="COLOR: #008080"> 55</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> width </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">800</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 56</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> height </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">600</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 57</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> bits </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">32</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 58</span> <span style="COLOR: #000000"> windowRect.left </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 59</span> <span style="COLOR: #000000"> windowRect.right </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)width;<br /></span><span style="COLOR: #008080"> 60</span> <span style="COLOR: #000000"> windowRect.top </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 61</span> <span style="COLOR: #000000"> windowRect.bottom </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> (</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">)height;<br /></span><span style="COLOR: #008080"> 62</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080"> 63</span> <span style="COLOR: #000000"> windowClass.cbSize </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(WNDCLASSEX);<br /></span><span style="COLOR: #008080"> 64</span> <span style="COLOR: #000000"> windowClass.style </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CS_HREDRAW </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> CS_VREDRAW;<br /></span><span style="COLOR: #008080"> 65</span> <span style="COLOR: #000000"> windowClass.lpfnWndProc </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> WndProc;<br /></span><span style="COLOR: #008080"> 66</span> <span style="COLOR: #000000"> windowClass.cbClsExtra </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 67</span> <span style="COLOR: #000000"> windowClass.cbWndExtra </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 68</span> <span style="COLOR: #000000"> windowClass.hInstance </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> hInstance;<br /></span><span style="COLOR: #008080"> 69</span> <span style="COLOR: #000000"> windowClass.hIcon </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> LoadIcon(NULL, IDI_APPLICATION);<br /></span><span style="COLOR: #008080"> 70</span> <span style="COLOR: #000000"> windowClass.hCursor </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> LoadCursor(NULL, IDC_ARROW);<br /></span><span style="COLOR: #008080"> 71</span> <span style="COLOR: #000000"> windowClass.hbrBackground </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /></span><span style="COLOR: #008080"> 72</span> <span style="COLOR: #000000"> windowClass.lpszMenuName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /></span><span style="COLOR: #008080"> 73</span> <span style="COLOR: #000000"> windowClass.lpszClassName </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MyClass</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 74</span> <span style="COLOR: #000000"> windowClass.hIconSm </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> LoadIcon(NULL, IDI_WINLOGO);<br /></span><span style="COLOR: #008080"> 75</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">RegisterClassEx(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">windowClass))<br /></span><span style="COLOR: #008080"> 76</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 77</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(fullScreen)<br /></span><span style="COLOR: #008080"> 78</span> <span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080"> 79</span> <span style="COLOR: #000000">  DEVMODE dmScreenSettings;<br /></span><span style="COLOR: #008080"> 80</span> <span style="COLOR: #000000">  memset(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">dmScreenSettings, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(dmScreenSettings));<br /></span><span style="COLOR: #008080"> 81</span> <span style="COLOR: #000000">  dmScreenSettings.dmSize </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">(dmScreenSettings);<br /></span><span style="COLOR: #008080"> 82</span> <span style="COLOR: #000000">  dmScreenSettings.dmPelsWidth </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> width;<br /></span><span style="COLOR: #008080"> 83</span> <span style="COLOR: #000000">  dmScreenSettings.dmPelsHeight </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> height;<br /></span><span style="COLOR: #008080"> 84</span> <span style="COLOR: #000000">  dmScreenSettings.dmBitsPerPel </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> bits;<br /></span><span style="COLOR: #008080"> 85</span> <span style="COLOR: #000000">  dmScreenSettings.dmFields </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> DM_BITSPERPEL </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> DM_PELSWIDTH </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> DM_PELSHEIGHT;<br /></span><span style="COLOR: #008080"> 86</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(ChangeDisplaySettings(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">dmScreenSettings, CDS_FULLSCREEN) </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> <br /></span><span style="COLOR: #008080"> 87</span> <span style="COLOR: #000000">               DISP_CHANGE_SUCCESSFUL)<br /></span><span style="COLOR: #008080"> 88</span> <span style="COLOR: #000000">  {<br /></span><span style="COLOR: #008080"> 89</span> <span style="COLOR: #000000">   MessageBox(NULL, </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Display mode failed</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, NULL, MB_OK);<br /></span><span style="COLOR: #008080"> 90</span> <span style="COLOR: #000000">   fullScreen </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 91</span> <span style="COLOR: #000000">  }<br /></span><span style="COLOR: #008080"> 92</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080"> 93</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(fullScreen)<br /></span><span style="COLOR: #008080"> 94</span> <span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080"> 95</span> <span style="COLOR: #000000">  dwExStyle </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> WS_EX_APPWINDOW;<br /></span><span style="COLOR: #008080"> 96</span> <span style="COLOR: #000000">  dwStyle </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> WS_POPUP;<br /></span><span style="COLOR: #008080"> 97</span> <span style="COLOR: #000000">  ShowCursor(</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080"> 98</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080"> 99</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">100</span> <span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080">101</span> <span style="COLOR: #000000">  dwExStyle </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> NULL;<br /></span><span style="COLOR: #008080">102</span> <span style="COLOR: #000000">  dwStyle </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> WS_OVERLAPPEDWINDOW </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> WS_VISIBLE </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> WS_SYSMENU </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> WS_CLIPCHILDREN </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> WS_CLIPSIBLINGS;<br /></span><span style="COLOR: #008080">103</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080">104</span> <span style="COLOR: #000000"> AdjustWindowRectEx(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">windowRect, dwStyle, FALSE, dwExStyle);<br /></span><span style="COLOR: #008080">105</span> <span style="COLOR: #000000"> hwnd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> CreateWindowEx(NULL,<br /></span><span style="COLOR: #008080">106</span> <span style="COLOR: #000000">      </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">MyClass</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080">107</span> <span style="COLOR: #000000">      </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">The OpenGl Window Application</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080">108</span> <span style="COLOR: #000000">      WS_OVERLAPPEDWINDOW </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> WS_VISIBLE </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">109</span> <span style="COLOR: #000000">      WS_SYSMENU </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> WS_CLIPCHILDREN </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">110</span> <span style="COLOR: #000000">      WS_CLIPSIBLINGS,<br /></span><span style="COLOR: #008080">111</span> <span style="COLOR: #000000">      </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,<br /></span><span style="COLOR: #008080">112</span> <span style="COLOR: #000000">      windowRect.right </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> windowRect.left, <br /></span><span style="COLOR: #008080">113</span> <span style="COLOR: #000000">      windowRect.bottom </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> windowRect.top,<br /></span><span style="COLOR: #008080">114</span> <span style="COLOR: #000000">      NULL,<br /></span><span style="COLOR: #008080">115</span> <span style="COLOR: #000000">      NULL,<br /></span><span style="COLOR: #008080">116</span> <span style="COLOR: #000000">      hInstance,<br /></span><span style="COLOR: #008080">117</span> <span style="COLOR: #000000">      NULL);<br /></span><span style="COLOR: #008080">118</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">hwnd)<br /></span><span style="COLOR: #008080">119</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">120</span> <span style="COLOR: #000000"> ShowWindow(hwnd, SW_SHOW);<br /></span><span style="COLOR: #008080">121</span> <span style="COLOR: #000000"> UpdateWindow(hwnd);<br /></span><span style="COLOR: #008080">122</span> <span style="COLOR: #000000"> done </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">123</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">done)<br /></span><span style="COLOR: #008080">124</span> <span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080">125</span> <span style="COLOR: #000000">  PeekMessage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">msg, hwnd, NULL, NULL, PM_REMOVE);<br /></span><span style="COLOR: #008080">126</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(msg.message </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> WM_QUIT)<br /></span><span style="COLOR: #008080">127</span> <span style="COLOR: #000000">  {<br /></span><span style="COLOR: #008080">128</span> <span style="COLOR: #000000">   done </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">129</span> <span style="COLOR: #000000">  }<br /></span><span style="COLOR: #008080">130</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/images/dot.gif" />..Draw<img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">131</span> <span style="COLOR: #008000">       </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">1.创建RC、关联RC与DC<img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" />.WM_CREATE 中进行设置<br /></span><span style="COLOR: #008080">132</span> <span style="COLOR: #008000">       </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">2.做具体的绘图工作 myDrawScene()<img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" />.以下将进行<br /></span><span style="COLOR: #008080">133</span> <span style="COLOR: #008000">       </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">3.SwapBuffers(m_pDC-&gt;m_hDC) 把RC绘制的传到当前的DC上<img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" />以下将进行<br /></span><span style="COLOR: #008080">134</span> <span style="COLOR: #008000">       </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">4.释放RC，以便其他的DC使用<img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" /><img src="http://www.cppblog.com/images/dot.gif" />..WM_CLOSE 中进行设置</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">135</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">  {<br /></span><span style="COLOR: #008080">136</span> <span style="COLOR: #000000">   glClear(GL_COLOR_BUFFER_BIT </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> GL_DEPTH_BUFFER_BIT);<br /></span><span style="COLOR: #008080">137</span> <span style="COLOR: #000000">   glLoadIdentity();<br /></span><span style="COLOR: #008080">138</span> <span style="COLOR: #000000">   angle </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0.1f</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">139</span> <span style="COLOR: #000000">   </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(angle </span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">360.0f</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">140</span> <span style="COLOR: #000000">    angle </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">141</span> <span style="COLOR: #000000">   glTranslatef(</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">5.0f</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">142</span> <span style="COLOR: #000000">   glRotatef(angle, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">143</span> <span style="COLOR: #000000">   glColor3f(</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">144</span> <span style="COLOR: #000000">   glBegin(GL_TRIANGLES);<br /></span><span style="COLOR: #008080">145</span> <span style="COLOR: #000000">    glVertex3f(</span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">146</span> <span style="COLOR: #000000">    glVertex3f(</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">147</span> <span style="COLOR: #000000">    glVertex3f(</span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0.0f</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">148</span> <span style="COLOR: #000000">   glEnd();<br /></span><span style="COLOR: #008080">149</span> <span style="COLOR: #000000">   SwapBuffers(g_HDC);<br /></span><span style="COLOR: #008080">150</span> <span style="COLOR: #000000">   TranslateMessage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">msg);<br /></span><span style="COLOR: #008080">151</span> <span style="COLOR: #000000">   DispatchMessage(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">msg);<br /></span><span style="COLOR: #008080">152</span> <span style="COLOR: #000000">  }<br /></span><span style="COLOR: #008080">153</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080">154</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(fullScreen)<br /></span><span style="COLOR: #008080">155</span> <span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080">156</span> <span style="COLOR: #000000">  ChangeDisplaySettings(NULL, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">157</span> <span style="COLOR: #000000">  ShowCursor(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">158</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080">159</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> msg.wParam;<br /></span><span style="COLOR: #008080">160</span> <span style="COLOR: #000000">}<br /></span><span style="COLOR: #008080">161</span> <span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">162</span> <span style="COLOR: #000000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">  函数: WndProc(HWND, UINT, WPARAM, LPARAM)<br /></span><span style="COLOR: #008080">163</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">164</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">  目的: 处理主窗口的消息。<br /></span><span style="COLOR: #008080">165</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">166</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">  WM_COMMAND - 处理应用程序菜单<br /></span><span style="COLOR: #008080">167</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">  WM_PAINT - 绘制主窗口<br /></span><span style="COLOR: #008080">168</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">  WM_DESTROY - 发送退出消息并返回<br /></span><span style="COLOR: #008080">169</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">170</span> <span style="COLOR: #008000"></span><span style="COLOR: #008000">//<br /></span><span style="COLOR: #008080">171</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)<br /></span><span style="COLOR: #008080">172</span> <span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">173</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> HGLRC hRC;<br /></span><span style="COLOR: #008080">174</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> HDC hDC;<br /></span><span style="COLOR: #008080">175</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">[] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello world!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">176</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> width, height;<br /></span><span style="COLOR: #008080">177</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000"> (message)<br /></span><span style="COLOR: #008080">178</span> <span style="COLOR: #000000"> {<br /></span><span style="COLOR: #008080">179</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> WM_CREATE:<br /></span><span style="COLOR: #008080">180</span> <span style="COLOR: #000000">  hDC </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> GetDC(hWnd);<br /></span><span style="COLOR: #008080">181</span> <span style="COLOR: #000000">  g_HDC </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> hDC;<br /></span><span style="COLOR: #008080">182</span> <span style="COLOR: #000000">  SetupPixelFormat(hDC);<br /></span><span style="COLOR: #008080">183</span> <span style="COLOR: #000000">  hRC </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> wglCreateContext(hDC);  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">创建RC</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">184</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">  wglMakeCurrent(hDC, hRC);   </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">关联RC</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">185</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">186</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">187</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> WM_CLOSE:<br /></span><span style="COLOR: #008080">188</span> <span style="COLOR: #000000">  wglMakeCurrent(hDC, NULL);   </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">释放与hDC对应的RC</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">189</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">  wglDeleteContext(hRC);    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">删除RC</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">190</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">  PostQuitMessage(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">191</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">192</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">193</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000"> WM_SIZE:<br /></span><span style="COLOR: #008080">194</span> <span style="COLOR: #000000">  height </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> HIWORD(lParam);<br /></span><span style="COLOR: #008080">195</span> <span style="COLOR: #000000">  width </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> LOWORD(lParam);<br /></span><span style="COLOR: #008080">196</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(height </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">197</span> <span style="COLOR: #000000">   height </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">198</span> <span style="COLOR: #000000">  glViewport(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, width, height);<br /></span><span style="COLOR: #008080">199</span> <span style="COLOR: #000000">  glMatrixMode(GL_PROJECTION);<br /></span><span style="COLOR: #008080">200</span> <span style="COLOR: #000000">  glLoadIdentity();<br /></span><span style="COLOR: #008080">201</span> <span style="COLOR: #000000">  </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">计算窗口尺寸比例</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">202</span> <span style="COLOR: #008000"></span><span style="COLOR: #000000">  gluPerspective(</span><span style="COLOR: #000000">45.0f</span><span style="COLOR: #000000">, (GLfloat)width</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(GLfloat)height, </span><span style="COLOR: #000000">1.0f</span><span style="COLOR: #000000"> ,</span><span style="COLOR: #000000">1000.0f</span><span style="COLOR: #000000">);<br /></span><span style="COLOR: #008080">203</span> <span style="COLOR: #000000">  glMatrixMode(GL_MODELVIEW);<br /></span><span style="COLOR: #008080">204</span> <span style="COLOR: #000000">  glLoadIdentity();<br /></span><span style="COLOR: #008080">205</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">206</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">207</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">:<br /></span><span style="COLOR: #008080">208</span> <span style="COLOR: #000000">  </span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">209</span> <span style="COLOR: #000000"> }<br /></span><span style="COLOR: #008080">210</span> <span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">(DefWindowProc(hWnd, message, wParam, lParam));<br /></span><span style="COLOR: #008080">211</span> <span style="COLOR: #000000">}<br /></span><span style="COLOR: #008080">212</span> <span style="COLOR: #000000"></span></div>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:23 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MessageBox 用法</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137520.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:21:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137520.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137520.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137520.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137520.html</trackback:ping><description><![CDATA[
		<font face="宋体" color="#323e32">      int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL,<br /> UINT nType = MB_OK );<br />参数:<br />lpszText: 消息正文<br />lpszCaption:消息框标题(默认没有)<br />nType:消息框的风格<br /><br />nType取值：<br />1.消息框的风格<br /> ? MB_ICONQUESTION<br /> ! MB_ICONWARNING<br /> X MB_ICONHAND or MB_ICONSTOP<br /> i MB_ICONINFORMATION<br />2.Button Array：<br /> 按钮 消息框类型<br /><br /> [YES] [NO] MB_YESNO<br /> [YES][NO][CANCEL] MB_YESNOCANCEL<br /> [RETRY][CANCEL] MB_RETRYCANCEL<br /> [OK] MB_OK<br /> [OK][CANCEL] MB_OKCANCEL<br /> [ABORT][RETRY][IGNORE] MB_ABORTRETRYIGNORE<br /> (想在弹出的对话框中显示的按钮，默认为MB_OK)<br /><br />Return Values of MessageBox:<br /> Value Meaning<br /><br />IDABORT Abort button was selected.<br />IDCANCEL Cancel button was selected.<br />IDIGNORE Ignore button was selected<br />IDNO No button was selected.<br />IDOK OK button was selected<br />IDRETRY Retry button was selected.<br />IDYES Yes button was selected<br /><br />nType中可以组合使用， for examble:<br />...<br />int iRes = MessageBox("你看见消息框了吗?","测试",MB_YESNO | MB_ICONWARNING);<br /> if( iRes == IDYES )<br /> MessageBox("看见了就好!");</font>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:21 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CString char string等的相互转换</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137519.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:20:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137519.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137519.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137519.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137519.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137519.html</trackback:ping><description><![CDATA[
		<div>
				<span class="Apple-style-span" style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; WIDOWS: 2; ORPHANS: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">
						<span class="Apple-style-span" style="FONT-SIZE: 14px; COLOR: rgb(50,62,50); LINE-HEIGHT: 21px; FONT-FAMILY: simsun, 宋体, sans-serif; TEXT-ALIGN: left">
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 20px auto 10px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<span style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: 微软雅黑, 黑体, Arial, Helvetica, sans-serif; WORD-WRAP: normal">
												<font style="FONT-SIZE: 24px; WORD-BREAK: normal; LINE-HEIGHT: 36px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString char string等的相互转换</font>
										</span>
								</p>
								<div>
										<div>
												<div>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString 转char *</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString cstr;</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char *p = (LPSTR)(LPCTSTR)cstr;</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">string 转 CString<br />CString.format(”%s”, string.c_str());</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char 转 CString<br />CString.format(”%s”, char*);</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char 转 string<br />string s(char *);</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">string 转 char *<br />char *p = string.c_str();</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString 转 string<br />string s(CString.GetBuffer());</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">1，string -&gt; CString<br />CString.format(”%s”, string.c_str());<br />用c_str()确实比da<wbr>ta()要好.<br />2，char -&gt; string<br />string s(char *);<br />只能初始化，在不是初始化的地方最好还是用assign().<br />3,CString -&gt; string<br />string s(CString.GetBuffer());<br />GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.</wbr></font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">《C++标准函数库》中说的<br />有三个函数可以将字符串的内容转换为字符数组和C―string<br />1.da<wbr>ta(),返回没有”\0“的字符串数组<br />2,c_str()，返回有”\0“的字符串数组<br />3，copy()</wbr></font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">―――――――――――――――――――――</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString与int、char*、char[100]之间的转换- -</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString与int、char*、char[100]之间的转换- -</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString互转int</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">将字符转换为整数，可以使用atoi、_atoi64或atol。<br />而将数字转换为CString变量，可以使用CString的Format函数。如<br />CString s;<br />int i = 64;<br />s.Format(”%d”, i)<br />Format函数的功能很强，值得你研究一下。</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">void CStrDlg::On<wbr>Button1()<br />{<br />// TODO: Add your control notification handler co<wbr>de here<br />CString<br />ss=”1212.12″;<br />int temp=atoi(ss);<br />CString aa;<br />aa.Format(”%d”,temp);<br />AfxMessageBox(”var is ” + aa);<br />}</wbr></wbr></font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">sart.Format(”%s”,buf);</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString互转char*</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">///char * TO cstring<br />CString strtest;<br />char * charpoint;<br />charpoint=”give string a value”;<br />strtest=charpoint;</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">///cstring TO char *</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString 转char *</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString cstr;</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char *p = (LPSTR)(LPCTSTR)cstr;</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">string 转 CString<br />CString.format(”%s”, string.c_str());</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char 转 CString<br />CString.format(”%s”, char*);</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char 转 string<br />string s(char *);</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">string 转 char *<br />char *p = string.c_str();</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString 转 string<br />string s(CString.GetBuffer());</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">1，string -&gt; CString<br />CString.format(”%s”, string.c_str());<br />用c_str()确实比da<wbr>ta()要好.<br />2，char -&gt; string<br />string s(char *);<br />只能初始化，在不是初始化的地方最好还是用assign().<br />3,CString -&gt; string<br />string s(CString.GetBuffer());<br />GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.</wbr></font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">《C++标准函数库》中说的<br />有三个函数可以将字符串的内容转换为字符数组和C―string<br />1.da<wbr>ta(),返回没有”\0“的字符串数组<br />2,c_str()，返回有”\0“的字符串数组<br />3，copy()</wbr></font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">―――――――――――――――――――――</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString与int、char*、char[100]之间的转换- -</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString与int、char*、char[100]之间的转换- -</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString互转int</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">将字符转换为整数，可以使用atoi、_atoi64或atol。<br />而将数字转换为CString变量，可以使用CString的Format函数。如<br />CString s;<br />int i = 64;<br />s.Format(”%d”, i)<br />Format函数的功能很强，值得你研究一下。</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">void CStrDlg::On<wbr>Button1()<br />{<br />// TODO: Add your control notification handler co<wbr>de here<br />CString<br />ss=”1212.12″;<br />int temp=atoi(ss);<br />CString aa;<br />aa.Format(”%d”,temp);<br />AfxMessageBox(”var is ” + aa);<br />}</wbr></wbr></font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">sart.Format(”%s”,buf);</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString互转char*</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">///char * TO cstring<br />CString strtest;<br />char * charpoint;<br />charpoint=”give string a value”;<br />strtest=charpoint;</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">///cstring TO char *<br />charpoint=strtest.GetBuffer(strtest.GetLength());</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">标准C里没有string,char *==char []==string</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *，用操作符（LPCSTR）CString就可以了。</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString转换 char[100]</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char a[100];<br />CString str(”aaaaaa”);<br />strncpy(a,(LPCTSTR)str,sizeof(a));</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<br />
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">charpoint=strtest.GetBuffer(strtest.GetLength());</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">标准C里没有string,char *==char []==string</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *，用操作符（LPCSTR）CString就可以了。</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">CString转换 char[100]</font>
														</p>
														<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
																<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">char a[100];<br />CString str(”aaaaaa”);<br />strncpy(a,(LPCTSTR)str,sizeof(a));</font>
														</p>
												</div>
										</div>
								</div>
						</span>
				</span>
		</div>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:20 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VC++ 键盘映射</title><link>http://www.cppblog.com/xiwrong/archive/2010/12/26/137518.html</link><dc:creator>xiwrong</dc:creator><author>xiwrong</author><pubDate>Sun, 26 Dec 2010 14:18:00 GMT</pubDate><guid>http://www.cppblog.com/xiwrong/archive/2010/12/26/137518.html</guid><wfw:comment>http://www.cppblog.com/xiwrong/comments/137518.html</wfw:comment><comments>http://www.cppblog.com/xiwrong/archive/2010/12/26/137518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xiwrong/comments/commentRss/137518.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xiwrong/services/trackbacks/137518.html</trackback:ping><description><![CDATA[
		<div>
				<span class="Apple-style-span" style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; WIDOWS: 2; ORPHANS: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">
						<span class="Apple-style-span" style="FONT-SIZE: 14px; COLOR: rgb(50,62,50); LINE-HEIGHT: 21px; FONT-FAMILY: simsun, 宋体, sans-serif; TEXT-ALIGN: left">
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">
												<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; WORD-WRAP: normal" color="#00cc99">void CEXForKeyDlg::OnButtonStart()<br /></font>{<br /> <wbr>// TODO: Add your control notification handler code here<br /> <wbr>CString str="start this game for debugging.\r\n";<br /> <wbr>ShowInfo(str);<br />}</wbr></wbr></wbr></font>
								</p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal"> <wbr></wbr></p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">
												<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; WORD-WRAP: normal" color="#00ff66">void CEXForKeyDlg::OnButtonEnd()<br /></font>{<br /> <wbr>// TODO: Add your control notification handler code here<br /> <wbr>CString str="end this game for debugging.\r\n";<br /> <wbr>ShowInfo(str);<br />}</wbr></wbr></wbr></font>
								</p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">
												<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; WORD-WRAP: normal" color="#ccff33">void CEXForKeyDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)<br /></font>{<br /> <wbr>// TODO: Add your message handler code here and/or call default<br /> <wbr>switch(nChar)<br /> <wbr>{<br /> <wbr>case 'S':<br /> <wbr> <wbr>if(!m_bCheckKey[0])<br /> <wbr> <wbr>{<br /> <wbr> <wbr> <wbr>OnButtonStart();<br /> <wbr> <wbr> <wbr>m_bCheckKey[0]=TRUE; <wbr> <wbr><br /> <wbr> <wbr>}<br /> <wbr> <wbr>break;<br /> <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></font>
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal"> <wbr>CDialog::OnKeyDown(nChar, nRepCnt, nFlags);<br />}</wbr></font>
								</p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">
												<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; WORD-WRAP: normal" color="#99cc00">void CEXForKeyDlg::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)<br /></font>{<br /> <wbr>// TODO: Add your message handler code here and/or call default<br /> <wbr>switch(nChar)<br /> <wbr>{<br /> <wbr>case 'S':OnButtonEnd();m_bCheckKey[0]=FALSE;break;<br /> <wbr> <wbr>}<br /> <wbr>CDialog::OnKeyUp(nChar, nRepCnt, nFlags);<br />}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></font>
								</p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal"> <wbr></wbr></p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">
												<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; WORD-WRAP: normal" color="#666666">BOOL CEXForKeyDlg::PreTranslateMessage(MSG* pMsg)<br /></font>{<br /> <wbr>// TODO: Add your specialized code here and/or call the base class<br /> <wbr>if(pMsg-&gt;message==WM_KEYDOWN)<br /> <wbr>{ <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr><br /> <wbr> <wbr>SendMessage(pMsg-&gt;message, pMsg-&gt;wParam, pMsg-&gt;lParam);<br /> <wbr> <wbr>return true; <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr><br /> <wbr>}<br /> <wbr>else if(pMsg-&gt;message==WM_KEYUP)<br /> <wbr>{ <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr><br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr><span class="Apple-converted-space"> </span>SendMessage(pMsg-&gt;message, pMsg-&gt;wParam, pMsg-&gt;lParam);<br /> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr><span class="Apple-converted-space"> </span>return true; <wbr> <wbr> <wbr> <wbr> <wbr> <wbr> <wbr><br /> <wbr> <wbr> <wbr><span class="Apple-converted-space"> </span>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></font>
								</p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal"> <wbr>return CDialog::PreTranslateMessage(pMsg);<br />}</wbr></font>
								</p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">
										<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; FONT-FAMILY: Verdana; WORD-WRAP: normal">
												<font style="WORD-BREAK: normal; LINE-HEIGHT: 21px; WORD-WRAP: normal" color="#666600">void CEXForKeyDlg::ShowInfo(const CString&amp; str)<br /></font>{<br /> <wbr>m_strEditShow+=str;<br /> <wbr>GetDlgItem(IDC_EDITSHOW)-&gt;SetWindowText(m_strEditShow);<br /> <wbr>CEdit * output=(CEdit *)GetDlgItem(IDC_EDITSHOW);<br /> <wbr>output-&gt;LineScroll(output-&gt;GetLineCount());<br />}</wbr></wbr></wbr></wbr></font>
								</p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal"> <wbr></wbr></p>
								<p style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px 0px 5px; WORD-BREAK: normal; LINE-HEIGHT: 21px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none; BORDER-RIGHT-WIDTH: 0px; WORD-WRAP: normal">ESC键 VK_ESCAPE (27)<br />回车键： VK_RETURN (13)<br />TAB键： VK_TAB (9)<br />Caps Lock键： VK_CAPITAL (20)<br />Shift键： VK_SHIFT ()<br />Ctrl键： VK_CONTROL (17)<br />Alt键： VK_MENU (18)<br />空格键： VK_SPACE (/32)<br />退格键： VK_BACK (8)<br />左徽标键： VK_LWIN (91)<br />右徽标键： VK_LWIN (92)<br />鼠标右键快捷键：VK_APPS (93)<br />Insert键： VK_INSERT (45)<br />Home键： VK_HOME (36)<br />Page Up： VK_PRIOR (33)<br />PageDown： VK_NEXT (34)<br />End键： VK_END (35)<br />Delete键： VK_DELETE (46)<br />方向键(←)： VK_LEFT (37)<br />方向键(↑)： VK_UP (38)<br />方向键(→)： VK_RIGHT (39)<br />方向键(↓)： VK_DOWN (40)<br />F1键： VK_F1 (112)<br />F2键： VK_F2 (113)<br />F3键： VK_F3 (114)<br />F4键： VK_F4 (115)<br />F5键： VK_F5 (116)<br />F6键： VK_F6 (117)<br />F7键： VK_F7 (118)<br />F8键： VK_F8 (119)<br />F9键： VK_F9 (120)<br />F10键： VK_F10 (121)<br />F11键： VK_F11 (122)<br />F12键： VK_F12 (123)<br />Num Lock键： VK_NUMLOCK (144)<br />小键盘0： VK_NUMPAD0 (96)<br />小键盘1： VK_NUMPAD1 (97)<br />小键盘2： VK_NUMPAD2 (98)<br />小键盘3： VK_NUMPAD3 (99)<br />小键盘4： VK_NUMPAD4 (100)<br />小键盘5： VK_NUMPAD5 (101)<br />小键盘6： VK_NUMPAD6 (102)<br />小键盘7： VK_NUMPAD7 (103)<br />小键盘8： VK_NUMPAD8 (104)<br />小键盘9： VK_NUMPAD9 (105)<br />小键盘.： VK_DECIMAL (110)<br />小键盘*： VK_MULTIPLY (106)<br />小键盘+： VK_MULTIPLY (107)<br />小键盘-： VK_SUBTRACT (109)<br />小键盘/： VK_DIVIDE (111)<br />Pause Break键： VK_PAUSE (19)<br />Scroll Lock键： VK_SCROLL (145)</p>
						</span>
				</span>
		</div>
<img src ="http://www.cppblog.com/xiwrong/aggbug/137518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xiwrong/" target="_blank">xiwrong</a> 2010-12-26 22:18 <a href="http://www.cppblog.com/xiwrong/archive/2010/12/26/137518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>