孙鑫VC学习笔记:第五讲 文本编程
来源:互联网 发布:淘宝网数据包下载 编辑:程序博客网 时间:2024/05/02 05:00
1.创建插入符
void CreateSolidCaret( int nWidth, //插入符的宽度,为0,表示系统定义的窗口边界宽度 int nHeight //插入符的高度,为0,表示系统定义的窗口边界高度 );
2.获得文本信息
BOOL GetTextMetrics(
LPTEXTMETRIC lpMetrics
) const;
------------------------------------------------------------------------------------
TEXTMETRIC
------------------------------------------------------------------------------------
typedef struct tagTEXTMETRIC {
LONG tmHeight; //字体的高度
LONG tmAscent; //基线以上的部分的长度
LONG tmDescent; //基线以下的地方
LONG tmInternalLeading;
LONG tmExternalLeading;
LONG tmAveCharWidth; //平均字符宽度
LONG tmMaxCharWidth; //最大字符宽度
LONG tmWeight;
LONG tmOverhang;
LONG tmDigitizedAspectX;
LONG tmDigitizedAspectY;
TCHAR tmFirstChar;
TCHAR tmLastChar;
TCHAR tmDefaultChar; //默认字符
TCHAR tmBreakChar;
BYTE tmItalic; //斜线
BYTE tmUnderlined; //下划线
BYTE tmStruckOut;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRIC, *PTEXTMETRIC;
------------------------------------------------------------------------------------- TextView.CPP ------------------------------------------------------------------------------------ int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight); //创建插入符 ShowCaret(); //显示插入符 return 0; } -------------------------------------------------------------------------------------
3.创建图形插入符.
void CreateCaret(
CBitmap* pBitmap
);
------------------------------------------------------------------------------------
4.输出文字
CTextView::OnDraw(CDC *pDC)函数当窗口发生重绘的时候,就会被应用程序的框架所调用.
5.字符串类CString
----------------------------------------------------------------------------------
TextView.CPP
------------------------------------------------------------------------------------
void CTextView::OnDraw(CDC* pDC) { CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here //CString str="Hello Visual C++!"; CString str; //str="Hello Visual C++!"; str.LoadString(IDS_HELLOVC);//加载资源中的文字 pDC->TextOut(50,50,str); }-------------------------------------------------------------------------------------
6.创建路径
CDC::BeginPath函数
MSDN
------------------------------------------------------------------------------------
CDC::BeginPath //打开路径
Opens a path bracket in the device context.
BOOL BeginPath( );
-------------------------------------------------------------------------------------
CDC::GetTextExtent //
MSDN
-------------------------------------------------------------------------------------
CDC::GetTextExtent
Call this member function to compute the width and height of a line of text using
the current font to determine the dimensions.
CSize GetTextExtent(
LPCTSTR lpszString,
int nCount
) const;
CSize GetTextExtent(
const CString& str
) const;
------------------------------------------------------------------------------------
MSDN
------------------------------------------------------------------------------------
CDC::SelectClipPath
Selects the current path as a clipping region for the device context, combining
he new region with any existing clipping region by using the specified mode.
BOOL SelectClipPath(
int nMode
);
RGN_DIFF The new clipping region includes the areas of the current clipping
region, and those of the current path are excluded.
------------------------------------------------------------------------------------
选择当前的路径作为一个剪切区域,联合新的区域和一个现存的剪切区域按照指定的模式进行互
操作
TextView.CPP
------------------------------------------------------------------------------------
void CTextView::OnDraw(CDC* pDC) { CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here //CString str="Hello Visual C++!"; CString str; str="Hello Visual C++!"; pDC->TextOut(50,50,str); CSize sz=pDC->GetTextExtent(str); pDC->BeginPath(); pDC->Rectangle(50,50,50+sz.cx,50+sz.cy); pDC->EndPath(); pDC->SelectClipPath(RGN_AND); for (int i=0; i<300; i+=10) { pDC->MoveTo(0,i); pDC->LineTo(300,i); pDC->MoveTo(i,0); pDC->LineTo(i,300); } }
void CTextView::OnDraw(CDC* pDC) { CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here //CString str="Hello Visual C++!"; CString str; str="Hello Visual C++!"; pDC->TextOut(50,50,str); CSize sz=pDC->GetTextExtent(str); pDC->BeginPath(); pDC->Rectangle(50,50,50+sz.cx,50+sz.cy); pDC->EndPath(); pDC->SelectClipPath(RGN_AND); for (int i=0; i<300; i+=10) { pDC->MoveTo(0,i); pDC->LineTo(300,i); pDC->MoveTo(i,0); pDC->LineTo(i,300); } }-------------------------------------------------------------------------------------
7.实现字符输出的功能
移动插入符:
CWnd::SetCaretPos
------------------------------------------------------------------------------
CWnd::SetCaretPos
Sets the position of the caret.
static void PASCAL SetCaretPos(
POINT point //静态方法,设置插入符的位置
);
-----------------------------------------------------------------------------
获取窗口的背景色:
CDC::GetBKColor
MSDN
--------------------------------------------------------------------------------
CDC::GetBkColor
Returns the current background color.
COLORREF GetBkColor( ) const;
-------------------------------------------------------------------------------
设置文本的颜色
CDC::SetTextColor
MSDN
---------------------------------------------------------------------------------
CDC::SetTextColor
Sets the text color to the specified color.
virtual COLORREF SetTextColor(
COLORREF crColor
);
Return Value
An RGB value for the previous text color.
---------------------------------------------------------------------------
截取字符串函数
CString::Left
MSDN
-------------------------------------------------------------------------------
CString::Left
The Left method extracts the first (that is, leftmost) nCount characters from
a CHString string and returns a copy of the extracted substring. If nCount
exceeds the string length, then the entire string is extracted.
CString Left(
int nCount
) const throw (CHeap_Exception);
---------------------------------------------------------------------------------
CString::GetLength
MSDN
----------------------------------------------------------------------------
CString::GetLength
The GetLength method gets a count of the number of wide characters in this
CString string. The count does not include a NULL terminator.
int GetLength();
--------------------------------------------------------------------------------
8.创建字体
CFont类
CFont::CFont构造函数
MSDN
----------------------------------------------------------------------------------
CFont::CFont
Constructs a CFont object.
CFont( );
Remarks
The resulting object must be initialized with CreateFont, CreateFontIndirect,
CreatePointFont, or CreatePointFontIndirect before it can be used.
----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
CFont::CreatePointFont
This function provides a simple way to create a font of a specified typeface
and point size.
BOOL CreatePointFont(
int nPointSize, //设置字体的大小
LPCTSTR lpszFaceName, //设置字体的名字
CDC* pDC = NULL //转换字体的大小为逻辑单位
);
---------------------------------------------------------------------------------
9.制作卡拉OK字幕.
CDC::DrawText
MSDN
---------------------------------------------------------------------------------
CDC::DrawText
Call this member function to format text in the given rectangle. To specify
additional formatting options, use CDC::DrawTextEx.
virtual int DrawText(
LPCTSTR lpszString,
int nCount,
LPRECT lpRect, //输出的范围
UINT nFormat //输出的格式
);
int DrawText(
const CString& str,
LPRECT lpRect,
UINT nFormat
);
----------------------------------------------------------------------------------
设置定时器CWnd::SetTimer
MSDN
-----------------------------------------------------------------------------------
CWnd::SetTimer
Installs a system timer.
UINT_PTR nIDEvent, //非0的定时器标识
UINT nElapse, //发送定时器消息的间隔时间(单位:0.001s)
void (CALLBACK* lpfnTimer //回调函数指针,当我们设定好回调函数,那么
)(HWND, //WM_TIMER消息被放到应用程序消息队列,由
UINT, //CWnd对象进行处理
UINT_PTR,
DWORD
)
);
- 孙鑫VC学习笔记:第五讲 文本编程
- 孙鑫VC学习笔记:第五讲 文本编程
- 孙鑫:第五讲 文本编程
- MFC(文本编程,孙鑫C++第五讲笔记整理)
- MFC(文本编程,孙鑫C++第五讲笔记整理)
- 《VC++深入详解》学习笔记 第五章 文本编程
- 第五讲 文本编程
- 孙鑫VC学习笔记:第十四讲 网络编程
- 孙鑫VC学习笔记:第二十讲 Hook编程
- 孙鑫VC学习笔记:第二十讲 ado数据库编程
- 孙鑫VC学习笔记:第十四讲 (二) 网络编程
- 孙鑫VC学习笔记:第二十讲 (一) Hook编程
- 孙鑫VC学习笔记:第二十讲 (二) ado数据库编程
- 孙鑫VC学习笔记:第二十讲 ado数据库编程
- 孙鑫VC学习笔记:第十二讲 介绍常量指针、指针常量,文本、二进制文件
- 孙鑫VC学习笔记:第十二讲 (一) 介绍常量指针、指针常量,文本、二进制文件
- 孙鑫《vc ++深入详解》第五章文本编程
- 孙鑫VC学习笔记:第一讲
- spring +web
- Apache HTTP Server 与 Tomcat 的三种连接方式介绍
- 关于财务公司软件
- 获取手机中的图片
- Winform datagridview Excel 导入导出
- 孙鑫VC学习笔记:第五讲 文本编程
- 动态获取Struts2执行动作的Method Name
- 虚拟列表控件(CListCtrl)
- web.xml文件解析,以及tomcat启动常见错误总结一哈。
- VS2005调试技巧集合
- PHP中的if
- 简单计算器(hdu 1237)
- Linux内核spin_lock与spin_lock_irq分析
- Calf Flac