button是灰色的.我用button->enablewindow(true)也只能改变暂时为可用(一瞬间,确切的说).
怎么才能使button总是可用?
谢谢了.
19 个解决方案
#1
给该button写一个消息处理函数就可以了,一般在CMainFrm里写
#2
这估计是DialogBar的问题,就象ToolBar一样,可能你需要为这个Button设置事件响应。
#3
楼上说得非常对
#4
OnButton()
hehe
hehe
#5
相应该按钮的UPDATE_COMMAND_UI,然后pCmdUI->Enable();
#6
我试着为他响应事件,可是没有用.
还有,添加一个static 控件,他的caption是汉字的话,好象是乱码.
还有,添加一个static 控件,他的caption是汉字的话,好象是乱码.
#7
button灰化的时候,好象不会响应什么消息,比如单击,双击.
#8
还有,添加一个static 控件,他的caption是汉字的话,好象是乱码.
----------------------------------
你对话框的字体有没有选中文?
----------------------------------
你对话框的字体有没有选中文?
#9
问题解决了吗?
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
#10
你要为这个button添加事件,确定一个功能,否则更菜单一样,默认显示灰色。
你static控件这样赋值试试看:
m_static.SetWindowText(_T(中文));
你static控件这样赋值试试看:
m_static.SetWindowText(_T(中文));
#11
问题解决了吗?
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
不是这样的,我是插入一个对话框IDD_DIALOGBAR,不过你可以先说说稍微麻烦的方法.
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
不是这样的,我是插入一个对话框IDD_DIALOGBAR,不过你可以先说说稍微麻烦的方法.
#12
_T("中文"));
我上面写漏了。
我上面写漏了。
#13
tonybaobao(Tony宝宝) :
恩,但是在classwizard中button好象没有cmdupdata,只有菜单有把.
恩,但是在classwizard中button好象没有cmdupdata,只有菜单有把.
#14
我指的是pCmdUI->Enable();
#15
没有为该按钮添加处理函数,用class wizard为该按钮添加事件处理
你对话框的字体有没有选中文?
你对话框的字体有没有选中文?
#16
给我代码,wuxf_brave@sina.com
#17
如果你是添加一个对话框资源的话,
1,生成新类,从CDialog派生的
2,把这个类的头文件和实现文件中所有的CDialog改为CDialogBar,并且把构造函数重后面的那块初始化列表删掉,否则编译通不过的
3,自己添加initdialog函数
4,在mainframe中oncreate添加:
if(!m_DialogBar**.Create(this, IDD_DIALOG_**, CBRS_TOP|CBRS_FLYBY|CBRS_TOOLTIPS, -1) || (!m_DialogBar**.initdialog())
{
TRACE0("FIALE");
return -1;
}
m_dialogbar.enabledocking(CBRS_ORIENT_HORZ);
Dockcontrolbar(&m_dialogbar**)
5,添加虚拟函数OnCmdMsg(...)
{
if(m_DialogBar**.oncmdmsg(。。))
return true;
return cmainframe::oncmdmsg(..);
}
6,最后显示对话条的菜单响应函数里面
{
showcontrolbar(&m_dialogbar**, (m_dialgobar**.getstyle(&ws_visible)) == 0, FALSE);
}
这样应该差不多了
1,生成新类,从CDialog派生的
2,把这个类的头文件和实现文件中所有的CDialog改为CDialogBar,并且把构造函数重后面的那块初始化列表删掉,否则编译通不过的
3,自己添加initdialog函数
4,在mainframe中oncreate添加:
if(!m_DialogBar**.Create(this, IDD_DIALOG_**, CBRS_TOP|CBRS_FLYBY|CBRS_TOOLTIPS, -1) || (!m_DialogBar**.initdialog())
{
TRACE0("FIALE");
return -1;
}
m_dialogbar.enabledocking(CBRS_ORIENT_HORZ);
Dockcontrolbar(&m_dialogbar**)
5,添加虚拟函数OnCmdMsg(...)
{
if(m_DialogBar**.oncmdmsg(。。))
return true;
return cmainframe::oncmdmsg(..);
}
6,最后显示对话条的菜单响应函数里面
{
showcontrolbar(&m_dialogbar**, (m_dialgobar**.getstyle(&ws_visible)) == 0, FALSE);
}
这样应该差不多了
#18
消息映射要加载CMainFrame中
#19
谢谢各位的解答和帮助,问题已经解决了,是这样的。
为button添加 ON_UPDATE_COMMAND_UI(IDC_BUTTON1,OnUpdateButton1)处理就可以了。
具体细节我好象是程序利用空闲时间象dlgbar发送Update消息(记不清了),如果控件没有处理,就用缺省方式处理,即控件是无效的(button就是此类控件),所以只要给控件一个处理或更新函数就可以回避调用缺省方式了。
具体细节可以看看 mfc100问(具体书名忘了)。
我说的不对的地方欢迎给我发消息(csdn帐号:enoloo);欢迎交流
为button添加 ON_UPDATE_COMMAND_UI(IDC_BUTTON1,OnUpdateButton1)处理就可以了。
具体细节我好象是程序利用空闲时间象dlgbar发送Update消息(记不清了),如果控件没有处理,就用缺省方式处理,即控件是无效的(button就是此类控件),所以只要给控件一个处理或更新函数就可以回避调用缺省方式了。
具体细节可以看看 mfc100问(具体书名忘了)。
我说的不对的地方欢迎给我发消息(csdn帐号:enoloo);欢迎交流
#20
#1
给该button写一个消息处理函数就可以了,一般在CMainFrm里写
#2
这估计是DialogBar的问题,就象ToolBar一样,可能你需要为这个Button设置事件响应。
#3
楼上说得非常对
#4
OnButton()
hehe
hehe
#5
相应该按钮的UPDATE_COMMAND_UI,然后pCmdUI->Enable();
#6
我试着为他响应事件,可是没有用.
还有,添加一个static 控件,他的caption是汉字的话,好象是乱码.
还有,添加一个static 控件,他的caption是汉字的话,好象是乱码.
#7
button灰化的时候,好象不会响应什么消息,比如单击,双击.
#8
还有,添加一个static 控件,他的caption是汉字的话,好象是乱码.
----------------------------------
你对话框的字体有没有选中文?
----------------------------------
你对话框的字体有没有选中文?
#9
问题解决了吗?
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
#10
你要为这个button添加事件,确定一个功能,否则更菜单一样,默认显示灰色。
你static控件这样赋值试试看:
m_static.SetWindowText(_T(中文));
你static控件这样赋值试试看:
m_static.SetWindowText(_T(中文));
#11
问题解决了吗?
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
不是这样的,我是插入一个对话框IDD_DIALOGBAR,不过你可以先说说稍微麻烦的方法.
我以前也曾经遇到过这样的问题
你是project|add to project|componets and controls |cdialogbar这样生成对话条的吗?
如果你还没有解决
我有一种稍微麻烦的方法
不是这样的,我是插入一个对话框IDD_DIALOGBAR,不过你可以先说说稍微麻烦的方法.
#12
_T("中文"));
我上面写漏了。
我上面写漏了。
#13
tonybaobao(Tony宝宝) :
恩,但是在classwizard中button好象没有cmdupdata,只有菜单有把.
恩,但是在classwizard中button好象没有cmdupdata,只有菜单有把.
#14
我指的是pCmdUI->Enable();
#15
没有为该按钮添加处理函数,用class wizard为该按钮添加事件处理
你对话框的字体有没有选中文?
你对话框的字体有没有选中文?
#16
给我代码,wuxf_brave@sina.com
#17
如果你是添加一个对话框资源的话,
1,生成新类,从CDialog派生的
2,把这个类的头文件和实现文件中所有的CDialog改为CDialogBar,并且把构造函数重后面的那块初始化列表删掉,否则编译通不过的
3,自己添加initdialog函数
4,在mainframe中oncreate添加:
if(!m_DialogBar**.Create(this, IDD_DIALOG_**, CBRS_TOP|CBRS_FLYBY|CBRS_TOOLTIPS, -1) || (!m_DialogBar**.initdialog())
{
TRACE0("FIALE");
return -1;
}
m_dialogbar.enabledocking(CBRS_ORIENT_HORZ);
Dockcontrolbar(&m_dialogbar**)
5,添加虚拟函数OnCmdMsg(...)
{
if(m_DialogBar**.oncmdmsg(。。))
return true;
return cmainframe::oncmdmsg(..);
}
6,最后显示对话条的菜单响应函数里面
{
showcontrolbar(&m_dialogbar**, (m_dialgobar**.getstyle(&ws_visible)) == 0, FALSE);
}
这样应该差不多了
1,生成新类,从CDialog派生的
2,把这个类的头文件和实现文件中所有的CDialog改为CDialogBar,并且把构造函数重后面的那块初始化列表删掉,否则编译通不过的
3,自己添加initdialog函数
4,在mainframe中oncreate添加:
if(!m_DialogBar**.Create(this, IDD_DIALOG_**, CBRS_TOP|CBRS_FLYBY|CBRS_TOOLTIPS, -1) || (!m_DialogBar**.initdialog())
{
TRACE0("FIALE");
return -1;
}
m_dialogbar.enabledocking(CBRS_ORIENT_HORZ);
Dockcontrolbar(&m_dialogbar**)
5,添加虚拟函数OnCmdMsg(...)
{
if(m_DialogBar**.oncmdmsg(。。))
return true;
return cmainframe::oncmdmsg(..);
}
6,最后显示对话条的菜单响应函数里面
{
showcontrolbar(&m_dialogbar**, (m_dialgobar**.getstyle(&ws_visible)) == 0, FALSE);
}
这样应该差不多了
#18
消息映射要加载CMainFrame中
#19
谢谢各位的解答和帮助,问题已经解决了,是这样的。
为button添加 ON_UPDATE_COMMAND_UI(IDC_BUTTON1,OnUpdateButton1)处理就可以了。
具体细节我好象是程序利用空闲时间象dlgbar发送Update消息(记不清了),如果控件没有处理,就用缺省方式处理,即控件是无效的(button就是此类控件),所以只要给控件一个处理或更新函数就可以回避调用缺省方式了。
具体细节可以看看 mfc100问(具体书名忘了)。
我说的不对的地方欢迎给我发消息(csdn帐号:enoloo);欢迎交流
为button添加 ON_UPDATE_COMMAND_UI(IDC_BUTTON1,OnUpdateButton1)处理就可以了。
具体细节我好象是程序利用空闲时间象dlgbar发送Update消息(记不清了),如果控件没有处理,就用缺省方式处理,即控件是无效的(button就是此类控件),所以只要给控件一个处理或更新函数就可以回避调用缺省方式了。
具体细节可以看看 mfc100问(具体书名忘了)。
我说的不对的地方欢迎给我发消息(csdn帐号:enoloo);欢迎交流