读书人

SetMapMode()照射模式求解! (画刻度)

发布时间: 2013-01-01 14:04:20 作者: rapoo

SetMapMode()映射模式求解! (画刻度)


case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
SetMapMode(hdc, MM_LOMETRIC);
SetViewportOrgEx (hdc, 0, 0, NULL);
MoveToEx(hdc, 100, -100, NULL);
LineTo(hdc , 200, -100);
EndPaint (hwnd, &ps) ;
return 0 ;


GDI:
SetMapMode(hdc, MM_LOMETRIC);
画出的线段 我用尺子在屏幕上测量了下, 大概8毫米,
怎么样能画 1厘米, 然后用尺子在屏幕上量就是一厘米?
做刻度用的... 屏幕分辨率不固定...

求解...不要MFC 的,,,
[解决办法]
你真想做到程序里画的尺寸和屏幕尺寸一样,就加个系数吧,好象没有一个映射模式能做到,不明白楼主为什么要达到这个效果,这还和屏幕分辨有关,分辨率一改又对不上了
[解决办法]
先获取设备的信息?这样可以得到像素与真实长度的关系?
GetDeviceCaps Retrieves device-specific information for the specified device.
[解决办法]
引用:
引用:

先获取设备的信息?这样可以得到像素与真实长度的关系?
GetDeviceCaps Retrieves device-specific information for the specified device.


我用
GetDeviceCaps (hdc, LOGPIXELSX)
获取了每英寸像素点数

然后获取客户区的像素点数量 除以 每英寸的像素……

GetDeviceCaps 得到长宽像素 + 长宽的毫米数 -》就得到对应关系了

读书人网 >VC/MFC

热点推荐