パソコンでプログラミングしよう ウィンドウズC++プログラミング環境の構築
1.6.3.6(15)
テキストコントロールの追加

KTxtEditプロジェクトにテキストコントロールとメニュー項目を追加する。

追加されたメニュー項目のハンドラは生成されるスケルトンのままに残し、これらは次ステップで処理を実装する。

プログラミング手順

  1. テキストコントロールの追加
  2. ステータスバーの変数名変更
  3. メニュー項目とハンドラの追加
  4. リポジトリ更新とビルドテスト

テキストコントロールの追加

[Management]ウィンドウ[Projects]ページツリービューの[Sample|KTxtEdit|Resources|wxsmith|KTxtEditFrame.wxs]ノードをダブルクリックしてメインウィンドウのwxSmithリソースファイルをwxSmithエディタに読み込む。wxSmithエディタ下部コンポーネントパレットの[Standard]ページでwxTextCtrlを選択し、マウスカーソルをwxSmithエディタのターゲットへ移動して左クリックしてテキストコントロールをドロップする。テキストコントロール選択状態のまま[Management]ウィンドウ[Resources]ページ(wxSmithリソースマネージャ)を開き、下部のプロパティエディタで以下を設定する。

プロパティ 備考
Var name textCtrl_ -
Is member チェックする -
Identifier idTextCtrl -
Style wxTE_MULTILINE Styleを拡張してwxTE_MULTILINEをチェック

ステータスバーの修正

ウィザードが定義したステータスバーの変数名とIDを、プロジェクトが標準とする命名法に修正する。[Management]ウィンドウ[Resources]ページ(wxSmithリソースマネージャ)のツリービューで[...|KTxtEditFrame|Tools|wxStatusBar:StatusBar1]ノードを選択し、プロパティエディタで以下に変更する。

プロパティ 備考
Var name statusBar_ -
Is member チェックする -
Identifier idStatusBar -
Fields 1 -
Field 1 Width 1 -
Variable width チェックする -
Style wxSB_NORMAL -

メニュー項目とハンドラの追加

動作確認(3)の[Help|Help]メニュー項目を参考にメニュー項目を追加する。wxSmithエディタ上部ツールホルダーパネルのメニューバー(wxMenuBar)アイコンをダブルクリックして開く[MenuBar editor]ダイアログで新しいメニュー項目を作成し、wxSmithリソースマネージャのプロパティ/イベントエディタでプロパティとイベントを編集する。指定されないプロパティは全てデフォルトのままとする。文字列は全て英語とし、日本語化はデプロイで行う。

コンポーネント Options Identifier Title/Label Accelerator Help text Var name Is member EVT_MENUハンドラ 備考
Tools - - - - - - - - -
└ wxMenuBar - - - - - MenuBar1 FALSE - -
 ├ &File Normal - &File - - Menu1 FALSE - -
 │├ &New Normal idMenuNew &New - Create a new file MenuItemNew FALSE OnNew 追加
 │├ &Open... Normal idMenuOpen &Open... Ctrl-O Open a file MenuItemOpen FALSE OnOpen 追加
 │├ &Save Normal idMenuSave &Save Ctrl-S Save the current file MenuItemSave FALSE OnSave 追加
 │├ Save &as... Normal idMenuSaveAs Save &as... - Save the current file with a different name MenuItemSaveAs FALSE OnSaveAs 追加
 │├ -------- Separator - - - - - - - 追加
 │└ &Quit Normal idMenuQuit &Quit Alt-F4 Quit the application MenuItemQuit FALSE OnQuit -
 ├ &Edit Normal - &Edit - - Menu3 FALSE - 追加
 │├ &Undo Normal idMenuUndo &Undo Ctrl-Z Undo the last editing operation MenuItemUndo FALSE OnUndo 追加
 │├ &Redo Normal idMenuRedo &Redo Ctrl-Y Redo the last editing operation MenuItemRedo FALSE OnRedo 追加
 │├ -------- Separator - - - - - - - 追加
 │├ Cu&t Normal idMenuCut Cu&t Ctrl-X Cut selected text to clipboard MenuItemCut FALSE OnCut 追加
 │├ &Copy Normal idMenuCopy &Copy Ctrl-C Copy selected text to clipboard MenuItemCopy FALSE OnCopy 追加
 │└ &Paste Normal idMenuPaste &Paste Ctrl-V Paste text from clipboard MenuItemPaste FALSE OnPaste 追加
 └ &Help Normal - &Help - - Menu2 FALSE - -
  ├ &Help Normal idMenuHelp &Help F1 Show help file of this application MenuItemHelp FALSE OnHelp -
  └ &About Normal idMenuAbout &About - Show info about this application MenuItemAbout FALSE OnAbout -

リポジトリ更新とビルドテスト

動作確認(4)を参考にGit for Windowsリポジトリを更新する。

UMLクラス図

簡略したUMLクラス図でアプリケーションの構成を説明する。

  • メインウィンドウ(KTxtEditFrameインスタンス)にテキストコントロール(wxTextCtrl)を追加し、そのポインタを保持する。
  • 基本的なメニュー項目をハンドラのスケルトンと共に追加する。