Caret d'une CEdit dans un ocx
J'ai un problème d'affichage du caret (le curseur pour le texte dans une edit) dans un ocx. Lorsque je crée et que j'affiche mon edit, aucun probleme tout fonctionne. Par contre si je cache l'edit et que j'essaie à nouveau de l'afficher, le caret n'est plus là. Je peux cependant sélectionner le texte avec la souris meme si le caret ne s'affiche toujours pas.
Voici les opérations que j'essaie de faire pour l'afficher, mais ce n'est pas suffisant.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
m_pEditBox->ShowWindow(SW_SHOW);
m_pEditBox->MoveWindow(rcCell);
m_pEditBox->SetActiveWindow();
m_pEditBox->SetCapture();
m_pEditBox->BringWindowToTop();
m_pEditBox->SetFocus();
m_pEditBox->Invalidate();
m_pEditBox->ShowCaret();
m_pEditBox->SetWindowText(strText);
m_pEditBox->SetSel(0, -1); |
Re: Caret d'une CEdit dans un ocx
Citation:
Envoyé par tyarcaouen
J'ai un problème d'affichage du caret (le curseur pour le texte dans une edit) dans un ocx. Lorsque je crée et que j'affiche mon edit, aucun probleme tout fonctionne. Par contre si je cache l'edit et que j'essaie à nouveau de l'afficher, le caret n'est plus là. Je peux cependant sélectionner le texte avec la souris meme si le caret ne s'affiche toujours pas.
Voici les opérations que j'essaie de faire pour l'afficher, mais ce n'est pas suffisant.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
m_pEditBox->ShowWindow(SW_SHOW);
m_pEditBox->MoveWindow(rcCell);
m_pEditBox->SetActiveWindow();
m_pEditBox->SetCapture();
m_pEditBox->BringWindowToTop();
m_pEditBox->SetFocus();
m_pEditBox->Invalidate();
m_pEditBox->ShowCaret();
m_pEditBox->SetWindowText(strText);
m_pEditBox->SetSel(0, -1); |
salut, le moins que l'on puisse dire c'est que tu lui mets le compte lol
bon tu le caches comment ton ocx par un ShowWindow(SW_HIDE) ?
à mon avis :
le movewindow ,SetActiveWindow,BringWindowToTop sont inutiles.
pourquoi un SetCapture ? je l'enleverais aussi.
un SetFocus + Invalidate oki.
au fait ton ocx est contruit d'aprés la classe CEdit ?
j'ai ecris un Activex d'apres un CEdit ,et je n'ai jamais eu ce comportement il doit y avoir autre chose.
:D