MFC / Windows: как рисование иконки может быть ограничено прямоугольником?

Методы CDC такие как DrawText() принимают прямоугольный аргумент, который DrawText() текст.

Как я могу обрезать рисунок значка с DrawIcon() или DrawIconEx() ?

Всего 1 ответ


Для этого можно временно добавить область клипа в 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 );

Есть идеи?

10000