从图标修剪空白

时间:2013-10-21 08:18:47

标签: mfc icons

我正在开发一个旧的MFC应用程序。 该应用程序使用按钮上应用的一些图标,例如:

m_btnMyButton.SetIcon(IDI_ICON21, BS_CENTER, IDI_ICON21);

我希望将图标放在按钮的中央,但是图标本身不会居中。基本上它们似乎被随机量抵消了。例如:enter image description here(我添加了黑色矩形来表示我的意思)。

我知道在编译资源之前我可以“修剪”这些图标的空白/这些图标的中心。(我知道ImageMagik可以为我批量执行此操作。)但我不想更改原始图标磁盘(可在其他地方使用)。

我想要做的是在我的代码中创建一个函数,在应用图标之前进行修剪。这样我就不用担心任何新的或错过的图标了。

任何人都可以提供一些有关我如何“修剪”代码中图标的见解吗? 需要记住的是,这些图标的偏移量是随机的,所以我需要先找到要修剪的偏移量。

2 个答案:

答案 0 :(得分:-1)

如果将按钮定义为所有者绘图,则可以在渲染按钮时将图标放置在任何位置。

答案 1 :(得分:-1)

创建一个执行以下操作的函数:

  1. 创建图标大小的DC
  2. 使用透明色填充DC
  3. 使用DrawIcon api绘制带有所需x / y偏移的图标。
  4. 从此位图创建一个新图标。