首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

自定义控件,OnPaint没有被调用,该如何处理

2012-01-28 
自定义控件,OnPaint没有被调用自定义了一个控件,下面是部分代码:控件类注册:CMyWnd::CMyWnd(){WNDCLASS wl

自定义控件,OnPaint没有被调用
自定义了一个控件,下面是部分代码:
控件类注册:
CMyWnd::CMyWnd()
{
  WNDCLASS wls;
  wls.lpszClassName = className;
  wls.style = CS_OWNDC;
  wls.hbrBackground = (HBRUSH)(COLOR_BACKGROUND + 1);
  wls.hCursor = LoadCursor(NULL, IDC_ARROW);
  wls.hIcon = NULL;
  wls.hInstance = AfxGetInstanceHandle();
  wls.lpfnWndProc = ::DefWindowProc;
  wls.lpszMenuName = NULL;
   
  RegisterClass(&wls);
}

创建接口:
HRESULT CMyWnd::Create(CWnd *pParent, CRect rc,UINT uID)
{
  return CWnd::Create(className, m_csTitle, WS_VISIBLE| WS_CHILD, rc, pParent, uID);
}
在对话框的OnInitialDialog接口中调用Create接口创建对象:
m_myWnd.Create(this, rcClient, IDC_CUSTOM1);

另外重载了控件的OnPaint接口:
void CMyWnd::OnPaint() 
{
  CPaintDC dc(this); // device context for painting

  CRect rc;
  GetClientRect(rc);

  CBrush br(RGB(0,255,0));  
  FillRect(dc, rc, br);
}
运行后控件并没有显示,调试后发现控件的OnPaint没有被调用。
不知道原因,难道还需要其他的地方需要处理么?

[解决办法]
wndcls.style= CS_DBLCLKS| CS_HREDRAW | CS_VREDRAW;
[解决办法]
你在哪里获取消息?

热点排行