AAAAAAAAAAAAAAAAAA-
AAAAAAAAAAAAAAAAAAAAAAAA-
类似这样子
7 个解决方案
#1
用RICHEDIT来显示,这个遇到\n就换行了
#2
CRect EditRect(0,0,0,0),FontRect(0,0,0,0);
int EditWidth=0;
int FontWidth=0;
m_EventEdit.GetRect(&EditRect);
EditWidth=EditRect.Width();
CClientDC dc(this);
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);
CFont font;
font.CreateFontIndirect(&ncm.lfMessageFont);
// 将字体选进DC
CFont* pOldFont = dc.SelectObject(&font);
// 计算文本大小
UpdateData(TRUE);
dc.DrawText(m_EventString, FontRect, DT_CALCRECT);
// 回复旧字体-这是必须的
dc.SelectObject(pOldFont);
FontWidth=FontRect.Width();
//如果字符串宽度大于编辑框宽度,则换行
if(FontWidth>=EditWidth)
{
m_EventString+="\r\n";
// Add soft line-break breaks.
m_EventEdit.FmtLines(TRUE);
// Dump the text of the edit control.
afxDump << m_EventString;
// Remove soft line-break breaks.
m_EventEdit.FmtLines(FALSE);
}
int EditWidth=0;
int FontWidth=0;
m_EventEdit.GetRect(&EditRect);
EditWidth=EditRect.Width();
CClientDC dc(this);
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);
CFont font;
font.CreateFontIndirect(&ncm.lfMessageFont);
// 将字体选进DC
CFont* pOldFont = dc.SelectObject(&font);
// 计算文本大小
UpdateData(TRUE);
dc.DrawText(m_EventString, FontRect, DT_CALCRECT);
// 回复旧字体-这是必须的
dc.SelectObject(pOldFont);
FontWidth=FontRect.Width();
//如果字符串宽度大于编辑框宽度,则换行
if(FontWidth>=EditWidth)
{
m_EventString+="\r\n";
// Add soft line-break breaks.
m_EventEdit.FmtLines(TRUE);
// Dump the text of the edit control.
afxDump << m_EventString;
// Remove soft line-break breaks.
m_EventEdit.FmtLines(FALSE);
}
#3
\r\n
????可以嘛?
#4
Base64编码里哪有换行啊。。。我就是为了让他不要自动换行的,遇到减号自动换行了,不到头的
#5
把斜杠换成了减号
ba把斜杠转义 \\
ba把斜杠转义 \\
#6
/////////////////////////////////////////////////////////////////////////////
// CBase64Dlg dialog 26(A)+26(a)+10(0)+2(+*)
// input 3 bytes output 4 bytes. if len%3 !=0 , fill the rest with '='.
const TCHAR rgtchBase64[] =
TEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+*");
哪里有 ‘-’ 号,你是 UTF7 吧 ?
// CBase64Dlg dialog 26(A)+26(a)+10(0)+2(+*)
// input 3 bytes output 4 bytes. if len%3 !=0 , fill the rest with '='.
const TCHAR rgtchBase64[] =
TEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+*");
哪里有 ‘-’ 号,你是 UTF7 吧 ?
#7
算了,迂回解决,采用base62把两个非字母数字的字符替换掉了。
#1
用RICHEDIT来显示,这个遇到\n就换行了
#2
CRect EditRect(0,0,0,0),FontRect(0,0,0,0);
int EditWidth=0;
int FontWidth=0;
m_EventEdit.GetRect(&EditRect);
EditWidth=EditRect.Width();
CClientDC dc(this);
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);
CFont font;
font.CreateFontIndirect(&ncm.lfMessageFont);
// 将字体选进DC
CFont* pOldFont = dc.SelectObject(&font);
// 计算文本大小
UpdateData(TRUE);
dc.DrawText(m_EventString, FontRect, DT_CALCRECT);
// 回复旧字体-这是必须的
dc.SelectObject(pOldFont);
FontWidth=FontRect.Width();
//如果字符串宽度大于编辑框宽度,则换行
if(FontWidth>=EditWidth)
{
m_EventString+="\r\n";
// Add soft line-break breaks.
m_EventEdit.FmtLines(TRUE);
// Dump the text of the edit control.
afxDump << m_EventString;
// Remove soft line-break breaks.
m_EventEdit.FmtLines(FALSE);
}
int EditWidth=0;
int FontWidth=0;
m_EventEdit.GetRect(&EditRect);
EditWidth=EditRect.Width();
CClientDC dc(this);
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0);
CFont font;
font.CreateFontIndirect(&ncm.lfMessageFont);
// 将字体选进DC
CFont* pOldFont = dc.SelectObject(&font);
// 计算文本大小
UpdateData(TRUE);
dc.DrawText(m_EventString, FontRect, DT_CALCRECT);
// 回复旧字体-这是必须的
dc.SelectObject(pOldFont);
FontWidth=FontRect.Width();
//如果字符串宽度大于编辑框宽度,则换行
if(FontWidth>=EditWidth)
{
m_EventString+="\r\n";
// Add soft line-break breaks.
m_EventEdit.FmtLines(TRUE);
// Dump the text of the edit control.
afxDump << m_EventString;
// Remove soft line-break breaks.
m_EventEdit.FmtLines(FALSE);
}
#3
\r\n
????可以嘛?
#4
Base64编码里哪有换行啊。。。我就是为了让他不要自动换行的,遇到减号自动换行了,不到头的
#5
把斜杠换成了减号
ba把斜杠转义 \\
ba把斜杠转义 \\
#6
/////////////////////////////////////////////////////////////////////////////
// CBase64Dlg dialog 26(A)+26(a)+10(0)+2(+*)
// input 3 bytes output 4 bytes. if len%3 !=0 , fill the rest with '='.
const TCHAR rgtchBase64[] =
TEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+*");
哪里有 ‘-’ 号,你是 UTF7 吧 ?
// CBase64Dlg dialog 26(A)+26(a)+10(0)+2(+*)
// input 3 bytes output 4 bytes. if len%3 !=0 , fill the rest with '='.
const TCHAR rgtchBase64[] =
TEXT("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+*");
哪里有 ‘-’ 号,你是 UTF7 吧 ?
#7
算了,迂回解决,采用base62把两个非字母数字的字符替换掉了。