void CMFCApplication1Dlg::OnPaint()
{
Invalidate(false);
//=====直線
HWND hWnd = (HWND)AfxGetMainWnd()->m_hWnd;
HPEN hpenBlue = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));//
hdc = ::GetDC(hWnd);
MoveToEx(hdc, 550, 300, NULL);
LineTo(hdc, m_x, m_y);
}
void CMFCApplication1Dlg::OnBnClickedOk()
{
Invalidate(true);
m_x = 100;
m_y = 100;
}
怎么沒辦法重繪畫布 畫出第二條線呢
或者用了invalidate(false);
沒辦法清除界面的線條 直接畫出第二條線來
uj5u.com熱心網友回復:
OnPaint中繪圖完成了重繪界面uj5u.com熱心網友回復:
OnPaint 中不得使用 Invalidate 。OnPaint 使用 CPaintDC dc(this); // device context for painting
不是 GetDC
void CMFCApplication1Dlg::OnPaint()
{
CPaintDC dc(this);
//=====直線
HPEN hpenBlue = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));//
dc.MoveTo(550, 300);
dc.LineTo( m_x, m_y);
}
uj5u.com熱心網友回復:
在OnPaint函式中你再呼叫LineTo/MoveTo劃線即可。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/106612.html
標籤:基礎類
下一篇:Teechart獲取串口資料
