Direct2D图像显示不全的问题

问题是这样的,我创建了一个640*480客户区的窗口,然后创建ID2D1HwndRenderTarget接口对象传入的大小D2D1::HwndRenderTargetProperties(hWnd, size)第二个参数,也是640,480的话,绘制一个640*480的图像只能显示500多*380多的范围,下边一部分和右边一部分显示不出来。

后来我发现是分辨率的问题,我电脑分辨率1920*1080,也就是dpiX=120,dpiY=120,D2D以为你的客户区分辨率是96的,所引会显示不全。

最简单的办法就是将窗口分辨率设为96dpi,创建完ID2D1HwndRenderTarget对象后调用ta的SetDpi方法就可以了。当然你也可以加大客户区但是创建时不加大,这样比较麻烦。

你可能感兴趣的:(编程)