Bonsoir.
D'après le livre de Julian Smart et al., p. 111, la méthode GetSelection() de la classe wxTextCtrl "returns the current selection span in two pointers to long integers".
La documentation donne :
" virtual void GetSelection(long* from, long* to) const
Gets the current selection span. If the returned values are equal, there was no selection.
(...)
Parameters
from : The returned first position.
to : The returned last position. "
Compte tenu de cela, j'ai écrit dans un programme (où ptrZoneTexteDuFrame désigne un pointeur sur un objet d'une classe dérivée de wxFrame) :
Jusqu'à la boucle (comprise), GetSelection() n'intervient pas et tout se déroule comme prévu : les numéros Ansi des caractères sélectionnés sont affichés les uns après les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 wxString chaineSelection = ptrZoneTexteDuFrame->GetStringSelection(); wxMessageBox( "GetStringSelection donne : ", "Message", wxOK, NULL, -1, -1); for (unsigned int i = 0; i < chaineSelection.length(); ++i) { chaineNumero.Printf(wxT("%d"), int(chaineSelection[i])); wxMessageBox( chaineNumero, "Message", wxOK, NULL, -1, -1); } long * ptrSurDebutSelection; long * ptrSurFinSelection; ptrZoneTexteDuFrame->GetSelection(ptrSurDebutSelection, ptrSurFinSelection); // Provoque // un crash.
Quant aux trois dernières instructions, elles sont acceptées par le compilateur mais provoquent un crash à l'exécution.
A toutes fins utiles, je travaille sous Windows XP et compile avec Dev-C++.
Quelqu'un peut-il me dire si j'ai fait une faute ?
Merci d'avance.
M.
Partager