//单击列表框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;
}
Ejemplo n.º 2
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()));
	}