Как заставить wxButton уничтожить себя? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть wxButton в моем окне, которое я bind собираю со следующим:

BitmapButton1->Bind(wxEVT_BUTTON, [=](wxCommandEvent& e)
{
    if(TextCtrl1)
        OptionsSizer->Detach(TextCtrl1);
    if(Choice1)
        OptionsSizer->Detach(Choice1);
    if(BitmapButton1)
        OptionsSizer->Detach(BitmapButton1);

    if(TextCtrl1)
        TextCtrl1->Destroy();
    if(Choice1)
        Choice1->Destroy();
    if(BitmapButton1)
        BitmapButton1->Destroy();

    OptionsSizer->Layout();
    OptionsWindow->SetSizer(OptionsSizer);
    SendSizeEvent();

}, bId);

Идея состоит в том, что при нажатии кнопки она удаляет себя, а также несколько другихуправления.Выше, однако, вылетает.Я попытался отладить, но, похоже, отладчик не может определить мои контрольные точки (что я нашел общим для wxWidgets).

1 Ответ

0 голосов
/ 03 июня 2018

После того, как лямбда будет выполнена, исходные указатели будут зависать с неверными значениями, отличными от NULL.Они также используются где-нибудь еще?В общем, вам нужно предоставить больше информации для такого вопроса, например, больше кода, трассировки стека, типа сборки - вам, очевидно, понадобится отладочная сборка для его отладки, верно?

кажется, что отладчик не может определить мои точки останова (что я нашел общим с wxWidgets)

Не существует такой вещи, как wxWidgets, препятствующей достижению отладчиком точек останова в сборке отладки.,Убедитесь, что вы используете отладочную сборку - то, что я нашел общим для людей с такими проблемами.

...