//单击列表框2// void CNewConfigGraChiDlg::OnNMClickList2(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 NM_LISTVIEW *pEditCtrl = (NM_LISTVIEW *)pNMHDR; if (pEditCtrl->iItem == -1 || pEditCtrl->iSubItem!=3) //点击到非工作区// { if (m_bHaveEditCreate == true) //如果之前创建了编辑框就销毁掉// { distroyEdit(&m_list2, &m_Edit, m_OldItem, m_OldSubItem); //销毁单元格编辑框对象// m_bHaveEditCreate = false; } } else { if (m_bHaveEditCreate == true) { if (!(m_OldItem == pEditCtrl->iItem && m_OldSubItem == pEditCtrl->iSubItem)) //如果点中的单元格不是之前创建好的// { distroyEdit(&m_list1, &m_Edit, m_OldItem, m_OldSubItem); m_bHaveEditCreate = false; createEdit(pEditCtrl, &m_Edit, m_OldItem, m_OldSubItem, m_bHaveEditCreate); //创建编辑框// } else //点中的单元格是之前创建好的// { m_Edit.SetFocus(); //设置为焦点// } } else { m_OldItem = pEditCtrl->iItem; //将点中的单元格的行赋值给“刚编辑过的行”以便后期处理// m_OldSubItem = pEditCtrl->iSubItem; //将点中的单元格的行赋值给“刚编辑过的列”以便后期处理// createEdit(pEditCtrl, &m_Edit, m_OldItem, m_OldSubItem, m_bHaveEditCreate); //创建编辑框// } } *pResult = 0; }
Interior(QWidget* w) { // LOGGER; curEdit_ = NULL; spl_ = new QSplitter(Qt::Vertical); QVBoxLayout* vBox = new QVBoxLayout(); vBox->setContentsMargins(0, 0, 0, 0); vBox->addWidget(spl_); w->setLayout(vBox); edit1_ = createEdit(); edit2_ = createEdit(); spl_->addWidget(edit1_); spl_->addWidget(edit2_); edit1_->setDocument(edit2_->document()); w->setFocusProxy(spl_); spl_->setSizes(QList<int>() << 0 << spl_->height()); hlTimer_ = new QTimer( w ); hlTimer_->setSingleShot( true ); connect(hlTimer_, SIGNAL(timeout()), w, SLOT(highlightWord())); }