还要能够给出线的位置信息,应该用控件还是鼠标时间啊,大家给点头绪啊。。
解决方案 »
- 获取模态对话框句柄
- 回调函数调用类中函数问题
- 请高手帮忙解决贴图问题
- ---------------->高手们,谁有 Dnsapi.lib 给我发一个,分全部给你
- 关于《Windows核心编程》中提供的CAPIHook类的Bug的问题, 知道的进来逛逛!!
- 问一个搞笑的问题!
- 为何ProgIDFromCLSID调用失败?
- Tvia 的请进!!!
- 请问我这是什么错误 error LNK2001: unresolved external symbol
- 想设计一个不可视的类,要求能
- 我想让程序就在每周六的12点进行一次对数据库的操作
- 请教:有什么工具可以看到单个进程运行时CPU、内存的变化曲线?立即结帐!谢谢!
窗体的最大最小化
其他窗口的移动涉及到自身窗体了
都会引发WMPAINT
然后先画你要的图
要擦除的时候再原样再画一遍,图形就复原了。
然后先画你要的图
要擦除的时候再原样再画一遍,图形就复原了。
void CPlotDlg::PaintLine()
{
pDC->MoveTo(linitpos,htorgy);
pDC->LineTo(linitpos,htorgy+httop);
pDC->MoveTo(rinitpos,htorgy);
pDC->LineTo(rinitpos,htorgy+httop);
pDC->SetROP2(R2_NOT);
}
在void CPlotDlg::OnMouseMove(UINT nFlags, CPoint point)
{
linitpos=linitpos+100;
OnPaint();
PaintLine();
}
这样错在哪里了啊?
You'd better know when OnPaint event happens, and what does it do... and then, what you need to do is: to add your codes in within this function...
如果你是要话huafda
用Invalidate倒是可以,但是闪烁的太厉害了
{
pDC->SetROP2(R2_XORPEN);
pDC->MoveTo(linitpos,htorgy);
pDC->LineTo(linitpos,htorgy+httop);
pDC->MoveTo(rinitpos,htorgy);
pDC->LineTo(rinitpos,htorgy+httop); linitpos=linitpos+(point.x-lfpos)*scale*78/66;
pDC->SetROP2(R2_XORPEN);
pDC->MoveTo(linitpos,htorgy);
pDC->LineTo(linitpos,htorgy+httop);
pDC->MoveTo(rinitpos,htorgy);
pDC->LineTo(rinitpos,htorgy+httop);
}
您是说这样吗?可是不对啊,线没有动就。
怎么不行了?
是不是需要重新设定一下pen啊?
CRect rcClient;
GetClientRect(rcClient);
CPen LinePen( PS_SOLID, 1, RGB(255,255,0) );
CPen* OldPen = pDC->SelectObject(&LinePen);
pDC->SetROP2( R2_XORPEN );
pDC->BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &m_MemDC, 0, 0, SRCCOPY);
pDC->MoveTo( lastp.x,rcClient.bottom);
pDC->LineTo( lastp.x, rcClient.top);
lastp=point;
pDC->SelectObject(OldPen);
当鼠标移动时先插除原来的线。然后moveto,lineto,画完后在将点保存起来,就可以了在视图类中定义一个点保存上次的坐标, CPoint lastp;
怎么会不行呢??
大家快帮我解决问题把,我都急死了。。