读书人

蛋疼的有关问题

发布时间: 2013-08-06 16:47:25 作者: rapoo

蛋疼的问题
本帖最后由 suwei2002 于 2013-06-27 12:19:15 编辑 问题描述:这是在修改一个旧程序时发生的,我在一个对话框中添加一个Button时(只有Button会出现这种情况),新添加的Button在运行后一直处于disabled状态。试过很多方法,包括在代码中调用该Button的EnableWindow方法也没有效果(只有EnableWindow无效,SetWindowText、ShowWindow等方法还是正常工作的)

该对话框中还有其它的Button,那些都能正常工作,只有新添加的出问题。不知是不是对话框的哪项设置有问题。

虽然用Radio或Checkbox模拟Button也能实现我想要的效果,但在下还是想弄明白这情况发生的原因。 按钮 EnableWindow 无效
[解决办法]
那你直接API创建一个试试


HWND hwnd = CreateWindow( "BUTTON", // predefined class
"OK", // button text
WS_VISIBLE
[解决办法]
WS_CHILD
[解决办法]
BS_DEFPUSHBUTTON, // styles // Size and position values are given explicitly, because // the CW_USEDEFAULT constant gives zero values for buttons.
10, // starting x position
10, // starting y position
100, // button width
100, // button height
m_hWnd, // parent window
NULL, // No menu
(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),
NULL);

[解决办法]
除去外部原因不谈,主要有以下几点:
1.ID冲突,和菜单之类的什么东西设成相同数字的ID了,在resource.h里面搜一下看看
2.你放的Button所在的父窗体被禁止
3.代码中对某个段的ID做过处理,很不幸新的Button在这个范围内

做个小测试,你在相同位置多拖出来几个按钮,一次多一个,看看按钮的状态
如果第二个按钮就是好的,应该是1
如果第三以上按钮才可用,应该是3
如果一直都是不可用的,那就是2


确定是哪种情况了,再去找代码的问题

读书人网 >VC/MFC

热点推荐