代码之家  ›  专栏  ›  技术社区  ›  Swiss Frank

MFC/Windows:如何将绘制图标限制为矩形?

  •  0
  • Swiss Frank  · 技术社区  · 6 年前

    CDC 方法如 DrawText() 采用一个rect参数来剪辑文本。

    如何剪辑图标的绘图 DrawIcon() DrawIconEx() ?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Swiss Frank    6 年前

    可以将剪辑区域临时添加到CDC以实现此目的。

          hiconMyIcon = AfxGetApp()->LoadIcon( IDI_MY_ICON );
    
          CRgn rgn;
          rgn.CreateRectRgnIndirect( &rect );
          pdc->SelectClipRgn( &rgn );
          pdc->DrawIcon( rect.left, rect.top, hiconMyIcon );
          // or if you want a specific size of icon:
          // DrawIconEx( pdc->GetSafeHdc(), rect.left, rect.top,
          //             hiconMyIcon, 16, 16, 0, 0, DI_NORMAL );
          pdc->SelectClipRgn( NULL );