{magclick}
{magclick}
/*
    KAB-studio.h
        　ＫＡＢ−ｓｔｕｄｉｏで先週更新した内容
        が格納されたヘッダーファイルです（笑）。

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    送信日： 2000/07/17(Mon) No.066
    配信数： 3770（ Mag2 + Pubzine ）
＊    発行元： まぐまぐ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/
{magclick}

/*              ２０００年７月１７日（月）の更新                  */
http://www.kab-studio.com/Info/News/

・更新なし。
　とりあえず今回はね。夏休みはがんばるっ！！


/*                        チョー普通な日記                        */
http://www.kab-studio.com/nikki2/

2000/07/09 (Sun)
　ブラックジャックを久しぶりに読んだり、会社説明会の準備をしたり、テ
レビをみたりといつも通りの日々。うぃ。

2000/07/10 (Mon)
　就職先決定！！　来年からはプログラマーかＳＥです＜べたべたですね。
そんなこととはつゆ知らず、今日も今日とて東京駅まで会社説明会。まー遊
びに行ったと思えば。

2000/07/11 (Tue)
　ガッコにて推薦書げーっと。これを送ればＯＫ。ってゆーか、なんかちゃ
んとした何かが来ないとやや心配げだなー。

2000/07/12 (Wed)
　授業受けたり郵便局行ったらもう閉まってたりとか。あとイケてる２人。
コミックスいいなぁ。ビデオ買おうかなぁ。

2000/07/13 (Thu)
　ＣＤ−Ｒドライブとか１万切るデジカメを買おうかなーとか画策中。
３５万画素ってどんくらいなんだろう。あと謎のメール。

2000/07/14 (Fri)
　適性検査を振り返る！　難しかったのからコツのいるのまでつらつらと書
いてみました。来年就職活動するって人は要チェック？

2000/07/15 (Sat)
　謎な適性検査のひとつが判明。そして大失敗してたことも（汗）。こー
ゆーのってやっぱ攻略法必要なのね。面接はどうなんだろう？


/*                         鏑矢の憂鬱                             */
http://www.kab-studio.com/Programing/KabuU/

2000/07/09 (Sun)
お休み

2000/07/10 (Mon)
お休み

2000/07/11 (Tue)
お便り
背景を透明に指定するには？
ウィンドウだと、 Win9x と NT では簡単にはできない
Win2000 なら SetLayeredWindowAttributes()
ビットマップは結構難しいと思う

2000/07/12 (Wed)
お便り
プリンタ出力ダイアログを出さずに出力
プリンタはあまり詳しくない
ちょっと難しいかも
お便り
ＭＤＩのアクティブなビューに対して描画したいが落ちる
MFC のハンドルラッパークラスはスレッドを越えて使えない
ハンドルを直接使うといい
どこで落ちるのかとか調べるのも重要
マルチスレッド関係はバグの原因を見つけにくい

2000/07/13 (Thu)
お便り
MFC なら CView::OnPreparePrinting をオーバーライド

2000/07/14 (Fri)
お便り
配列のデータを入れ替えずに2分木法で順番を表す
ソースコード
ブラッシュアップする方がいい
変数の意味が分かればなんとかなりそう
「意味が違ったら別に変数を用意する」ことが大事
コードの読みやすさ重視
配列の要素ナンバーを使う
細分化して小さな部分をクリアしていくことが大事

2000/07/15 (Sat)
お便り
型名() による初期化は正しい記述？
正しい
テンポラリ変数を作って、コンストラクタを明示的に呼び出す
関数の引数に渡す時によく使う


/*             プログラミング辞書・今週の追加単語                 */
http://www.kab-studio.com/Programing/Dictionary/
（来週から単語追加再開！　こうご期待）


{magclick}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『最近読むと、分かるとこもちょっとだけあるかな』
「ちょっとだけだろうけどね」
『むっ』
　もっと分かるあなたは購読登録。
http://www.kab-studio.com/Programing/STLiostream/
_______________________________________________________________[KCM]
{magclick}


/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

　Version 5.01 
普通のアプリを作ろう

「４月から先週まで、ずっと基礎的なことを見てきました」
『んーと、メモリ見て、変数見て、バイトオーダーってのもみて、んでポイ
ンタを使いまくって、 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 )を見てっ
てことで』
「あーでもそーゆーのするの後の方がいいかも。あと４つ追加するから」
『げっ、そーゆーことは先に言って』
「えっとまず、スタティックをふたつ追加して」
『さっき削除しちゃったのね』
「キャプション、ひとつは【ファイル(&F)】、もうひとつは【データ(&D)】
にして」
『コンボボックスとリストボックスの説明用ね。でも &F とかって？　アド
レス？』
「ちゃうちゃう。これはあとのお楽しみ」
『 ID は？』
「スタティックはただ文字表示するだけだから、 ID を決める必要はないよ」
『なるほど』
「じゃ、さらにボタンをふたつ追加して」
『はーい。ボタンをドロップ、を２回っと。ボタンの名前はどーする？』
「【参照(&B)...】と【表示(&S)】にしようかな」
『【参照...】ってよくみるよね』
「そう、〈ファイルを開くダイアログ〉を表示するボタンってこと」
『じゃあ ... って？』
「〈ダイアログを表示するボタン〉は ... を付けるの」
『はっ、そういえば他のアプリもそうなってる！！』
「実際、ダイアログ作りとかは、他のアプリを真似るのが一番かもね」
『付け加えるんなら〈使いやすくて分かりやすいアプリ〉？』
「う”、まぁそう」
『これはボタンだから ID 付けるんだよね。けーさんきのときは
【IDC_B_EQUAL】だったけど、それに似たのでいい？』
「そうだね。〈参照〉は Browse で〈表示〉は Show だから」
『【IDC_B_BROWSE】と【IDC_B_SHOW】ってとこかな。あれ、さっき Combo
を CMB って略したよね。だったら Button も BTN じゃない？』
「その辺は好みかな」
『じゃー【IDC_BTN_BROWSE】と【IDC_BTN_SHOW】にするっ！』
「ま、まぁいいけど……じゃ、最後にタブオーダーを決めます」
『タブオーダーって、Ｔａｂキー押すと動いてく順番だよね』
「そう。詳しくは Ver 3.13 （ No.038 ）を見てってことで、使いやすくす
るにはタブオーダーが結構重要なんだよね。順番は」

【ファイル(&F)】−【IDC_CMB_FILE】−【IDC_BTN_BROWSE】
−【IDC_BTN_SHOW】−【データ(&D)】−【IDC_LST_DATA】
−【OK】−【キャンセル】

「だね。ファイル関係は入力部分、データ関係は出力部分だから、まずファ
イル関係が先にカーソルがあうようにしとくわけ」
『ねー、スタティックにタブオーダー決める意味ってあるの？　文字だけだ
から選択できないでしょ』
「実はあるんだよね。そうだ、【キャンセル】の文字、半角から全角にする
ついでに【キャンセル(&C)】ってしてみて」
『半角って細長カタカナのことだよね。まー【ファイル】とか普通ので書い
てるからこっちに統一した方がいいのかな』
「そしたらテストモード！」
『デッキブラシボタンっと。まだ綺麗に並べてないからちょっとアレかも』
「まずタブオーダーがうまくいくかチェックして」
『タブタブタブタブ、うんちゃんと順番通りに動くね』
「ちなみにＳｈｉｆｔキーを押しながらＴａｂキーを押すと逆に戻ります」
『うわ！　知らなかった……』
「次にＡｌｔキー押しながらＣのキー押してみて」
『ほいっと。あ、ダイアログ消えちゃった！！　なんで？』
「キャンセルボタンを【キャンセル(&C)】ってしたでしょ。最後の &C は
〈Ａｌｔキーとそのキーを押すだけでボタンを押せるようにして〉っていう
印」
『あ、つまりこれでキャンセルボタン押したのと同じだから、ダイアログ閉
じちゃったんだ！』
「キャンセルボタンを見ると C にアンダーバーが付いてるでしょ。 & の次
の文字はこんなふうにアンダーバーが付いて」
『で、自動的に〈Ａｌｔ＋アルファベット〉で押せるようになるんだ』
「他の【参照(&B)...】とかも同じ。まだ機能付いてないから反応しないけ
ど」
『へー、意外とキーボードだけで操作できるもんなのねー。あ、でも、スタ
ティックの意味は？　あれは選択できないでしょ』
「スタティックは選択できないから、代わりにタブオーダーでの次のコント
ロールが選択されます。ってことは？」
『あ、【ファイル(&F)】だから、Ａｌｔ＋Ｆで次のコンボボックスが選択で
きるんだ！　なんかすごー』
「同じく【データ(&D)】で次の【IDC_LST_DATA】が選択されます」
『確かに、他のアプリ見るとこーなってるねー。ふーん』
「じゃ、最後。コンボボックスのドロップダウンリストを開いてみて」
『ドロップダウンリスト？』
「コンボボックスの右端にある[▼]を押すとでる、びろーんっての」
『びろーんね。あれ、なんか狭いね。項目ないから？』
「実はそうじゃないんだよね。このびろーんの長さを長くしないと、ずっと
このままだから。えっと、テストダイアログを閉じて」
『ほい閉じた』
「そしたらダイアログエディタの【IDC_CMB_FILE】の[▼]を左クリックして」
『クリック。あ、枠が縦長になった！』
「このモードでびろーんの長さを変えられるから」
『……これって知らないとものすごく困んない？』
「ってゆーか、ここまで教えたこと、実は結構知らない人多いと思うんだよ
ね。本にしっかり載ってなかったりするし」
『そうかも。こーゆー細かいこと憶えとくのって大事？』
「ま、とりあえず大事」
『……ま、とりあえずびろーん長くして、テスト。おー長くなった！』

/*
    Preview Next Story!
*/
「これでとりあえず外見は完成。次回からは再びプログラミング！」
『ってゆーか、これってプログラマーの仕事じゃなくない？』
「ふっ、現実はそんな甘くないよ……」
『というわけで次回』
＜ Version 5.02 リストボックスを使おう ＞
「につづく！」
『あ！　だから世の中ヘボいＵＩのアプリばっかなんだ』
「スキンが流行るわけだね……」


/*                       金菜さんの憂鬱                           */
http://www.kab-studio.com/Programing/KanaU/
（７月一杯まで休止します。もちっと待ってね）


/*            ２０００年７月２４日（月）の更新予定                */
http://www.kab-studio.com/Info/News/

・プログラミング辞書単語受付再開！
　プログラミング辞書の追加単語受付を再開します！！
　ようやっと就職先が決まって、さらに来週一杯でテストが終了するという
ことで、これまでずっと休止状態だったプログラミング辞書への単語追加を
再開します。来週からじゃんじゃん送ってください！！　いや、まー、送ら
れ過ぎてもちょっと困るかもしんないが（汗）。
　夏休みの予定ですが、とりあえずかなゆ〜の再開、フリーウェアのマイ
ナーバージョンアップ、それにＣＧの大量作成はほぼ本決まり。可能性があ
るかもしれないのは、久々の小説執筆、Ｃｏｄｉａｎへのコンテンツ追加、
新規フリーウェアの作成、といったところ。ただまー、ゼミの方も色々しな
きゃいけないから、そんなにできないかも。
　ま、夏休みは気合い入れてがんばる予定。来年からそんなできなくなる
し〜。
[プログラミング辞書]
http://www.kab-studio.com/Programing/Dictionary/


/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.com/nikki2/
・プログラミングに関する質問は[鏑矢の憂鬱]にお送りください。
http://www.kab-studio.com/Programing/KabuU/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://bigbeat.tegami.com/~mgsearch/frame.cgi?id=0000012198
http://www.kab-studio.com/Freeware/

/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

    (C)KAB-studio 1999 - 2000 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/


/*                      See you next week!!                      */


