16,473
社区成员
发帖
与我相关
我的任务
分享
void CaaaDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
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;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
//CDialog::OnPaint();
CPaintDC dc(this) ;
/* CPen pen(PS_SOLID, 3,RGB(255,0,0));
dc.SelectObject(&pen);
dc.MoveTo(0,0);
dc.LineTo(100,29);*/
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CaaaDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
HBRUSH CaaaDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
if(this==pWnd)
{
CPen pen(PS_SOLID, 3,RGB(255,0,0));
pDC->SelectObject(&pen);
pDC->MoveTo(0,0);
pDC->LineTo(100,29);
}
return hbr;
}
HPEN hPen;
HPEN hPenOld;
hPen = CreatePen(PS_SOLID,3,RGB(255,0,0));
hPenOld = (HPEN)SelectObject(pDC->m_hDC,hPen);
pDC->MoveTo(20,10);
pDC->LineTo(200,100);
SelectObject(pDC->m_hDC,hPenOld);
DeleteObject(hPen);
代码最好放到OnDraw函数或者OnPaint函数中