代码如下:void CDlgCalcDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中
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; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);
dc.DrawEdge(m_rect, EDGE_SUNKEN, BF_RECT);
UpdateDisplay(CString(_T("abc")));
CDialog::OnPaint();
}
}当我重新把界面缩小在打开时,会出现我所画的,但是不过1秒中后就消失了.
麻烦各位了.
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中
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; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);
dc.DrawEdge(m_rect, EDGE_SUNKEN, BF_RECT);
UpdateDisplay(CString(_T("abc")));
CDialog::OnPaint();
}
}当我重新把界面缩小在打开时,会出现我所画的,但是不过1秒中后就消失了.
麻烦各位了.
解决方案 »
- IHTMLDocment IHTMLDocment2......
- tcp数据偶尔丢失,真奇怪??
- 界面刷新闪的问题
- 在ATL写的控件中的一个方法用了自定义的结构体作参数,但用VC作测试时却不好使,谁能解惑?
- RichEdit用法
- 高分,高分啊,,minix操作系统设计和实现一书,请问,如何编译minix操作系统光盘中的源代码????
- 一百分相送...各位有没有adsl拨号软件(如:raspppoe, EnterNet 500等)的vc++版的原代码?
- 文件读出的问题?
- 关于磁盘恢复boot record的错误~!
- 无法对DAO/Jet DB进行初始化!!
- 【疑问】有2个窗口类,都重载了OnCancel函数,调试发现,点击A类窗口上的关闭按钮时,B类的OnCancel函数也响应了。。但是B类并没有创建窗口。。
- 在VC中用ADO连接 报错
这个函数里怎么写的?
UpdateDisplay的代码.void CDlgCalcDlg::UpdateDisplay(LPCTSTR pszDisplay)
{
CRect rect1(50, 50, 50, 50);
CClientDC dc(this);
CFont * pOldFont = dc.SelectObject(GetFont());
// 得到字符串真实长度;
CSize size = dc.GetTextExtent(pszDisplay);
CRect rect = m_rect;
rect.InflateRect(-2, -2);
int x = rect.right - size.cx - m_cxChar;
int y = rect.top + ((rect.Height() - m_cyChar) / 2);
// 在指定的矩形内输出文字;ETO_OPAQUE指定了矩形颜色使用背景色
dc.ExtTextOut(x, y, ETO_OPAQUE, rect, pszDisplay, NULL);
dc.SelectObject(pOldFont);
}
那你的DrawEdge有效果没?
我看了一下,也不是重绘背景导致的.我响应了以后效果还是一样的.
只是背景没有被重绘,麻烦各位看下我设置矩形凹下去的那段.
哪个控件重绘了?
不是m_rect的问题.
是画了以后,要把控件窗口destroy掉,不然的话一直覆盖在上面.
大意了,谢谢pop1210