私のC++アプリケーションでwxWidgetsを使用しています。一度に1つのフレームのインスタンスを作成する方法
ユーザーがセルをダブルクリックすると、別のグリッドで新しいウィンドウが作成されるwxGridセットアップがあります。
グリッドで新しいウィンドウを閉じて再オープンする際に問題が発生しました。
void FeatureList::mouseDClick(wxGridEvent& event)
{
int n_row, n_col;
n_row = event.GetRow();
n_col = 0;
m_sCellValue = grid->GetCellValue(n_row, n_col);
if (frame == NULL) // If frame is closed
{
CreateCrackBoxFrame(m_sCellValue);
}
else{
frame->Raise(); // otherwise bring it to the front.
}
}
void FeatureList::CreateCrackBoxFrame(wxString m_sCellValue)
{
frame = new CrackBoxFrame(m_pvFeatures, m_sCellValue, m_bDisplayInMetric);
frame->Show(true);
}
CrackBoxFrame::CrackBoxFrame(vector<Feature> *pvFeatures, wxString CellValue,
bool bDisplayInMetric)
: wxFrame(NULL, wxID_ANY, wxT("CrackBoxes"),wxDefaultPosition, wxSize(725,
400))
{
}
私は、新しいウィンドウを閉じて、そして私のプログラムは、そのために
あなたがイベントをダブルクリックしwxGridから外部アプリケーションを実行しようとしていますか? – Igor
外部アプリケーションではありません。フィーチャーリストは、グリッド設定があるアプリ内のウィンドウです。グリッド上でダブルクリックが発生すると、新しいウィンドウが作成されます。 –