Version 5.01
普通のアプリを作ろう
「4月から先週まで、ずっと基礎的なことを見てきました」
『んーと、メモリ見て、変数見て、バイトオーダーってのもみて、んでポイ
ンタを使いまくって、 const も使って、って感じねー』
「でも、基礎的な部分はまだまだいっぱいあります」
『げげ』
「でも、そろそろフツーのアプリを作ってこうかなって思ってます」
『なんで? もちっとしっかり基礎やんないでいいの?』
「……やりたいの?」
『めっそーもない』
「でしょ。まーこれは僕の考えだけど、実際に使って初めて身に着く、んじ
ゃないかなって思うから」
『つまりこれまで教えてもらったの、どんどん使ってくってこと?』
「そゆこと。もちろん火美ちゃん、これまでのとこ結構忘れちゃってると思
うから」
『う”』
「その辺の復習とか、これから憶えなきゃいけない部分とか、そういったこ
とを見てくために、普通のアプリを作ろうかなって思います」
『?? なんかそれって、基礎固めのためにアプリ作るって聞こえるけど』
「ま、そういうことだね。基礎は大事だよー、基礎ができればプログラミン
グなんて楽勝だから」
『そこまで言う……』
「で、これから作るアプリケーションだけど、こういうのにしようと思って
ます」
・ダイアログアプリ。
・コンボボックスとリストボックスがひとつずつ。
・ファイルからデータを読み込み、リストボックスに表示する。
・ファイル履歴をコンボボックスに表示する。
『……気のせいかもしんないけど、ものすごーく難しいんでない?』
「そりゃまぁ、今の火美ちゃんじゃ絶対無理だけど」
『やっぱしぃ』
「でも、これ全部、って考えるからで、ひとつひとつクリアしてけばいいん
だから」
『そーゆーもん?』
「ってゆーかそうしないと。最初は誰でも<ものすごいもの>を作りたがる
ものだけど、それも部分部分の積み重ねだから」
『前にそんなこと言ってたね』
「特にプログラミングはね」
『どゆこと?』
「たとえば粘土で人形作るとしましょう」
『ほぉ、人形』
「頭作って、腕作って、足作って、胴体作って」
『んでくっつける!』
「ってときに、それぞれの大きさとか違ったらダメでしょ」
『うんだめ』
「こんなふうにたいがいのものって、部分部分だけ見てると全体像と食い違っ
ちゃうことが多いんだけど、プログラムっていうのはそういうことが少ない
わけ」
『なんで?』
「ま、外に見えてる部分が少ないからかな。プログラム自体がどうこうって
いうのはアプリにあまり影響ないから」
『それって、ダイアログの大きさとかは影響あったりするってこと?』
「そゆこと。ユーザーインターフェイスまわりさえ整合性取れてれば、部分
部分だけ見てても大丈夫だろうね」
『ほー。まー、作るモンで作り方が変わるってのは分かるけどね』
「そういうことかな。ま、その辺はおいといて、早速……何すればいい?」
『何水希ちゃんボケてんのよ』
「いや、そーじゃなくって」
『……ああ! えーっと、まずプロジェクトを作るんだよね』
「うん。やってみ?」
『えっと……』
【ファイル】−【新規作成】を選ぶ。
『いつもどーり【MFC AppWizard (exe)】でいーの?』
「うん、当分それだね」
【プロジェクト】ページの左側から【MFC AppWizard (exe)】を選ぶ。
『プロジェクト名はどーしよ。あたし結局このアプリってどんなのか分かん
ないし』
「そうだね、今度のはファイル中心だから【FileTest】でいいかな」
『ほい』
【プロジェクト名】を FileTest にする。
『じゃーいつものテストのとこに置いちゃっていいよね』
「うん、今回のも勉強用だからね」
【位置】を TestApp01 と同じフォルダにする。
『この辺は Ver 4.01 ( No.051 )を見てね。じゃ【OK】!』
【MFC Appwizard ステップ 1】というダイアログが表示される。
『ダイアログアプリだから【ダイアログベース】にして、んで、【終了】で
いい?』
「うん、テストだしね」
『またそれか』
確認のダイアログが出た後、ダイアログエディタが開き、素のダイアログ
が表示される。
『えっと、まずダイアログの名前変えようかな』
【プロパティ】を開き【キャプション】を【テスト】にする。
「意味ない……」
『うっさいわねー。真ん中のスタティックコントロール……だよね、これど
うする? とりあえず削除しちゃっていい?』
「そうだね、あとで貼り付けた方がいいかも」
『んじゃ削除。【OK】と【キャンセル】は右下に持ってこっと。で、まずコ
ンボボックスってゆーの貼り付けようか』
「ツールチップで表示してけばどれがどのコントロールか分かるから」
『えーっと、ボタン、チェックボックス、ラジオボタン、コンボボックス、
これだっ!』
ツールボックスからコンボボックスをドロップする。
「これは横長の方がいいかな。ファイル名入れるつもりだから」
『ほい横長。 ID はどうする?』
「 IDC_CMB_FILE がいいかな」
『 CMB って Combo の略だよね。なんか int の変数に i 付けるのと同じ?』
「そう。ま、僕はこうしてるってだけで、違う書き方の人も多いと思うけど」
『見た目で区別つくほーが好きだからあたしもこれにしよっと。次はリスト
ボックスだよね』
「コンボボックスの右隣だから」
『あ、これか。なんか似てるー』
ツールボックスからコンボボックスをドロップする。
『 ID は……データ表示するんだから、 IDC_LST_DATA なんてどう?』
「うん、それでいいかな。で、サイズだけど、これはまんべんなく大きい方
がいいかな」
『じゃ、横幅はコンボボックスと同じにしよっと。両方とも選択して、横長
長方形の中に横向き矢印ボタン!』
コンボボックスとリストボックスが同じ長さになる。
「よく憶えてたね」
『こーゆーのは忘れないのよねー。詳しくは Ver 3.12 ( No.037 )を見てっ
てことで』
「あーでもそーゆーのするの後の方がいいかも。あと4つ追加するから」
『げっ、そーゆーことは先に言って』
「えっとまず、スタティックをふたつ追加して」
『さっき削除しちゃったのね』
「キャプション、ひとつは【ファイル(&F)】、もうひとつは【データ(&D)】
にして」
『コンボボックスとリストボックスの説明用ね。でも &F とかって? アド
レス?』
「ちゃうちゃう。これはあとのお楽しみ」
『 ID は?』
「スタティックはただ文字表示するだけだから、 ID を決める必要はないよ」
『なるほど』
「じゃ、さらにボタンをふたつ追加して」
『はーい。ボタンをドロップ、を2回っと。ボタンの名前はどーする?』
「【参照(&B)...】と【表示(&S)】にしようかな」
『【参照...】ってよくみるよね』
「そう、〈ファイルを開くダイアログ〉を表示するボタンってこと」
『じゃあ ... って?』
「〈ダイアログを表示するボタン〉は ... を付けるの」
『はっ、そういえば他のアプリもそうなってる!!』
「実際、ダイアログ作りとかは、他のアプリを真似るのが一番かもね」
『付け加えるんなら〈使いやすくて分かりやすいアプリ〉?』
「う”、まぁそう」
『これはボタンだから ID 付けるんだよね。けーさんきのときは
【IDC_B_EQUAL】だったけど、それに似たのでいい?』
「そうだね。〈参照〉は Browse で〈表示〉は Show だから」
『【IDC_B_BROWSE】と【IDC_B_SHOW】ってとこかな。あれ、さっき Combo
を CMB って略したよね。だったら Button も BTN じゃない?』
「その辺は好みかな」
『じゃー【IDC_BTN_BROWSE】と【IDC_BTN_SHOW】にするっ!』
「ま、まぁいいけど……じゃ、最後にタブオーダーを決めます」
『タブオーダーって、Tabキー押すと動いてく順番だよね』
「そう。詳しくは Ver 3.13 ( No.038 )を見てってことで、使いやすくす
るにはタブオーダーが結構重要なんだよね。順番は」
【ファイル(&F)】−【IDC_CMB_FILE】−【IDC_BTN_BROWSE】
−【IDC_BTN_SHOW】−【データ(&D)】−【IDC_LST_DATA】
−【OK】−【キャンセル】
「だね。ファイル関係は入力部分、データ関係は出力部分だから、まずファ
イル関係が先にカーソルがあうようにしとくわけ」
『ねー、スタティックにタブオーダー決める意味ってあるの? 文字だけだ
から選択できないでしょ』
「実はあるんだよね。そうだ、【キャンセル】の文字、半角から全角にする
ついでに【キャンセル(&C)】ってしてみて」
『半角って細長カタカナのことだよね。まー【ファイル】とか普通ので書い
てるからこっちに統一した方がいいのかな』
「そしたらテストモード!」
『デッキブラシボタンっと。まだ綺麗に並べてないからちょっとアレかも』
「まずタブオーダーがうまくいくかチェックして」
『タブタブタブタブ、うんちゃんと順番通りに動くね』
「ちなみにShiftキーを押しながらTabキーを押すと逆に戻ります」
『うわ! 知らなかった……』
「次にAltキー押しながらCのキー押してみて」
『ほいっと。あ、ダイアログ消えちゃった!! なんで?』
「キャンセルボタンを【キャンセル(&C)】ってしたでしょ。最後の &C は
〈Altキーとそのキーを押すだけでボタンを押せるようにして〉っていう
印」
『あ、つまりこれでキャンセルボタン押したのと同じだから、ダイアログ閉
じちゃったんだ!』
「キャンセルボタンを見ると C にアンダーバーが付いてるでしょ。 & の次
の文字はこんなふうにアンダーバーが付いて」
『で、自動的に〈Alt+アルファベット〉で押せるようになるんだ』
「他の【参照(&B)...】とかも同じ。まだ機能付いてないから反応しないけ
ど」
『へー、意外とキーボードだけで操作できるもんなのねー。あ、でも、スタ
ティックの意味は? あれは選択できないでしょ』
「スタティックは選択できないから、代わりにタブオーダーでの次のコント
ロールが選択されます。ってことは?」
『あ、【ファイル(&F)】だから、Alt+Fで次のコンボボックスが選択で
きるんだ! なんかすごー』
「同じく【データ(&D)】で次の【IDC_LST_DATA】が選択されます」
『確かに、他のアプリ見るとこーなってるねー。ふーん』
「じゃ、最後。コンボボックスのドロップダウンリストを開いてみて」
『ドロップダウンリスト?』
「コンボボックスの右端にある[▼]を押すとでる、びろーんっての」
『びろーんね。あれ、なんか狭いね。項目ないから?』
「実はそうじゃないんだよね。このびろーんの長さを長くしないと、ずっと
このままだから。えっと、テストダイアログを閉じて」
『ほい閉じた』
「そしたらダイアログエディタの【IDC_CMB_FILE】の[▼]を左クリックして」
『クリック。あ、枠が縦長になった!』
「このモードでびろーんの長さを変えられるから」
『……これって知らないとものすごく困んない?』
「ってゆーか、ここまで教えたこと、実は結構知らない人多いと思うんだよ
ね。本にしっかり載ってなかったりするし」
『そうかも。こーゆー細かいこと憶えとくのって大事?』
「ま、とりあえず大事」
『……ま、とりあえずびろーん長くして、テスト。おー長くなった!』
/*
Preview Next Story!
*/
「これでとりあえず外見は完成。次回からは再びプログラミング!」
『ってゆーか、これってプログラマーの仕事じゃなくない?』
「ふっ、現実はそんな甘くないよ……」
『というわけで次回』
< Version 5.02 リストボックスを使おう >
「につづく!」
『あ! だから世の中ヘボいUIのアプリばっかなんだ』
「スキンが流行るわけだね……」