antenn-a
company profile

MFC航海日記 五十八日目(中間報告)


さて、大分サンプルを書いてないので、そろそろ中間報告をしようかなと。
昔は1回1回サンプル書いていたのだけども、そんな時間が無いので作りかけのPicture Albumソフトのソースで今までのサンプルとさせて貰いたい。
すまんですねぇ・・・。
ま、一応機能的には今まで書いた日記ライクな開発手記の部分が盛り込まれていて、全部纏まったサンプル、と見てもらえると嬉しい。
とは言え、題に有るとおり「中間報告」なので、未実装な部分、バグってる部分を多く含む事を容赦して貰いたい。

prev


今までに実装した機能としては、
1)jpg をドロップすると、サムネイルを作成する
2)サムネイルを読み込み、表示する
3)アルバムの新規作成が出来る
4)アルバムのリネームが出来る
5)アルバムの説明が変更出来る
6)スクロールバーやホイールマウスで閲覧出来る

まだ未実装な機能としては、
1)アルバムが消せない
2)写真も消せない
3)写真のコメントが入力出来ないし、変更出来ない
4)写真のファイル名も出ない(ここ、機能として迷ってる)
5)写真の大画面表示機能が無い(ブラウザに任せようか迷ってる)
6)メニューに意味は無い。現在は単なる飾り。
こんな感じです。ま、UIはシンプルなので分かると思います。
アルバムのコメントは入力、変更して「変更ボタン」で反映されます。
また、使用しているDLLの都合上、Jpeg という4文字拡張子は受け付けてくれません。
jpg なら行けます。ここはどうにかして、取り込むつもりですが、現在未実装。
あ、後、コンパイルする際にエラーが出るかもしれません。imm32.libが無いとか何とか。
解凍して出来るフォルダにimm32.libを入れて下さい。そのファイルはVCのフォルダのLibフォルダかどこかに有るはずです。検索して下さい。
ま、ソリューションに追加すればOKです。
ああ、後はVC7.0(VC.NET)用のソースコードです。PictureAlbum.sln をダブルクリックでGoです。

prev


今後の展望ですが、まあ、未実装の機能を追加予定です。
写真を消すのは、右クリックメニューを実装予定です。後は選択されている事を示す為にスタティック文字の色を変える方法を紹介しようかなと思ってます。
何気に右クリックメニューって実装サンプル出して無いんですね。乗せます。
ま、両方とも実装は偉く楽なのでちゃちゃっとやりますよ(多分)
時間が無いのが難点のど飴(最近芸風が・・・)
そうそう、良い忘れてたんですが、このアプリの設計思想なんですけども、ここに行き着くまでに色々試行錯誤が有ったんです。
で、一般的な物としては、いわゆるエクスプローラみたいな奴でフォルダを選択するとその中に有る画像をサムネイル表示、みたいな。
でも、実際使ってみると結構使い勝手悪いんですよ。
どこがって、やっぱりコメント付けれなかったり、ファイル名変名しなきゃいけなかったりするわけです。
デジカメはいつでも0から番号振るし、一般的なフォルダだと自由にファイル名が変えれるからコメントファイルとリンク出来ないし、と。
なので思い切ってフォルダを抽象化して、隠してしまおうと。
ファイル名のバッティングを気にせず、ドロップするだけでOKにした方が俺的に楽なんで。
で、エクスポートの道を用意してあげようかなと思いました。
この場合も、2つ道を用意してあげようと思っていて、メーラに直接エクスポートと、どっかのフォルダにエクスポート。
ちょっとこの辺迷ってるんですけどね。
この辺が上に書いた未実装一覧の「機能として迷ってる」の部分なんですけども。
ま、どうせ自分用だし、自分が一番使いやすいソフトに仕上がれば良いやってことで。
長くなりましたが、お待たせしました、サンプルはここからダウンロード出来るです。

prev


あ、忘れてた。構成ファイルの概要を一応。
AlbumData.cpp :
アルバムデータを一括管理しようと思ったんだけど、失敗(笑)殆ど未実装だけど、他で実装しちゃった所多し。
その内増えるかも。

EDialogBar.cpp :
自作のダイアログバーもどき。アルバムの操作を行うのに、一段上にしときたかったので(分かりやすいから)こうしました
親は EMainDialogです

EMainDialog :
メインのダイアログ。サムネイル化や写真の表示はここで行っている。一番複雑で、汚いソース
親は PictureAlbumView

ENameInputDialog.cpp :
アルバム名の入力を行う時に出すダイアログ。IMEの起動、消去なんかを実装してます

MainFrm.cpp :
このアプリのメインフレームです。
ステータスバーの構築ソースが入っています。
PictureAlbum.cpp :
このアプリのApp Classです。多重起動防止ソースが入ってます


antenn-a

prev next


antenn-a