MSDN SetBitmap 不起作用,CButton 显示为空白
MSDN SetBitmap doesn't work, CButton shows up blank
我正在尝试使用 CButton::SetBitmap()
从资源中获取的 bmp 图像创建一个按钮。使用此代码:
BOOL MyDialog::OnInitDialog()
{
__super::OnInitDialog();
m_myBitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_MY_BITMAP ));
m_myButton.SetBitmap( m_myBitmap );
return TRUE;
}
但是按钮显示为灰色,上面没有图像。我验证了我的位图是否使用 GDIPlus 正确加载,将其保存到 jpeg 中,一切看起来都很好。为什么图像没有显示在按钮上?
我找到了。您需要在 CButton 上设置 BS_BITMAP
标志,否则什么也不会发生。此外,似乎有 2 个函数可以让您修改按钮样式:
CButton::ModifyStyle();
CButton::SetButtonStyle();
并且由于某些不明原因 CButton::SetButtonStyle();
没有为我正确设置标志,因此造成了混乱。
正确加载的资源有效:
BOOL MyDialog::OnInitDialog()
{
__super::OnInitDialog();
m_myBitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_MY_BITMAP ));
m_myButton.ModifyStyle( 0, BS_BITMAP );
m_myButton.SetBitmap( m_myBitmap );
return TRUE;
}
我正在尝试使用 CButton::SetBitmap()
从资源中获取的 bmp 图像创建一个按钮。使用此代码:
BOOL MyDialog::OnInitDialog()
{
__super::OnInitDialog();
m_myBitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_MY_BITMAP ));
m_myButton.SetBitmap( m_myBitmap );
return TRUE;
}
但是按钮显示为灰色,上面没有图像。我验证了我的位图是否使用 GDIPlus 正确加载,将其保存到 jpeg 中,一切看起来都很好。为什么图像没有显示在按钮上?
我找到了。您需要在 CButton 上设置 BS_BITMAP
标志,否则什么也不会发生。此外,似乎有 2 个函数可以让您修改按钮样式:
CButton::ModifyStyle();
CButton::SetButtonStyle();
并且由于某些不明原因 CButton::SetButtonStyle();
没有为我正确设置标志,因此造成了混乱。
正确加载的资源有效:
BOOL MyDialog::OnInitDialog()
{
__super::OnInitDialog();
m_myBitmap=::LoadBitmap(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_MY_BITMAP ));
m_myButton.ModifyStyle( 0, BS_BITMAP );
m_myButton.SetBitmap( m_myBitmap );
return TRUE;
}