• MFC路径层的使用(BeginPath和EndPath函数)


    响应WM_PAINT消息的代码如下:

     1 void CTextView::OnDraw(CDC* pDC)
     2 {
     3     CTextDoc* pDoc = GetDocument();
     4     ASSERT_VALID(pDoc);
     5     if (!pDoc)
     6         return;
     7 
     8     CString str( "VC++ 深入编程!" );
     9     /*
    10     CString str;
    11     str = "VC++ 深入编程!";
    12     */
    13     pDC->TextOutW( 50, 50, str );
    14     CSize sz = pDC->GetTextExtent( str );
    15 
    16     str.LoadStringW( IDS_STRINGVC );
    17     pDC->TextOutW( 0, 200, str );
    18 
    19 
    20     // 路径层的妙用(使用路径层可以实现与剪切区域的交互)
    21     pDC->BeginPath();
    22     pDC->Rectangle( 50, 50, 50+sz.cx, 50+sz.cy );
    23     pDC->EndPath();
    24     pDC->SelectClipPath( RGN_DIFF );   // 使新的裁剪区域包含了当前的裁剪区域,但把当前的路径层的范围排除在外
    25     //pDC->SelectClipPath( RGN_AND );  // 使新的裁剪区域是当前裁剪区域和当前路径层的交集
    26     //pDC->SelectClipPath( RGN_XOR );  
    27 
    28     for( int i = 0; i <= 300; i += 10)
    29     {
    30         pDC->MoveTo(0, i);
    31         pDC->LineTo(300, i);
    32         pDC->MoveTo(i, 0);
    33         pDC->LineTo(i, 300);
    34     }
    35 }

    效果如下:

  • 相关阅读:
    Hello World
    JAVA环境变量配置
    基本的Dos命令
    博客的重要性
    MySQL——合并查询结果
    mysql中使用正则表达式查询
    MySQL高级查询
    MySQL之常用函数
    MySQL之多表操作
    MySQL之增删改查
  • 原文地址:https://www.cnblogs.com/dongsheng/p/3595749.html
Copyright © 2020-2023  润新知