需要使用映射模式设置原点后,在指定位置分行显示汉字,可是以下代码却不能显示出汉字??难道不能使用映射模式设置原点来用drawtext输出汉字么?,哪儿错了??请有经验的高手指教!(不使用映射模式可以分行显示汉字)void CHuatuView::OnPaint() 
{
  CClientDC ClientDC(this);
  OnPrepareDC(&ClientDC);
  CRect rectClient;
  GetClientRect(rectClient);   //使用映射模式设置原点
  ClientDC.SetMapMode(MM_ISOTROPIC);
  ClientDC.SetViewportOrg((rectClient.Width())/2,(rectClient.Height())/2);    CRect rect(50,50,100,200);
  CString data = "祝大家十月一国庆节快乐!";
  ClientDC.DrawText(data,&rect,DT_WORDBREAK);
}

解决方案 »

  1.   

    在OnPaint()中,要使用CPaintDC,不要用CClientDC!
      

  2.   

    CClientDC ClientDC(this);
      //OnPrepareDC(&ClientDC);
      CRect rectClient;
      GetClientRect(rectClient);   //使用映射模式设置原点
      ClientDC.SetMapMode(MM_ISOTROPIC);
      ClientDC.SetViewportOrg((rectClient.Width())/2,(rectClient.Height())/2);    CRect rect(50,-50,100,-200);
      CString data = "祝大家十月一国庆节快乐!";
      ClientDC.DrawText(data,&rect,DT_WORDBREAK);
      

  3.   

    CRect算术函数使用基本的Win32 RECT算术函数,它假定右比左大,下比上大,所以是坐标的问题;
    这样就行了:CRect rect(10,10,100,-300);