我想在视图窗口(基类为CScrollView)做个文字输出,当把文字从编辑框(m_EditText)输出到视图窗口时,却什么都看不到,相关代码如下:
CString s;
m_EditText.GetWindowText(s); //CEdit m_EditText;
CRect rc;
m_EditText.GetWindowRect(&rc);
ScreenToClient(&rc);
CRect rcClear = rc;
rcClear.InflateRect(3,3);
m_EditText.DestroyWindow();
InvalidateRect(&rcClear);if (! s.IsEmpty())
{
CClientDC dc(this);
int nOldBkMode = dc.SetBkMode(TRANSPARENT);
COLORREF crOldTextColor = dc.SetTextColor(m_ForeColor);
CFont *pOldFont = dc.SelectObject(m_pFont);
CRect rect(m_ptStart.x,m_ptStart.y,m_ptStart.x+rc.Width(),m_ptStart.y+rc.Height());
//CPoint m_ptStart;即原m_EditText左上角相对于客户区坐标的点
ScreenToClient(&rect);
rect.InflateRect(2,2);
dc.DrawText(s, &rect, m_nTextAlign);
dc.SetBkMode(nOldBkMode);
dc.SetTextColor(crOldTextColor);
}为什么文字没有输出到窗口呢?请指点,不胜感激
ps:想保存,又不知怎么做?
CString s;
m_EditText.GetWindowText(s); //CEdit m_EditText;
CRect rc;
m_EditText.GetWindowRect(&rc);
ScreenToClient(&rc);
CRect rcClear = rc;
rcClear.InflateRect(3,3);
m_EditText.DestroyWindow();
InvalidateRect(&rcClear);if (! s.IsEmpty())
{
CClientDC dc(this);
int nOldBkMode = dc.SetBkMode(TRANSPARENT);
COLORREF crOldTextColor = dc.SetTextColor(m_ForeColor);
CFont *pOldFont = dc.SelectObject(m_pFont);
CRect rect(m_ptStart.x,m_ptStart.y,m_ptStart.x+rc.Width(),m_ptStart.y+rc.Height());
//CPoint m_ptStart;即原m_EditText左上角相对于客户区坐标的点
ScreenToClient(&rect);
rect.InflateRect(2,2);
dc.DrawText(s, &rect, m_nTextAlign);
dc.SetBkMode(nOldBkMode);
dc.SetTextColor(crOldTextColor);
}为什么文字没有输出到窗口呢?请指点,不胜感激
ps:想保存,又不知怎么做?
解决方案 »
- MoveWIndow(-4,-4,...,...);//才是屏幕的左上角呀???//不是0,0
- ATL ActiveX的工作线程如何向主线程发送消息,再由主线程Fire_XXX给javascript
- 如何调整菜单的字体大小
- 开函数 C++代码
- ********继续散20分,第10个人进来后结贴,为的是细水长流**********
- 散分,并咨询法律方面的问题:将flash.ocx集成到程序内部,有什么要注意的没有?
- 想尽办法没搞定的一个用VC写cookies的问题
- 请问画图里边的画笔是如何实现的呢?
- 急!!!随机数产生的问题,在线等待!
- 那位系统大师能给予回答???
- 如何隐藏CListCtrl的某一列?
- CEdit怎样实现多行显示啊?
if (! s.IsEmpty())
{
CClientDC dc(this);
dc.DrawText(s, &rect, m_nTextAlign); //可以先在此处设断点,看是否执行。
}如果能显示的话,在逐步添加其他代码,很快就能找到问题所在
ps:有谁有相关示例代码吗?请给小弟参考一下吧 [email protected]
还有,在原设定区域不能显示输出,好像是被那个编辑框挡住了一样,我这样做了:m_EditText.DestroyWindow()还不行吗?