又编写了一个程序,利用Windows GDI绘制直尺。代码很简单,只是显示一个20厘米的直尺。
背景知识:映射模式,这里给出MSDN中相关的链接http://msdn.microsoft.com/en-us/library/hzy9cbxf%28v=vs.80%29.aspx。
另外,分享一个相关的关键词,屏幕尺子。
首先新建一个单文档MFC项目,在视图类的成员函数OnDraw()中相应位置添加以下的代码段。
pDC->MoveTo(-1000,0);
pDC->LineTo(1000,0);
for(int i=-1000;i<=1000;i++)
{
if(i%100==0)
{
pDC->MoveTo(i,50);
pDC->LineTo(i,0);
CString string;
string.Format("%d",(i+1000)/100);
int delta=10;
pDC->TextOut(i-delta,100,string);
}
else if(i%50==0)
{
pDC->MoveTo(i,35);
pDC->LineTo(i,0);
}
else if(i%10==0)
{
pDC->MoveTo(i,20);
pDC->LineTo(i,0);
}
}
效果图如下