问题描述如下:
对话框有三个控件,一个Edit,一个TreeView,一个ListView.我希望在Edit里可以输入一些命令,来修改文档中的数据.在输入命令后,按回车键,开始解析命令,并进行处理代码如下: switch( Id )
{
case IDOK:
{
GetDlgItemText( hwndDlg, IDC_EDIT, comline, 299 );
Command* com = Processor.ProcessComLine( comline );
if( !com )
{
MessageBox( hwndDlg, Processor.GetErrorString().c_str(), "错误",
MB_OK );
}else{
Dlg.GetCurDoc()->AddCommand( com );
SetDlgItemText( hwndDlg, IDC_EDIT, "" ); Dlg.ListViewAddItem( doc->GetDoc()->GetRateBase()->GetManager()
->GetRes( Processor.GetCommandInfo()) );
}
}
break;
在Edit控件中按ENTER键时,对话框会产生一个WM_COMMAND消息,这段代码的确也可以达到预期的效果。但是,并非只是在按回车时,才会产生这样的消息,我在编辑TreeView控件的里的结点的Text时,居然也会产生一个ID 为 IDOK的WM_COMMAND消息。 ListView在编辑时也会产生同样的消息。请问这是为什么?
对话框有三个控件,一个Edit,一个TreeView,一个ListView.我希望在Edit里可以输入一些命令,来修改文档中的数据.在输入命令后,按回车键,开始解析命令,并进行处理代码如下: switch( Id )
{
case IDOK:
{
GetDlgItemText( hwndDlg, IDC_EDIT, comline, 299 );
Command* com = Processor.ProcessComLine( comline );
if( !com )
{
MessageBox( hwndDlg, Processor.GetErrorString().c_str(), "错误",
MB_OK );
}else{
Dlg.GetCurDoc()->AddCommand( com );
SetDlgItemText( hwndDlg, IDC_EDIT, "" ); Dlg.ListViewAddItem( doc->GetDoc()->GetRateBase()->GetManager()
->GetRes( Processor.GetCommandInfo()) );
}
}
break;
在Edit控件中按ENTER键时,对话框会产生一个WM_COMMAND消息,这段代码的确也可以达到预期的效果。但是,并非只是在按回车时,才会产生这样的消息,我在编辑TreeView控件的里的结点的Text时,居然也会产生一个ID 为 IDOK的WM_COMMAND消息。 ListView在编辑时也会产生同样的消息。请问这是为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货