感觉这个时钟除了一些数学的知识外,还是映射坐标问题,到现在我也没有弄明白是怎么回事,贴点代码
void SetIsotropic(HDC hdc,int cxClient,int cyClient)
{
//设置映射模式为MM_ISOROPIC
SetMapMode(hdc,MM_ISOTROPIC);
//设置Windows窗口大小1000*1000,窗口是看不到的,窗口的数据是用来显示到视图的
SetWindowExtEx(hdc,1000,1000,NULL);
//下面两句还是不理解,得不到好的解释,下面-cyClient改为cyClient后,时钟会上下反转
SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);
//下面设置圆心的显示地方
SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL);
}
SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);
这个地方为什么要做成负的cyClient?跟画图有关?那为什么不正着玩圆呢?郁闷中。