关于重绘的问题

ogiso_pest 2011-05-14 09:50:10
直入主题
我现在的界面如图一
我单击了一个按钮后,弹出一个窗口,然后点击确定后返回原来的窗口,
却只显示刚才单击的按钮,其余的按钮没有显示
但是如果打开别的程序,覆盖住此时部分按钮没有显示的窗口,则移走窗口后,又出现了全部的按钮!
请问该怎么解决啊?
谢谢啦

我的部分代码
//绘制自己的背景
void CTerminalDlg::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();

CClientDC dc(this);
CDC memDC;
CBitmap bitmap;
BITMAP bmp;
bitmap.LoadBitmap(IDB_BITMAP_BACK);
bitmap.GetObject (sizeof(BITMAP),&bmp);
memDC.CreateCompatibleDC (&dc);
memDC.SelectObject (bitmap);
dc.BitBlt (0,0,bmp.bmWidth ,bmp.bmHeight ,&memDC,0,0,SRCCOPY);
}
}

单击按钮的操作,CRegisteDlg是单击按钮后弹出的对话框
void CTerminalDlg::OnRegiste()
{
// TODO: Add your control notification handler code here
CRegisteDlg registeDlg;

int result = registeDlg.DoModal();
}


图一


图二


图三
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
添加Create消息,在OnCreate函数中创建按钮
然后使用Invalidate刷新
King_hhuang 2011-05-14
  • 打赏
  • 举报
回复
窗口强制刷新一下
Invalidate
或者
InvalidateRect

15,978

社区成员

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

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