用CRichEditCtrl,
pRichEdit->Create(WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_WANTRETURN ,
rect, const_cast<CDiagramEditor *>(this), uID);
在没有ES_AUTOVSCROLL得情况下,输入内容到了底部,按回车 在下面插入看不见得一行;
有ES_AUTOVSCROLL得情况下,输入内容到了底部,按回车 在下面插入一行,同时整体内容上移。难道就没有什么风格 输入内容满了后,就输入不进得??失望
难道只能 自己计算 文字高度是否超过 CRect得高度???前面刚处理了一个 CRichEditCtrl打印得问题,自己用DRAWTEXT来计算行高及行间距。因为我得打印是在75%显示状态下打印100%得效果,而CRichEditCtrl自己封装得打印死板得所见既所得。真麻烦。。
pRichEdit->Create(WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_WANTRETURN ,
rect, const_cast<CDiagramEditor *>(this), uID);
在没有ES_AUTOVSCROLL得情况下,输入内容到了底部,按回车 在下面插入看不见得一行;
有ES_AUTOVSCROLL得情况下,输入内容到了底部,按回车 在下面插入一行,同时整体内容上移。难道就没有什么风格 输入内容满了后,就输入不进得??失望
难道只能 自己计算 文字高度是否超过 CRect得高度???前面刚处理了一个 CRichEditCtrl打印得问题,自己用DRAWTEXT来计算行高及行间距。因为我得打印是在75%显示状态下打印100%得效果,而CRichEditCtrl自己封装得打印死板得所见既所得。真麻烦。。
解决方案 »
- 请教激活对话框中的某个消息
- 关于套接字编程情形下的多线程编程。。。
- MFC与windows程序设计的关系,有点懵,请高手指点,谢谢
- 图像检索系统
- 关于银江数据接口的分时和分笔数据的问题
- 关于软件注册程序编写的问题
- List控件中怎样将最左边框内的内容居中
- 小妹求教各位大侠(急用):如何在VC++中调用delphi编写的.DLL
- 哪种情况new了之后不delete也不要紧?
- VC绘制一个类似ListView样式的图
- 我的程序使用AfxMessageBox("message");语句连续弹出了两个对话框,再弹出第二个的同时假设第一个对话框没有被用户关闭,我如何关闭先弹
- 当用户打开某个网页时,遍历html的链接 满足条件的连接 则模拟用户点击 请问如何实现 在线
OldLineTotal = GetLineCount();
CRichEditCtrl::OnChar(nChar, nRepCnt, nFlags);
int CurLineTotal =GetLineCount();
//int CreatPosition = GetSel();
if( CurLineTotal > OldLineTotal )
{
CString CurString;
GetWindowText(CurString);
CWindowDC DC (this);
//CFont *pFont = GetFont();
//CFont *pFontDC = DC.SelectObject (pFont);
CSize Size = DC.GetTextExtent (CurString);
// Get client rect
CRect Rect, ParentRect;
GetClientRect (&Rect);
GetParent()->GetClientRect (&ParentRect); // Transform rect to parent coordinates
ClientToScreen (&Rect);
GetParent()->ScreenToClient (&Rect);
//temprect.top +=round(static_cast<LONG>((float)lineheight*linespace));
int TextHeight = (float)Size.cy;
int TotalHeight;
TotalHeight=static_cast<LONG>((((float)TextHeight*m_linespace)+(float)TextHeight)*CurLineTotal)-(float)((float)TextHeight*m_linespace*2+TextHeight)*1.5;
if (TotalHeight > Rect.Height())
{
SetWindowText(OldString);
int temp = OldString.GetLength();
SetSel(temp,temp);
} }