void cmdListCtrl::RunMenu(const int id,cmdListCtrl* ctrl) { int item = ctrl->GetNextItem(-1,wxLIST_NEXT_ALL,wxLIST_STATE_FOCUSED); switch(id) { case MENU_CMD_ADD: { DlgAddNewCmd* dlg=new DlgAddNewCmd(NULL); if (dlg->ShowModal() == wxID_OK) ctrl->ReLoadCmds(); dlg->Destroy(); } break; case MENU_CMD_EDIT: if (item == -1) break; { DlgAddNewCmd* dlg = new DlgAddNewCmd(MENU_CMD_EDIT); // dlg->flags = MENU_CMD_EDIT; dlg->SetCmdID(ctrl->GetItemText(item,CMDLIST_COL_ID)); dlg->cmdName->SetValue(ctrl->GetItemText(item,CMDLIST_COL_NAME)); dlg->cmdDesc->SetValue(ctrl->GetItemText(item,CMDLIST_COL_DESC)); dlg->cmdKey->SetValue(ctrl->GetItemText(item,CMDLIST_COL_KEY)); dlg->cmdLine->SetValue(ctrl->GetItemText(item,CMDLIST_COL_CMD)); if (dlg->ShowModal() == wxID_OK) ctrl->ReLoadCmds(); dlg->Destroy(); } break; case MENU_CMD_DEL: if (item == -1) break; if (ctrl->GetSelectedItemCount() == 1) { if (wxMessageBox(wxString::Format("真的要删除该命令吗?\n名称:%s\n命令行:%s",ctrl->GetItemText(item,CMDLIST_COL_NAME),ctrl->GetItemText(item,CMDLIST_COL_CMD)) ,"删除确认",wxYES_NO | wxICON_WARNING) != wxYES) break; if (cmdListCtrl::onDelete(ctrl->GetItemText(item))) ctrl->DeleteItem(item); break; } if (wxMessageBox(wxString::Format("真的要删除所选择的[%d]个命令吗?",ctrl->GetSelectedItemCount()),"删除确认",wxYES_NO | wxICON_WARNING) == wxYES) { wxArrayLong sel; for(item = -1;;) { item = ctrl->GetNextItem(item,wxLIST_NEXT_ALL,wxLIST_STATE_SELECTED); if (item == -1) break; sel.Add(item); } for(item = sel.size() - 1; item >= 0; --item) { if (cmdListCtrl::onDelete(ctrl->GetItemText(sel[item]))) ctrl->DeleteItem(sel[item]); } sel.Clear(); } break; case ID_TOOL_CHECK: wxMessageBox("命令检测,尚未完成"); break; } // ctrl->Refresh(); }