コメントのため、次のコードを追加しました
(BasicPanel内)
Connect(CTRL_ONE, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_TWO,wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_THREE, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_FOUR, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_FIVE, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
(列挙型)
CTRL_NAME = wxID_HIGHEST + 5, // 6004
CTRL_ADDRESS = wxID_HIGHEST + 6, // 6005
CTRL_PHONENUMBER = wxID_HIGHEST + 7, // 6006
CTRL_SS = wxID_HIGHEST + 8, // 6007
CTRL_EMPNUMBER = wxID_HIGHEST + 9 // 6008
(OnKillFocus関数-宣言は提案どおりに含まれています)
void BasicPanel::OnKillFocus(wxFocusEvent& event) {
switch (event.GetId()) {
case 6004:
...
break;
... ... ...
}
ユーザーが使用しているテキストボックスにフォーカスを変更しても、コードに追加されたこれらはすべて何もしません...
Q1:wxWidgets(C ++)を使用していますが、ヘルプが見つからないという問題が発生しました。私はいくつかのwxTextCtrl
ボックスを作成しましたが、ユーザーが「フォーカスを殺した」ときに、プログラムがそれらのボックスの簡単な計算を更新するようにしたいと思います。wxWidgetsのWebページでこのテーマに関するドキュメントを見つけることができず、グーグルで検索するとwxPythonしか表示されませんでした。私が見つけた2つのイベントは、次のとおりEVT_COMMAND_KILL_FOCUS - EVT_KILL_FOCUS
です。どちらの場合も、スニペットを見つけることができませんでした。誰かが私に短い例を教えてくれますか、または役立つページに私を導くことができますか?
wxTextCtrl
Q2:8つのボックス
のそれぞれで強制終了されるフォーカスを処理するイベントを作成する必要がありますか?別のイベントを作成する必要がある場合:各イベントを互いに区別するにはどうすればよいですか?ボックスごとに新しいwxIDを作成する必要があることはわかってwxTextCtrl
いますが、正しいものをトリガーするにはどうすればよいですか?
class BasicPanel : public wxPanel { ...
wxTextCtrl* one;
wxTextCtrl* two;
wxTextCtrl* three;
wxTextCtrl* four; ... }