在MFC中切换按钮

时间:2014-04-28 06:59:13

标签: c++ visual-c++ mfc

如何在MFC对话框中设置切换按钮? 就像你在智能手机中打开wifi时常用的一样,按下开关按钮和辐射按钮不是我的需要,

Uptil现在我已经达到改变开关按钮以推动效果,但我需要真正的切换按钮效果,如智能手机中描述的那样。

请记住,它支持从关闭拖动到反之亦然.... :(

2 个答案:

答案 0 :(得分:1)

您可以保留按下按钮时可见的2张图像和未按下按钮时的图像。现在,您可以在每次单击按钮时使用CBitmapButton::LoadBitmapsCButton::SetBitmap更改图像。确保使按钮无效,以便新图像生效。

//load your bitmaps (in constructor if dialog)
m_wifionBitmap.LoadBitmap(IDB_WIFION);
m_wifioffBitmap.LoadBitmap(IDB_WIFIOFF);

// In turn_on_wifi()
CButton* pButton = (CButton*)GetDlgItem(IDC_WIFI_TOGGLE_BUTTON);
pButton->SetBitmap(HBITMAP)m_wifionBitmap);

// In turn_off_wifi()
CButton* pButton = (CButton*)GetDlgItem(IDC_WIFI_TOGGLE_BUTTON);
pButton->SetBitmap(HBITMAP)m_wifioffBitmap);

答案 1 :(得分:1)

已在codeproject中编码, A Better Bitmap Button Class