MFC如何在对话框中输入文字

MFC如何在对话框中输入文字,第1张

如果只是为了d出一个字符串显示,用:

AfxMessageBox(_T("A String"))

如果是在已有对话框显示一个字符串,那么对话框增加一个静态框,修改静态框ID为IDC_STATIC1(不能不修改,否则无法显示),然后程序的任意对话框函数里面:

GetDlgItem(IDC_STATIC1)->SetWindowText(_T("A String"))

首先在View 类的OnCreate函数中,

1,创建和显示插入符的几种函数:

void CreateSolidCaret( int nWidth, int nHeight )//创建插入符

void CreateCaret( CBitmap* pBitmap )//创建位图插入符

void ShowCaret( )//显示插入符

void HideCaret( )//隐藏插入符

2、创建设备描述表

CClientDC dc(this)

//定义文本信息结构体变量

TEXTMETRIC tm

//获得设备描述表中的文本信息

dc.GetTextMetrics(&tm)

//根据字体大小,创建合适的插入符

CreateSolidCaret(tm.tmAveCharWidth / 8, tm.tmHeight)

ShowCaret()

4,获取某字符串的高度和宽度(区别字符串的长度,长度表示字符个数):

CDC::GetTextExtent

CSize GetTextExtent( LPCTSTR lpszString, int nCount ) const

CSize GetTextExtent( const CString&str ) const

5,路径层:

BOOL BeginPath( )//CDC中函数

//在这作图定义路径层剪切区域

BOOL EndPath( )

BOOL SelectClipPath( int nMode )//调用这个函数来使当前路径层剪切区域与新剪切区域进行互 *** 作。

//在这覆盖作图(包含前定义的路径层区域)定义新的剪切区域

6,关于文本字符串一些函数:

COLORREF GetBkColor( ) const//得到背景颜色

virtual COLORREF SetBkColor( COLORREF crColor )//设置背景颜色

BOOL SetTextBkColor( COLORREF cr )//设置文本背景颜色

virtual COLORREF SetTextColor( COLORREF crColor )//设置文本颜色

virtual BOOL TextOut( int x, int y, LPCTSTR lpszString, int nCount )//输出文本

BOOL TextOut( int x, int y, const CString&str )//在x,y所指定坐标处输出str

CString Left( int nCount ) const//得到字符串左边nCount个字符

int GetLength( ) const//得到字符串长度strlen()

7,字体CFont::CFont

CFont( )//构造函数

//Constructs a CFont object. The resulting object must be initialized with CreateFont, CreateFontIndirect, CreatePointFont, or CreatePointFontIndirect before it can be used.

选用字体事例代码组:

CClientDC dc(this)

CFont font//构造字体对象

font.CreatePointFont(300,"华文行楷",NULL)//初始化字体对象,与字体资源相关联

CFont *pOldFont=dc.SelectObject(&font)//将新字体选入DC

...

dc.SelectObject(pOldFont)//恢复原字体

所以在输出字符之前要做一大堆工作,获取字符一大堆信息,包括字符的大小,字体,颜色,位置和光标的关系,还有空格键,退格键,回车键的处理,还有涉及到文字的路径层,最后才能用TextOut()输出字符,以上的几个步骤是必须的,可能还有一些细节我忘了,具体参考孙鑫老师的视频,有具体讲解,我就不多说了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11584512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存