小弟我在界面上如何画不出方块出来
我在界面上怎么画不出方块出来
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,求高手路过,谢谢!
------解决方案--------------------
CPaintDC dc(m_hWnd);改成CClientDC或者CWindowDC,除了OnPaint消息函数里面其他函数里面不能用CPaintDC获取设备环境。
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获取设备环境。