对于DirectWrite程序,在窗口大小改变时,也要同步更新render target的尺寸,否则的话,所绘文本可能超出窗口之外。可以定义一个OnResize函数来更新render target的尺寸,然后再WM_SIZE中调用这个函数。
// When window size changed, we need to resize the render target as well
VOID OnResize(UINT width, UINT height)
{
if(g_pRenderTarget)
{
D2D1_SIZE_U size = D2D1::SizeU(width, height);
g_pRenderTarget->Resize(size);
}
}
调用
case WM_SIZE:
{
UINT width = LOWORD(lParam);
UINT height = HIWORD(lParam);
OnResize(width, height);
break;
}