怎么让每次模态对话框在响应菜单命令的时候都正常显示出来呢?[/
如何让每次模态对话框在响应菜单命令的时候都正常显示出来呢?[/
vc2013+win7 64bit
程序中两个命令,一个弹出对话框(快捷键F3),另一个操作视图界面中的控件显示(快捷键F4).
////////////////////////////////////////////////////////////////////////////////////////////////////
void CYDuView::OnSearch() //——快捷键F3
{
// TODO: 在此添加命令处理程序代码
bMeasureing = false;//每次按键后赋值
if (!bMeasureing)
{
CDataSearch dlg;
If(IDOK==dlg.DoModal())
{
……
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
void CYDuView::OnA() //——快捷键F4
{
// TODO: 在此添加命令处理程序代码
bMeasureing = true;//每次按键后赋值
if (bMeasureing)
{
//处理视图中的控件的显示。
}
}
菜单命令的响应函数(快捷键F3)中的内容如上。
////////////////////////////////////////////////////////////////////////////////////////////////////
现在的状态是程序运行过程中一次按F3,再按别的命令没有问题。
出问题的状态:交叉按不同次数的F3和F4,则在不定的某次连续按两次或以上F3时,第二次F3的模态对话框没有显示出来,必须按一次Enter键才能使后面的程序恢复焦点(感觉像是模态对话框没有退出时的状态)。
如何让每次模态对话框在响应菜单命令的时候都正常显示出来呢?
------解决思路----------------------
模态对话框祖塞父窗体消息循环。
你要么改用非模态的,就会很容易操作。非模态也可以做到模态的效果,设置焦点事件来解决
------解决思路----------------------
上面的两个if貌似没有意义。
把程序中其它的代码都去掉,对话框中的代码和F4里的代码也去掉,看看是否正常。如果正常,再逐一加上,能查出是什么代码有问题。如果还不正常,重建一个工程,只加F3, F4这两个功能试试。
vc2013+win7 64bit
程序中两个命令,一个弹出对话框(快捷键F3),另一个操作视图界面中的控件显示(快捷键F4).
////////////////////////////////////////////////////////////////////////////////////////////////////
void CYDuView::OnSearch() //——快捷键F3
{
// TODO: 在此添加命令处理程序代码
bMeasureing = false;//每次按键后赋值
if (!bMeasureing)
{
CDataSearch dlg;
If(IDOK==dlg.DoModal())
{
……
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
void CYDuView::OnA() //——快捷键F4
{
// TODO: 在此添加命令处理程序代码
bMeasureing = true;//每次按键后赋值
if (bMeasureing)
{
//处理视图中的控件的显示。
}
}
菜单命令的响应函数(快捷键F3)中的内容如上。
////////////////////////////////////////////////////////////////////////////////////////////////////
现在的状态是程序运行过程中一次按F3,再按别的命令没有问题。
出问题的状态:交叉按不同次数的F3和F4,则在不定的某次连续按两次或以上F3时,第二次F3的模态对话框没有显示出来,必须按一次Enter键才能使后面的程序恢复焦点(感觉像是模态对话框没有退出时的状态)。
如何让每次模态对话框在响应菜单命令的时候都正常显示出来呢?
------解决思路----------------------
模态对话框祖塞父窗体消息循环。
你要么改用非模态的,就会很容易操作。非模态也可以做到模态的效果,设置焦点事件来解决
------解决思路----------------------
上面的两个if貌似没有意义。
把程序中其它的代码都去掉,对话框中的代码和F4里的代码也去掉,看看是否正常。如果正常,再逐一加上,能查出是什么代码有问题。如果还不正常,重建一个工程,只加F3, F4这两个功能试试。