1. 第五课 
  2. 掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。通过对卡拉OK程序的编写,讲解定时器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。 
  3.  
  4.  
  5.     CClientDC dc(this); 
  6.     TEXTMETRIC tm;            //文本信息结构体          
  7.     dc.GetTextMetrics(&tm);     //得到文本信息 
  8.  
  9.  
  10. //  CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);  //创建插入符 
  11.  
  12.      
  13.     bitmap.LoadBitmap(IDB_BITMAP1);             //创建位图插入符 
  14.     CreateCaret(&bitmap); 
  15.     ShowCaret();                           //显示插入符, 
  16.  
  17.     SetTimer(1,100,NULL);                  //设定定时器 
  18.  
  19.  
  20.     CString str;                    //字符串类 
  21.     str="维新科学技术培训中心"
  22.     pDC->TextOut(50,50,str); 
  23.  
  24.     CSize sz=pDC->GetTextExtent(str);         //得到文本长度 
  25.  
  26.     str.LoadString(IDS_WEIXIN);                //加载字符串资源 
  27.     pDC->TextOut(0,200,str); 
  28.  
  29.     pDC->BeginPath();                      //创建路径 
  30.     pDC->Rectangle(50,50,50+sz.cx,50+sz.cy); 
  31.     pDC->EndPath(); 
  32.     pDC->SelectClipPath(RGN_DIFF);//路径作为设备环境的一个剪切区域。通过使用特定的模式把新的区域与任何存在的剪切区域合并。  
  33.  
  34.  
  35.  
  36.     CClientDC dc(this); 
  37.     CFont font;               //创建字体对象 
  38.     font.CreatePointFont(300,"华文行楷",NULL);         //创建指定字体类型和字体大小  
  39.     CFont *pOldFont=dc.SelectObject(&font);            //保存前个字体 
  40.     dc.SetTextColor(dc.GetBkColor());                  //设置文本颜色 
  41.  
  42.     SetCaretPos(pt);                                    //设定插入符的位置 
  43.