OnPaint函数中位图显示不出来,请大家帮帮忙!解决办法

OnPaint函数中位图显示不出来,请大家帮帮忙!
我是利用CFileDialog打开一张位图文件,然后在对话框显示,代码如下:
void   CMy1106Dlg::OnButton1()  
{
//   TODO:   Add   your   control   notification   handler   code   here
CString   lpszFilter= "位图(*.bmp)|*.bmp|\
全部文件(*.*)|*.*|| ";      
CFileDialog   dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|
OFN_ALLOWMULTISELECT,lpszFilter,NULL);
if(dlg.DoModal()==IDOK)
{
m_hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),dlg.GetPathName(),
IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
m_pBmp   =   CBitmap::FromHandle(m_hBitmap);  

}
}


void   CMy1106Dlg::OnPaint()  
{
CPaintDC   dc(this);   //   device   context   for   painting

if(m_hBitmap)//如果得到位图句柄
        {
BITMAP   bm;  
CDC   dcMem;  
VERIFY(m_pBmp-> GetObject(sizeof(bm),(LPVOID)&bm));  
dcMem.CreateCompatibleDC(&dc);  
CBitmap   *pOldBMP=(CBitmap   *)dcMem.SelectObject(m_pBmp);  
BitBlt(dc.m_hDC,0,   0,   bm.bmWidth,   bm.bmHeight,   dcMem.m_hDC,   0,   0,   SRCCOPY);  
dcMem.SelectObject(pOldBMP);  
}
}
位图不能显示出来,请问这是怎么回事?

------解决方案--------------------
首先看看m_hBitmap是否有效,其次既然保存了句柄而且你喜欢用API函数,就不要转换成CBitmap*那么麻烦了,直接用句柄好了。再次如果一定要用CBitmap,可以不用指针,CBitmap m_Bmp;
m_Bmp.Attach(m_hBitmap);
------解决方案--------------------
还有,你OnButton1后面加一句Invalidate()