在vs2013MFC编程中,相信多半人使用的是**版的软件,各种问题不断,其中大家可能会遇到程序运行界面的按钮为灰色。根据笔者的经验,对于这个问题多半是由于该按钮底层的属性值错误。下面笔者举个例子对于这些情况做个说明。

     1、笔者首先给程序界面添加一个名字为“测试”的按钮,如下图:

vs2013版MFC按钮为灰色

vs2013版MFC按钮为灰色

                                                 图1

运行结果如下图:

vs2013版MFC按钮为灰色

     vs2013版MFC按钮为灰色

                                                图2

解决方法:查看该按钮底层的属性值,必须要求该属性值与该按钮对应的ID值一样。那么怎么查看到该按钮底层的属性值呢?方法很简单,因为在该按钮的底层有其属性值和该按钮的ID对应,所以我们只需要通过查找的办法找到按钮底层属性定义;比如在本列中,“测试”按钮的ID为“ID_TEST”,在MFC中整个解决方案中查找“ID_TEST”,如下图:

vs2013版MFC按钮为灰色

vs2013版MFC按钮为灰色

                                                                                                               图3

我们只需要点击  查找下一个  ,我们会发现整个解决方案中有两个地方有“ID_TEST”出现的地方,一个是该ID定义的地方,一个是该ID在按钮底层属性定义中出现的地方,如下图:

vs2013版MFC按钮为灰色

vs2013版MFC按钮为灰色

                                                                                                       图4 ID号出现在按钮底层属性定义

vs2013版MFC按钮为灰色

 vs2013版MFC按钮为灰色

                                                                                   图5  ID号出现在ID定义的地方

通过对比图4和图5我们会发现,图5中ID号定义的值为32938,图4ID号与该按钮对应的值却为32939,但是该值却没有在图5中上下文定义过,所以该按钮运行的时候为灰色。下面我们将图4中ID好对应的值改为32928如下图所示:

vs2013版MFC按钮为灰色vs2013版MFC按钮为灰色

                                                                                                       图6  改变按钮属性值

运行结果如下图所示:

vs2013版MFC按钮为灰色

vs2013版MFC按钮为灰色

                                                                                                 图7  按钮由失效状态变为有效状态

 好啦,这个问题就这样解决啦,不知道是否解决了亲们的问题vs2013版MFC按钮为灰色vs2013版MFC按钮为灰色vs2013版MFC按钮为灰色

要是有帮助到亲的话,可不要忘了给皮皮点个赞呢vs2013版MFC按钮为灰色


相关文章: