关于在控件上DrawText或者TextOut的问题 我遇到这样一个问题,我有一个dialog,上面有一个button,我点击dialog,触发事件,在button上textout一些文字,但是窗口移动后文字消失,我知道这是重画的问题,那位能解决,以前没有在dialog上做过重画,好像只能用onPaint 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你textout之后,updatedata了吗?? 我放在onPaint里面,好像不行啊void CA1Dlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); CWnd* pwnd1 = GetDlgItem(IDC_BUTTON1); CWnd* pwnd2 = GetDlgItem(IDC_BUTTON2); CDC* pdc = NULL; if(pwnd1) { pdc = pwnd1->GetDC(); //pwnd1-> pdc->TextOut(0,0,"ASD"); } UpdateData(); }} 楼上的,你说的我知道啊,这是改变Button的文字内容,但现在我要做的是在Button上画啊,不是改变Button本身的标题内容哪位有方法? InvalidRect函数怎么样??首先得到你要重画的区域的rect然后再调用此函数。其功能你应该知道的,这和在view里画图是一样的道理。updatedata之所以不行的原因是因为你可能没有写参数,其参数为FALSE时是向空间更新,TRUE时时向空间的变量更新!!! 你应该将这个textout放到button类的onPaint方法里,建议你从CButton类派生自己的button类,重载一下onPaint方法,然后你就可以在你的button类里重画了 父类指针和子类指针 MFC 保存,打开 文本文件 ocx控件问题 小菜跪求‘VC++技术内幕(第四版)‘ 一个很有意思的问题 ****高分求购MPEG压缩格式?*** 新手小问题 VC6.0中怎样设置DataGrid控件数据表中某一列的颜色,某一行的颜色? 自己写的COM接口,如何在另一个程序中调用? 请教各位高手!急死了!一定给分! 控件的工作线程中如何发消息给控件?控件为何没有响应? 高手请进:多线程采用ADO操作数据库:来者有分
void CA1Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
CWnd* pwnd1 = GetDlgItem(IDC_BUTTON1);
CWnd* pwnd2 = GetDlgItem(IDC_BUTTON2);
CDC* pdc = NULL;
if(pwnd1)
{
pdc = pwnd1->GetDC();
//pwnd1->
pdc->TextOut(0,0,"ASD");
}
UpdateData();
}
}
其功能你应该知道的,这和在view里画图是一样的道理。updatedata之所以不行的原因是
因为你可能没有写参数,其参数为FALSE时是向空间更新,TRUE时时向空间的变量更新!!!