エンタープライズ:特集 2003/07/18 11:58:00 更新
C Magazine

[C Magazine連載]プログラムのレシピ(第1回)
デスクトップメモを作る (9/9)

C MAGAZINE 2002年9月号より転載

まとめ
 今回作成したデスクトップメモに関して、プログラムの骨格となる部分を解説しました。ほかにもこのプログラムには、次のようなポイントがあります。詳しくは付録CD-ROMに収録したソースをご覧ください。またデスクトップメモの使い方に関しては、付属のヘルプに書いておきました。

●透明色と半透明を使った表示

 メモを表示するときに、タブの周囲の空白部分を透明にする機能と、メモ全体を半透明で表示する機能をつけました。これらの機能はWindows 2000/XPで有効です。プログラムは、UConsoleForm.cppのUpdateMemosColorKey/UpdateMemosAlphaメソッドです。

●タブを使ったウィンドウのドラッグ

 メモのウィンドウには、通常のウィンドウにあるようなタイトルバーがありません。タイトルバーをなくすには、フォームのBorderStyleプロパティをbsNoneに設定します。さらにタイトルバーがなくてもウィンドウがドラッグできるように、メモのタブを使ってウィンドウをドラッグする処理を書きました。プログラムは、UMemoForm.cppのImageMouseDownメソッドです。

●設定ファイルの保存と読み込み

 このデスクトップメモにはいろいろな設定項目があります。次回起動したときにも同じ設定になるようにするためには、設定ファイルやレジストリに設定内容を保存しておく必要があります。このプログラムでは、実行ファイルと同じフォルダに「DesktopMemo.ini」という設定ファイルを作る仕組みにしました。設定ファイルの読み書きは、UConsoleForm.cppのLoadIniFile/SaveIniFileメソッドで行います。

●操作性をよくする

 マウスとキーボードをいちいち持ちかえるのは、実にわずらわしいものです。ツールを作るときには、操作性にも気を配って、うまくショートカットキーなどを設定するべきでしょう。このデスクトップメモでは、ポップアップメニューの主なコマンドにショートカットキーを設定しました。

 また、メモとメモの間を[Tab]キーまたは[Shift]+[Tab]キーで移動できるようにしました。対応するプログラムは、UConsoleForm.cppのFocusNextMemo/FocusPrevMemoメソッドと、UMemoForm.cppのMemoKeyDown/MemoKeyPressメソッドです。

 このデスクトップメモにはひととおりの機能がありますが、改造するとしたら次のような機能を加えてみるのもよいでしょう。

・タブの大きさを自由に変えられるようにしたり、タブをアニメーションさせたりする

・フォントの大きさや色を変えられるようにする

・デスクトップ上のメモを自動的に整列する機能をつける

・ネットワークに対応して、ほかのユーザとメモを共有できるようにする

 といったところで、今月の「プログラムのレシピ」は終わりです。プログラムの中核は解説しましたが、なかなか限られたページでは細かいテクニックまでは語り尽くせません。「この処理はどうやって実現しているのだろう?」という疑問がわいたら、付録CD-ROMに収録したソースファイルをぜひご覧ください。もしわかりにくい点がありましたら、編集部宛にご質問やご意見をどうぞお寄せください。次回以降の本連載で解説を加えさせていただきます。

 それでは、次回もお楽しみに!

コラム Javaへの移植ポイント

 本文中ではC++BuilderとWin32 APIを使いましたが、ここではJavaを使ってデスクトップメモを作成する場合のポイントを説明しましょう。

 まずタスクトレイに関しては、残念ながらJavaから簡単に操作することはできません。代替手段としては、小さなウィンドウを表示する方法が考えられます。ポップアップメニューの内容(「新規作成」や「終了」など)をボタンにして、このウィンドウに配置しておけばいいでしょう。

 メモの作成と表示、メモデータの保存、タブ画像の選択については、本文の説明とほぼ同じ方式で実現できます。ウィンドウにはJFrame、タブにはJComponent、メモにはJTextAreaが適当です。またタブ画像の形式は、BMP形式よりもPNG形式のほうが扱いやすいでしょう。

[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]