小弟我在界面上如何画不出方块出来

我在界面上怎么画不出方块出来
CPaintDC dc(m_hWnd);

int nOldMode = dc.SetBkMode(TRANSPARENT);
HBRUSH hBrush = CreateSolidBrush(RGB(255,255,0)); // RGB(25,25,112) RGB(0,0,128) RGB(0,0,139) RGB(65,105,225)
HBRUSH hOldBrush = dc.SelectBrush(hBrush);

CRect rt, rtCln;
GetClientRect(rtCln);
rt.left = rtCln.left;
rt.right = rt.left + 100;
rt.top = rtCln.top;
rt.bottom = rt.top + 100;
//GetDlgItem(IDC_BUTTON1).MoveWindow(rt);
dc.FillRect(&rt,hBrush);

// 恢复GDI状态
dc.SetBkMode(nOldMode);
dc.SelectBrush(hOldBrush);
// 释放GDI
ReleaseDC(dc);

------------------------------------------------

以上是一个按钮的代码,我想按一下这个按钮,然后对话框上出现一块矩形,可是为什么对话框上不显示这个方块呢?源码应该没问题啊,那是什么问题呢?我用的是WTL 8.0,求高手路过,谢谢!
界面 对话框 WTL GDI 绘图

------解决方案--------------------
CPaintDC dc(m_hWnd);改成CClientDC或者CWindowDC,除了OnPaint消息函数里面其他函数里面不能用CPaintDC获取设备环境。