如何使 MSVS C++ CToolBar 上的按钮连同它们的图像一起变大?
Posted
技术标签:
【中文标题】如何使 MSVS C++ CToolBar 上的按钮连同它们的图像一起变大?【英文标题】:How can you make buttons on a MSVS C++ CToolBar larger along with their images? 【发布时间】:2009-04-07 14:46:52 【问题描述】:我们有一个触摸屏,但工具栏太小了,我肉肉的手指无法点击。有没有一种简单的方法可以让工具栏按钮变得更大更容易点击?
到目前为止,我已经尝试了一些事情:
m_toolbar.SetSizes( CSize(64,64), CSize(50,50) );
m_toolbar.SetSizes( CSize(64,64), CSize(50,50) );
m_toolbar.GetToolBarCtrl().SetButtonWidth( 64, 64 );
m_toolbar.GetToolBarCtrl().SetButtonSize( CSize(64, 64) );
这些方法都不会拉伸图像。按钮变得更大,并且功能齐全,但图像不会像通常那样与按钮重叠。我希望为图标保留一个图像列表,并拉伸图像以适应。
【问题讨论】:
我决定使用第二个工具栏资源并手动编辑图像。自动缩放它们将是一个更好的解决方案(从大到小缩放),这样您就不必在发生变化时更新两个工具栏。 【参考方案1】:在创建工具栏时,创建一个大小为 64x64 的空 CImageList(我们称之为 large)。从资源中加载原始图片列表(我们称之为small)。
遍历 small 中的每个图像并将其复制/调整为 large。 然后将 large 分配给您的工具栏。有点麻烦的bui应该可以工作。
HTH,
【讨论】:
【参考方案2】:据我所知,没有办法根据按钮的大小调整图像的大小。 MFC 应用程序使用 bmp 而不是矢量图像。
因此,您必须提供具有所需尺寸的 bmp 图像。
您可以使用 CImageList 和 SetImageList 来设置图像,但是您必须这样做 在那里用不想要的大小初始化图像。
【讨论】:
以上是关于如何使 MSVS C++ CToolBar 上的按钮连同它们的图像一起变大?的主要内容,如果未能解决你的问题,请参考以下文章
Windows 10 上的 anaconda cythonize C++