?? console_wnd.htm
字號(hào):
<p class=MsoNormalIndent><span lang=EN-US>nID</span><span style='font-family:
宋體'>:窗口</span><span lang=EN-US>ID</span><span style='font-family:宋體'>。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>iTabSize</span><span
style='font-family:宋體'>:指定</span><span lang=EN-US>TAB</span><span
style='font-family:宋體'>字符所對(duì)應(yīng)的空格寬度。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>iFontSize</span><span
style='font-family:宋體'>:字符大小,此數(shù)字將會(huì)直接傳遞到</span><span lang=EN-US>CFont::CreatePointFont</span><span
style='font-family:宋體'>進(jìn)行字體創(chuàng)建。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>iWidthBuf</span><span
style='font-family:宋體'>:窗口每行顯示的字符數(shù)。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>iHeightBuf</span><span
style='font-family:宋體'>:窗口保存的的行數(shù)。</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>窗口一旦創(chuàng)建后,會(huì)在對(duì)象內(nèi)部創(chuàng)建</span><span
lang=EN-US>iWidthBuf</span><span style='font-family:宋體'>×</span><span
lang=EN-US>iHeightBuf</span><span style='font-family:宋體'>字節(jié)的緩沖區(qū)來保存窗口中需要顯示的文字內(nèi)容。對(duì)應(yīng)各行各列的字符(行列序號(hào)從</span><span
lang=EN-US>0</span><span style='font-family:宋體'>開始計(jì)算)。計(jì)算方法如下:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>value</span><span style='font-family:
宋體'>【</span><span lang=EN-US>column</span><span style='font-family:宋體'>,</span><span
lang=EN-US>row</span><span style='font-family:宋體'>】=</span><span lang=EN-US>buffer</span><span
style='font-family:宋體'>【</span><span lang=EN-US>column</span><span
style='font-family:宋體'>+</span><span lang=EN-US>row</span><span
style='font-family:宋體'>×</span><span lang=EN-US>iWidthHeight</span><span
style='font-family:宋體'>】</span></p>
<h2 style='margin-left:40.9pt'><a name="_Toc49144663"><span lang=EN-US>2.3<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>創(chuàng)建彈出窗口</span></a></h2>
<p class=MsoNormalIndent><span class=a0><span lang=EN-US style='font-size:9.0pt;
line-height:150%'> BOOL CreateAppWnd(DWORD
dwFlagsAdd,LPCSTR pszTitle,const CRect & rect, int iTabSize, int iFontSize,
int iWidthBuf, int iHeightBuf);</span></span></p>
<p class=MsoNormalIndent><span lang=EN-US>dwFlagsAdd</span><span
style='font-family:宋體'>:指定窗口的屬性,窗口在創(chuàng)建時(shí)會(huì)自動(dòng)指定</span><span lang=EN-US>WS_OVERLAPPED
| WS_VISIBLE | WS_VSCROLL | WS_HSCROLL</span><span style='font-family:宋體'>屬性,不可以指定</span><span
lang=EN-US>WS_POPUP</span><span style='font-family:宋體'>屬性。</span></p>
<h3 style='margin-left:54.0pt'><a name="_Toc49144664"><span lang=EN-US>2.3.1<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>銷毀窗口</span></a></h3>
<p class=MsoNormalIndent><span style='font-family:宋體'>彈出窗口在進(jìn)行銷毀前必須調(diào)用</span> <span
lang=EN-US>void CBufferWnd::SetCanExitFlag(BOOL fCan)</span><span
style='font-family:宋體'>設(shè)置退出標(biāo)記,否則</span><span lang=EN-US>WM_CLOSE</span><span
style='font-family:宋體'>消息將會(huì)被丟棄。</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>而子窗口則受此限制。</span></p>
<h2 style='margin-left:40.9pt'><a name="_Toc49144665"><span lang=EN-US>2.4<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>窗口滾動(dòng)</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>計(jì)算滾動(dòng)范圍:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void ReCalcScrollSize( void);</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>滾動(dòng)到指定行列:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void ScrollTo(int iX,int iY)</span><span
style='font-family:宋體'>。</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>判斷指定行列是否在當(dāng)前的顯示區(qū)中,如果不在則滾動(dòng)到能夠顯示指定行列的最近位置:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>BOOL ScrollIfPointNotShown(int iX,int
iY)</span><span style='font-family:宋體'>。</span></p>
<h2 style='margin-left:40.9pt'><a name="_Toc49144666"><span lang=EN-US>2.5<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>設(shè)置光標(biāo)位置</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>將光標(biāo)設(shè)置到指定行列處顯示:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void SetCaretPoint(int iX,int iY)</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void SetCaretPoint(CPoint ptCaret)</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>得到光標(biāo)當(dāng)前位置:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void GetCaretPoint(CPoint&
ptCaret)</span></p>
<h2 style='margin-left:40.9pt'><a name="_Toc49144667"><span lang=EN-US>2.6<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>文字輸出功能</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>直接的函數(shù)調(diào)用并不是線程安全的,如果多個(gè)線程同時(shí)使用文字輸出功能,必須使用消息通知的方式。</span></p>
<h3 style='margin-left:54.0pt'><a name="_Toc49144668"><span lang=EN-US>2.6.1<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>填充空行</span></a></h3>
<p class=MsoNormalIndent><span style='font-family:宋體'>在文本區(qū)域的最后一行后填充指定字符的空行,不改變光標(biāo)位置。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void ScrollTxtUp(int iLines,char
cFill=0x20);</span></p>
<h3 style='margin-left:54.0pt'><a name="_Toc49144669"><span lang=EN-US>2.6.2<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>在光標(biāo)處添加文字</span></a></h3>
<p class=MsoNormalIndent><span style='font-family:宋體'>在光標(biāo)處添加文字</span><span
lang=EN-US>,</span><span style='font-family:宋體'>同時(shí)改變光標(biāo)位置。</span></p>
<p class=MsoNormalIndent><span class=a0><span lang=EN-US style='font-size:9.0pt;
line-height:150%'>void AppendTxtAtCaret(int iTxtLen,LPCSTR pszText,BOOL
fShowY=TRUE,BOOL fShowX=FALSE);</span></span></p>
<p class=MsoNormalIndent><span class=a0><span lang=EN-US style='font-size:9.0pt;
line-height:150%'>void AppendTxtAtCaret(LPCSTR pszText,BOOL fShowY=TRUE,BOOL
fShowX=FALSE)</span></span></p>
<p class=MsoNormalIndent><span lang=EN-US>iTxtLen</span><span style='font-family:
宋體'>:文字長度</span></p>
<p class=MsoNormalIndent><span lang=EN-US>pszText</span><span style='font-family:
宋體'>:待顯示的文字指針,如果不指定長度則取</span><span lang=EN-US>NULL</span><span
style='font-family:宋體'>字符作為結(jié)束符號(hào)。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>fShowY</span><span style='font-family:
宋體'>,</span><span lang=EN-US>fShowX</span><span style='font-family:宋體'>:在添加文字后是否強(qiáng)制顯示光標(biāo)所在的行列。</span></p>
<p class=MsoNormalIndent><span class=a0><span style='line-height:150%;
font-family:宋體;color:red'>注意:利用此功能時(shí)函數(shù)不能處理在換行時(shí)半個(gè)漢字的情況。所以請(qǐng)盡量不要使用</span></span><span
class=a0><span lang=EN-US style='line-height:150%;color:red'>CBufferWnd</span></span><span
class=a0><span style='line-height:150%;font-family:宋體;color:red'>提供的文字功能,而時(shí)候</span></span><span
class=a0><span lang=EN-US style='line-height:150%;color:red'>CConsoler</span></span><span
class=a0><span style='line-height:150%;font-family:宋體;color:red'>提供的文字功能。</span></span></p>
<h3 style='margin-left:54.0pt'><a name="_Toc49144670"><span lang=EN-US>2.6.3<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>消息通知</span> <span lang=EN-US>WM_BW_NOTIFY</span></a></h3>
<p class=MsoNormalIndent><span style='font-family:宋體'>消息:</span><span
lang=EN-US>WM_BW_NOTIFY</span></p>
<p class=MsoNormalIndent><span lang=EN-US>WPARAM = 0 </span><span
style='font-family:宋體'>時(shí)表示</span><span lang=EN-US> ScrollTxtUp </span><span
style='font-family:宋體'>,</span><span lang=EN-US>LPARAM</span><span
style='font-family:宋體'>為參數(shù)</span></p>
<p class=MsoNormalIndent><span lang=EN-US>HIWORD(LPARAM) = </span><span
style='font-family:宋體'>滾動(dòng)行數(shù)</span><span lang=EN-US> </span></p>
<p class=MsoNormalIndent><span lang=EN-US>LOBYTE(LOWORD(LPARAM)) = </span><span
style='font-family:宋體'>填充字符</span></p>
<p class=MsoNormalIndent><span lang=EN-US> </span></p>
<p class=MsoNormalIndent><span lang=EN-US>WPARAM = 1 </span><span
style='font-family:宋體'>時(shí)表示</span><span lang=EN-US> AppendTxtAtCaret</span></p>
<p class=MsoNormalIndent><span lang=EN-US>LPARAM = </span><span
style='font-family:宋體'>指向結(jié)構(gòu)</span><span lang=EN-US> struct
CBufferWnd::strAppendTxt </span><span style='font-family:宋體'>的指針</span></p>
<h2 style='margin-left:40.9pt'><a name="_Toc49144671"><span lang=EN-US>2.7<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>緩沖區(qū)控制</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>得到指定行列位置的字符:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>BYTE& GetXY(int iX,int iY)</span></p>
<p class=MsoNormalIndent><span lang=EN-US>BYTE& operator [] (int iIndex)</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>得到緩沖區(qū)指針:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>const BYTE* GetBuffer(void)</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>得到緩沖區(qū)大小:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>int GetBufferLen(void) </span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>得到緩沖區(qū)尺寸:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void GetBufferWindowSize(int
&iWidth,int &iHeight)</span></p>
<p class=MsoNormalIndent><span lang=EN-US> </span></p>
<h1><a name="_Toc49144672"><span lang=EN-US>第 3 章<span style='font:7.0pt "Times New Roman"'>
</span></span><span style='font-family:宋體'>輸出類</span><span lang=EN-US>CConsoler</span></a><span
style='font-family:宋體'>的使用</span></h1>
<h2 style='margin-left:40.9pt'><a name="_Toc49144673"><span lang=EN-US>3.1<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>創(chuàng)建并與窗口關(guān)聯(lián)</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>利用默認(rèn)的構(gòu)造函數(shù)創(chuàng)建對(duì)象:</span><span
lang=EN-US>CConsoler ::CConsoler()</span><span style='font-family:宋體'>。</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>然后調(diào)用</span><span
lang=EN-US>void CConsoler ::SetBufferWnd(CBufferWnd* pWnd)</span><span
style='font-family:宋體'>,設(shè)置對(duì)象所對(duì)應(yīng)的窗口指針。</span></p>
<h2 style='margin-left:40.9pt'><a name="_Toc49144674"><span lang=EN-US>3.2<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>輸出</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>類似與</span><span
lang=EN-US>printf</span><span style='font-family:宋體'>的調(diào)用方式。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>void CConsoler ::printfX(const char
*pszFormat,...)</span></p>
<h2 style='margin-left:40.9pt'><a name="_Toc49144675"><span lang=EN-US>3.3<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>其他</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>得到窗口指定行列位置的字符:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>BYTE& GetXY(int iX,int iY)</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>得到輸出窗口指針:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>CBufferWnd* GetWindow(void)</span></p>
<p class=MsoNormalIndent><span lang=EN-US> </span></p>
<h1><a name="_Toc49144676"><span lang=EN-US>第 4 章<span style='font:7.0pt "Times New Roman"'>
</span></span><span style='font-family:宋體'>使用示例</span></a></h1>
<h2 style='margin-left:40.9pt'><a name="_Toc49144677"><span lang=EN-US>4.1<span
style='font:7.0pt "Times New Roman"'> </span></span><span
style='font-family:宋體'>文件</span></a></h2>
<p class=MsoNormalIndent><span style='font-family:宋體'>文件:</span></p>
<p class=MsoNormalIndent><span lang=EN-US>#include "spBufferWnd.h"</span></p>
<p class=MsoNormalIndent><span lang=EN-US>spConsoler.cpp spBufferWnd.cpp</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>庫文件:</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>如果直接包含原文件進(jìn)行編譯則不需要包含庫文件。</span></p>
<p class=MsoNormalIndent><span lang=EN-US>#if defined(_DEBUG)</span></p>
<p class=MsoNormalIndent><span lang=EN-US> #pragma
comment(lib, "spRemote_D.lib")</span></p>
<p class=MsoNormalIndent><span lang=EN-US>#else</span></p>
<p class=MsoNormalIndent><span lang=EN-US> #pragma
comment(lib, "spRemote.lib")</span></p>
<p class=MsoNormalIndent><span lang=EN-US>#endif</span></p>
<p class=MsoNormalIndent><span style='font-family:宋體'>示例代碼:</span></p>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -