1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| int ClxwCTRLGraphicPropertiesCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
if (m_pEditBox == NULL) {
m_pEditBox = new ClxwEditBox;
m_pEditBox->Create(WS_CHILD|SW_HIDE|WS_BORDER|ES_AUTOHSCROLL,CRect(0, 0, 10, 10), this, IDC_EDIT);
m_pEditBox->SendMessage(WM_SETFONT, (WPARAM)m_hFont);
}
return 0;
}
void ClxwCTRLGraphicPropertiesCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
{
GetRowCol(point, m_iRowClicked, m_iColClicked);
if (m_iRowClicked != -1 && m_iColClicked != -1) ShowEdit();
COleControl::OnLButtonDblClk(nFlags, point);
}
void ClxwCTRLGraphicPropertiesCtrl::ShowEdit()
{
CRect rcCell = GetRectCell(m_iRowClicked, m_iColClicked);
m_pEditBox->ShowWindow(SW_SHOW);
m_pEditBox->MoveWindow(rcCell);
//strtext a été récupéré précédemment mais j'ai retiré le code pour une plus grande lisibilité
m_pEditBox->SetWindowText(strText);
m_pEditBox->SetSel(0, -1);
}
void ClxwCTRLGraphicPropertiesCtrl::HideEdit()
{
//le traitement avant de cacher l'edit a également été retiré
//des évènements sont envoyés à l'application utilisant l'ocx avant de cacher l'edit
m_pEditBox->ShowWindow(SW_HIDE);
} |
Partager