关于动态显示文本的问题

wudong001 2003-09-14 11:40:45
我在SDI里面加了背景图片,再动态生成CStatic,还在CStatic里显示了字,但看不见显示的字。我想是不是由于背景颜色的问题造成的。请各位指教。谢谢
...全文
95 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyelf 2003-09-25
  • 打赏
  • 举报
回复
SetTextColor(颜色);
要设置字体,要使用CFont.CreateFont(...)
wudong001 2003-09-25
  • 打赏
  • 举报
回复
用TextOut输出文字也可以啊。但怎样设置它的字体大小和字体颜色呢?
tonybaobao 2003-09-24
  • 打赏
  • 举报
回复
m_pCtrlBtn->ShowWindow(SW_SHOW);不能解决问题

这样肯定不对的,因为不是窗口隐藏的关系.是窗口需要重画.其实你在视图里面应该是用TextOut来输出文字的呀!
wudong001 2003-09-24
  • 打赏
  • 举报
回复
up
wudong001 2003-09-24
  • 打赏
  • 举报
回复
我的做法是:
背景是在CBimapView::OnEraseBkgnd(CDC* pDC)中加入的,代码是:
{ CView::OnEraseBkgnd(pDC);
CDC dcMem;
CClientDC dc(this);
HBITMAP hbit;
CRect rect;
GetClientRect(rect);
dcMem.CreateCompatibleDC(&dc);
hbit = (HBITMAP)dcMem.SelectObject(&bitmap);
GetDC()->BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);
}
在CBimapView::OnInitialUpdate()中动态创建CStatic,显示文字,这次文字是看见的。
void CBimapView::OnInitialUpdate()
{
CView::OnInitialUpdate();

// TODO: Add your specialized code here and/or call the base class
CRect rect(10,10,200,40);
m_pCtrlBtn=new CStatic;
m_pCtrlBtn->Create("1234",WS_VISIBLE|WS_BORDER,rect,this,1000);
m_pCtrlBtn->ShowWindow(SW_SHOW);
}
但又出现了问题,就是当击活其它程序窗口后,再击活本程序,那些文本框和文字就不见了。
这是不是跟窗口的重画有关?可是我在
void CBimapView::OnDraw(CDC* pDC) 中进行
m_pCtrlBtn->ShowWindow(SW_SHOW);不能解决问题
请问各位高手,应该如何解决这个问题?
zhaolaoxin 2003-09-14
  • 打赏
  • 举报
回复
先创建背景,再创建CStatic窗口
tonybaobao 2003-09-14
  • 打赏
  • 举报
回复
正如上面所说,你可能把CStatic放到下面一层去了。还有别忘了,给CStatic控件赋值之后,UpdateData(FALSE)一下

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧