エンタープライズ:特集 | 2003/07/18 11:58:00 更新 |
[C Magazine連載]プログラムのレシピ(第1回)
デスクトップメモを作る (5/9)
C MAGAZINE 2002年9月号より転載
メモの作成と表示 |
おのおののメモはFig.5のようになっています。左側にある絵はタブで、メモをドラッグするために使います。右側がテキスト入力領域で、ここにメモの内容を書きます。多くのライブラリにはテキスト入力用のコンポーネントが用意されているので、積極的に利用して楽をしましょう。Win32APIの場合には、Windows標準のテキストボックスを使います。
Fig.5 1枚のメモ
メモに関しては、新しくメモを作成したり、不要なメモを消したりといった処理が必要です。これはポップアップメニューから操作するのが便利でしょう。そこで、次のようにします。
・タスクトレイ用のポップアップメニューに、「メモの新規作成」という項目を追加する
・おのおののメモ用にポップアップメニューを作る。そして、「メモの新規作成」と「このメモを削除」という項目を追加する
複数のメモを管理するには、配列やリストなどを使います。メモの個数は実行時までわからないので、可変長のリストを使うと便利でしょう。メモの追加と削除は、次のような処理になります。
・メモを追加するには新しくメモ用のウィンドウを作成し、リストに登録する
・メモを削除するにはメモ用のウィンドウを消去し、リストから取り除く
●プログラム例
C++Builderの場合、メモ用のフォーム(ウィンドウ)はFig.6のように作ります。これをオブジェクトツリーで見たものがFig.7です。画像表示用にImageコンポーネントを、テキスト入力用にMemoコンポーネントを使いました。
Fig.6 メモフォーム
Fig.7 メモフォームのコンポーネント構成
また、ポップアップメニューはFig.8のように作ります。もちろん最初からこんなにメニュー項目はいりません。必要に応じて追加していけば大丈夫です。
Fig.8 メモフォームのポップアップメニュー
次に、メモを追加したり削除したりする処理を作りましょう。まず、メモを管理するためのリストを宣言します。ヘッダファイル(UConsoleForm.h)に、
TList *MemoFormList;
のような宣言を追加します。そしてC++ソースファイル(UConsoleForm.cpp)に、List6のような処理を書きます。
List 6 メモを追加/削除する(UConsoleForm.cpp) |
//============================================================= (1) // 「メモの新規作成」メニュー項目のイベント処理 void __fastcall TConsoleForm::MINewMemoClick(TObject *Sender) { // メモを新しく作成し、表示する TMemoForm* memo=NewMemo(); memo->Show(); } //============================================================= (2) // メモの新規作成 TMemoForm* TConsoleForm::NewMemo() { // メモフォームの作成と、一覧への登録 TMemoForm *memo=new TMemoForm(this); MemoFormList->Add(memo); // ... 中略 ... return memo; } //============================================================= (3) // メモを削除 void TConsoleForm::DeleteMemo(void *memoForm) { // 引数で指定されたメモをリストから探す int i=MemoFormList->IndexOf(memoForm); // メモが見つかったら、フォームを削除し、リストから取り除く if (i>=0) { ((TMemoForm*)memoForm)->Release(); MemoFormList->Delete(i); } } |
List 6-(1)は、タスクトレイ用ポップアップメニューの「メモの新規作成」に対するイベント処理です。メモを新しく作成し、表示します。実際にメモを作成する処理はList 1-(2)で、ここではメモフォームを作成し、リストに登録します。
List 6-(3)はメモを削除する処理です。引数で指定されたメモをリストから探し、フォームを削除して、リストからも取り除きます。
メモフォーム用のポップアップメニューにも、イベント処理が必要です。こちらはList 7のように書きます。List 7-(1)がメモの新規作成、List 7-(2)がメモの削除です。いずれもList 6で定義したメソッドを呼び出して、メモの追加や削除を行います。
[C Magazine連載]プログラムのレシピ(第1回) | |
(1)連載のはじめに | |
(2)どんな機能を作るか | |
(3)作成のポイント | |
(4)タスクトレイの操作 | |
(5)メモの作成と表示 | |
(6)メモデータの保存と読み込み | |
(7)タブ画像の選択 | |
(8)日程管理機能 | |
(9)まとめ | |
・実行ファイル/リソース一式(.lzh形式/1.32MB) | |
・リスト(.lzh形式/5.45KB) |
関連リンク
C MAGAZINE
定期購読のご案内
バックナンバー一覧
バックナンバー販売協力店
ひぐぺん工房
「デスクトップマスコットを作ろう」紹介ページ
「デスクトップマスコットを作ろう」著者ページ
前のページ | 1 2 3 4 5 6 7 8 9 | 次のページ
[松浦健一郎(ひぐぺん工房),C MAGAZINE]