我通过MOUSEMOVE消息
moveto(x,y)和lineto(x,y)在对话框画出各种直线,对话框被其他窗口
盖住后,所画的直线全部没有了,有什么办法可以解决吗?分不够可以再加
moveto(x,y)和lineto(x,y)在对话框画出各种直线,对话框被其他窗口
盖住后,所画的直线全部没有了,有什么办法可以解决吗?分不够可以再加
解决方案 »
- 屏幕上某点被改变有相应的事件吗?
- VC++ 6 编译问题2
- 求一个键盘模拟控制鼠标的源程序!或GetCursorPos()函数的使用方法!
- 如何实现dll调用系统explorer.exe,并且将结果回复给客户端
- 哪里有语音聊天技术的资料???
- VC调试问题???
- 谁hook过这个函数ExitWindowsExec?或者hook 过ExitWindowsEx也成
- C# 写的win api程序,只能前两次正确执行,后面如果需要正确执行,则需要先点击窗体
- MFC的前途如何?
- 关于数据库编程的一系列问题,我很为难,经理在逼我呀:(
- 为何左键就行,右键就不行呢?(拖动窗口)
- oledb连接SQL SERVER数据库问题.连接服务器名称问题
MDI or SDI在OnDraw函数中画
每次重绘时都回再画一次线
cTempPoint是起点,point为终点,那么第二条线的起点就是第一条的终点。意思是当鼠标左键点两点产生一条直线,点三点为二条直线,点四点为三条,依此类推,也就是下一条直线的起点为上一条直线的终点,那么这些点都是通过OnLButtonDown消息产生的,那么如何保存这些点呢?
m_ptrArray.Add(pGraph);
void CtestmousemoveDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
bDraw = TRUE;
strTemp++;
cPointStart=point;
if(strTemp%2==0 || strTemp>2)
{
cTempPoint=cPointStart;
CGraph *pGraph=new CGraph(cTempPoint,point); //保存点的坐标
m_ptrArray.Add(pGraph);
}
else
{
cTempPoint=cPointStart;
}
CDialog::OnLButtonDown(nFlags, point);
}void CtestmousemoveDlg::OnMouseMove(UINT nFlags, CPoint point)
{
pDC=GetDC();
int nDrawMode=pDC->SetROP2(R2_NOT);
pDC->MoveTo(cPointStart);
if(bDraw)
{
pDC->LineTo(cPointEnd);
pDC->MoveTo(cPointStart);
pDC->LineTo(point);
}
pDC->SetROP2(nDrawMode);
ReleaseDC(pDC);
cPointEnd=point;
CDialog::OnMouseMove(nFlags, point);
}void Ctestmousemove