根据通过/失败返回,在MFC对话框中更改LED颜色



我正在寻找一种使用MFC对话框窗口的校准传递还是失败的用户视觉反馈的方法。我想拥有2个" LED":一个红色(失败)和一个绿色(通过)。测试完成后,它将将"通过"或"失败"值传递回主,并点亮相应的LED。

我正在考虑的一种方法是为每个LED使用两个图像(一个" unlit"和一个"点亮"),然后通过图片控制cstatic在两者之间切换。但是,我不确定如何将其实施到代码中,因为我对MFC非常没有经验,并且我正在寻找任何帮助或建议,您可能可以给我。本质上,它应该看起来像:

if (RunTest(void))
{
    //Replace IDB_RED_OFF with IDB_RED_LIT
}
else
{
    //Replace IDB_GREEN_OFF with IDB_GREEN_LIT
}

其中idb_xxx表示位图图像资源。或者,如果您有更好的方法,我全都是耳朵。

谢谢

您的方法正确。您可以使用MFC的CBITMAPBUTTON类绘制位图按钮。这是http://msdn.microsoft.com/en-us/vstudio/bb931337

您可能也需要处理透明度。我不记得确切地记得,但是Cbitmapbutton可能支持它。另外,您将不得不使用http://www.codeproject.com/articles/57/cbuttonst-v-mfc-flat-buttons

最简单的方法可能是在同一位置具有两个静态图像控件,并在隐藏另一个位置时使一个可见。您可以使用SW_HIDESW_SHOWNA参数使用CWnd::ShowWindow进行此操作。

最新更新