gracias zelion!!!<br>prepare un codigo ejemplo donde me dal el problema<br>si cambias el puntero "buscar" poniendolo en un ambito publico( antecediendo a la definicion de la clase) no te dara el error<br>es realmenter raro
<br><br>//=================================================================<br>#include <wx/wx.h><br>#include <wx/grid.h><br>using namespace std;<br>class frame:public wxFrame{<br>    public:<br>    frame(wxWindow* p,const string& t):wxFrame(p,-1,t){Centre();}
<br>};<br>frame* mainframe;            <br><br>class form:public wxDialog{<br>    <br><br>    protected:                                                        //    PROPIEDADES<br>    friend class textbox;                                        //    acceso a la clase textbox
<br>    friend class button;                                            //    acceso a la clase button<br>    wxBoxSizer* layout;                                            //    sizer principal<br>    wxBoxSizer* page;                                                //    sizer de contenido
<br>    wxBoxSizer* header;                                            //    sizer cabecera<br>    wxBoxSizer* body;                                                //    sizer del cuerpo del formulario<br>    wxBoxSizer* footer;                                            //    sizer de pie de pagina
<br>    wxGrid* grid;                                                    //    contiene el grid de la ventana<br>    wxButton* acept;                                                //    boton de aceptar<br>    wxButton* cancel;                                                // cancelar
<br>    wxButton* find;                                                // buscar<br><br>    wxTextCtrl* buscar;                                            // el puntero fantasma<br><br>                                                                    //    EVENTOS
<br>    void acept_procs(wxMouseEvent&);                        //    ocurre cuando se preciona el boton de aceptar<br>    void cancel_procs(wxMouseEvent&);                    //    ocurre cuando se preciona el boton de cancelar
<br>    void find_procs(wxMouseEvent&);                        //    ocurre cuando se preciona el boton de buscar<br>    void keypress(wxKeyEvent&);                            //    ocurre cuando se preciona el boton de buscar
<br>    <br>    public:                                                            //    CONSTRUCTORES<br>    form(const string&);                                            //    constructor sobrecargado<br>    void resize();                                                    //    recalcula el tamano de la ventana
<br>    void refresh();                                                //    actualiza los objetos con la data<br>};<br><br>//    constructor sobrecargado            <br>    form::form(const string& caption):wxDialog(mainframe,-1,caption){
<br>        //    objetos principales<br>        new wxPanel(this);        <br>        layout    =    new wxBoxSizer(wxHORIZONTAL);<br>        SetSizer(layout);<br><br>        //    enmarcando la pagina<br>        layout->Add(15,0,0,wxEXPAND);
<br>        layout->Add(page    = new wxBoxSizer(wxVERTICAL),0,wxEXPAND);<br>        layout->Add(15,0,0,wxEXPAND);<br>        <br>        page->Add(header    = new wxBoxSizer(wxHORIZONTAL),0,wxEXPAND);<br>        page->Add(body        = new wxBoxSizer(wxVERTICAL),0,wxEXPAND);
<br>        page->Add(footer    = new wxBoxSizer(wxHORIZONTAL),0,wxEXPAND);<br>        <br>        //    configurando marge<br>        header->Add(0,15);<br>        footer->Add(0,15);<br><br>        <br>        //    carga los parametros
<br>        header->Add(5,35);<br>        wxBoxSizer* parameters_panel;<br>        header->Add(parameters_panel=new wxBoxSizer(4),wxEXPAND);<br>        buscar=new wxTextCtrl(this,-1);<br>        parameters_panel->Add(buscar,wxEXPAND);
<br>        buscar->SetFocus();<br>        buscar->SetValue("esta es la cajita fantasma....presiona enter por favor!");<br>        header->Add(find=new wxButton(this,wxID_FIND));<br>        find->SetDefault();
<br>            <br>        //    cargando el grid<br>        body->Add(grid=new wxGrid(this,-1,wxDefaultPosition,wxSize(700,600)));<br>        grid->Connect(wxEVT_KEY_DOWN,wxKeyEventHandler(form::keypress));<br>        grid->CreateGrid(5,6);
<br><br>        //    cargando botones<br>        footer->Add(1,1,1,wxEXPAND);<br>        footer->Add(acept=new wxButton(this,wxID_OK));<br>        footer->Add(cancel=new wxButton(this,wxID_CANCEL));<br>        Connect(wxID_OK    ,wxEVT_COMMAND_BUTTON_CLICKED,wxMouseEventHandler(form::acept_procs));
<br>        Connect(wxID_CANCEL    ,wxEVT_COMMAND_BUTTON_CLICKED,wxMouseEventHandler(form::cancel_procs));<br>        Connect(wxID_FIND    ,wxEVT_COMMAND_BUTTON_CLICKED,wxMouseEventHandler(form::find_procs));<br><br><br>        resize();
<br>        Centre();<br>        <br><br><br>    }<br><br>//    recalcula el tamano de la ventana    <br>    void form::resize(){<br>        layout->SetSizeHints(this);<br>    }<br><br><br><br>//    ATENCION ATENCION     ATENCION ATENCION     ATENCION ATENCION 
<br>//    AQUI ES DONDE DA EL ERROR<br>    void form::keypress(wxKeyEvent& x){<br>        if(x.GetKeyCode()==27){<br>            buscar->SetFocus();  // EXACTAMENTE AQUI<br>            return;<br>        }<br>        
x.Skip();<br>    }<br><br><br>//    ocurre cuando se preciona el boton de aceptar    <br>    void form::acept_procs(wxMouseEvent& x){<br>        EndModal(123);<br>    }<br>//    ocurre cuando se preciona el boton de cancelar                            
<br>    void form::cancel_procs(wxMouseEvent&){<br>        EndModal(-1);<br>    }                    <br>//    ocurre cuando se preciona el boton de cancelar                            <br>    void form::find_procs(wxMouseEvent&){
<br>        wxMessageBox("voy primero a poner un texto en la cajita de busqueda asi te das cuenta de que el puntero buscar funciona");<br>        buscar->SetValue("confirmado!!..el puntero funciona");
<br>        wxMessageBox("ejecuto un programa que busca la informacion y le doy el enfoque al grid para seleccionar el registro que desee");<br>        grid->SetCellValue(0, 0, "ahora es el momento de la verdad!!...presiona escape para que de el error");
<br>        grid->AutoSizeColumns();<br>        grid->SetFocus();        <br>    }<br><br><br>class app:public wxApp{<br>    bool OnInit(){<br>        mainframe=new frame(NULL,"fradfasd");<br>        mainframe->Show();
<br>        form* test=new form("prueba del problema");<br>        test->ShowModal();        <br>    }<br>};<br>IMPLEMENT_APP(app)<br>//=================================================================<br>
//=================================================================<br>
//  fin del programa<br>