10月の開発記

[ 前の開発記 ] [ 次の開発記 ]


10月31日  ポインタ

  HPの方もほぼ一段楽したことだし前々から作ってみたかったアプリを作った。
 ま、たいしたことの無いアプリなのでサクサクっと1日で完成した。
 なんだかんだいって結構プログラミングになれてきているな。
 このアプリは公開する予定は無し。ヘボヘボなアプリなので。
  プログラムを組んでいる際ひとつ分からないことがあった。
 Cの基本中の基本だけど今まで気がつかなかった。
 それはcher型のポインタの取得の仕方。int型は

    int a=0;
    int* pa;
    pa=&a;

 でaのポインタが得られるが、同じようにchar型でやったらエラーが出た。

    char s[5]="abcde";
    int* ps;
    ps=&s;      // ここでエラー

 ポインタは数値だからint型でも問題無いと思っていたがそうじゃないらしい。
 &s+=2とやってsを"cde"に変換してやろうと思っていたが出来なかった。
 今回はCStringに一旦変換しDeleteで頭二文字を削除してやって先に進んだが
 なんとまあ気持ち悪い。


10月30日  CGIのバグ

  ページカウンターの動きがおかしいので一度ログを見てみたところ
 昔設定したページ数が生きていた。
 完全に初期化したはずだから残っているわけ無いんだけど残っている。
 これは多分前来た人がもう一度来た時、キャッシュが生きていて
 古いデータを送信しているのだと思う。
  そこで直るか分からないが一度すべてHPを消去しアップロードしなおした。
 それからダミーGIFの引数を増やしランキングのページのリンクを指定してやったら
 ログはどうなっているか見てないので分からないけど見た目はきれいに直った。
  よしこれでOK。って思ったらリンクの表示が上手くいってない。
 週間ランキングのお気に入りリンクが?????????になってしまっている。
 あーもーやる気なくす。


10月29日  カメのバグ

  カメレオン君のバグもとうとうここまで来たかっていう感じ。
 あまりやりたくなかったがカメレオン起動中は終了しないように修正。
 実行させたままだとスクリーンセーバーの実行速度が落ちると思ったが
 見た感じ速度落ちは無いと思う。
 実際にベンチマークやった訳ではないから贔屓目になってるかもしれないが。
  このバグ修正のお陰で2重起動が防止できていなかったと言うバグも修正できた。
 早いところこういう風にやっておけば良かったのかも。

  HPのカウント数がものすごい。1日で800を超えている。
 一昨日まで上手くカウントできていなかったからいつから急に増えたのか分からないが
 全く驚いた。そう言えば昨日途中からなのに100を越えてたな。
 これはどこか有名な場所でポスペチェンジャーが紹介されているのかも。
 それなら雑誌掲載の許可願が連発できたのもうなずける。
 これ以上CGIを増やすのもなんか気が引けるけどアクセスログでも取ってみようか。
 どこから飛んできてるか分かるだけで良いから調べてみたい。
  しかしポスペチェンジャーのダウンロード数がすごい。1日で400超えている。
 カメレオン君なんか10ちょっとだっていうのに。
 僕的にはカメレオン君の方が好きなんだけどな。


10月28日  CGI復活

  CGIが上手く動いていなかったからすべて初期化してやったら
 今度は上手く動いてくれた。
 と思いきやサポート掲示板のカウントが2つに分かれている。
 これは自分のせいかもしれないからとりあえず様子を見よう。
  カウンターがカウントされていなかったのはCGIへのリンクが
 間違っていたせいだった(^^;
 〜.or.jpを〜.ne.jpってやっていた。
 でもいつ書き換えたんだろ。最初は上手く動いていたのにな。
 
  今日また雑誌転載許可願いのメールが来た。
 これで3レンチャン。なんか変、こんなに続くのは。
 今まで1回も無かったのにな。こういう時期なのか・・・。
 もしかしたらどっか知らない有名なところで紹介されたのかも。
 そういえば一時期カウンターが一気に増えたこともあったな。
 あの勢いは今は無し。一体、どこへいったんだろう。


10月27日  ポストペットチェンジVer1.10

  カウンターの動きがおかしい。上手くカウントされない。
 一度すべて初期化してみるか。HTMLの方も直してみよう。
  ポスペチェンジをバージョンアップした。前から出来あがっていたが
 雑誌転載依頼が来たのでバグチェックをしてアップすることにした。
 ホントはもう少し色々やってからアップしたかったがとりあえずあれで良いか。
 今回の変更点はスタティックライブラリを使用しMFC42.DLLを必要無くした。
 あとコマンドラインにオプションを付けることでペットをダイレクトで起動できるようにした。
 あとは細かなプログラムの最適化とバグフィックス。
 さて今度はどんな機能をつけようかな。


10月26日  雑誌転載!

  メールチェックをしたところ何か見なれないサブジェクトが。
 何かと思い見てみるとなんとポストペットチェンジを雑誌に載せても
 良いかと言う許可願いのメールだった。
 始めてだよ雑誌転載って。ヾ(@⌒▽⌒@)ノワーイ!
 しばらく後でメールチェックしたらまたも雑誌転載の許可願いのメールが。
 なんと、2レンチャン。なんか笑いが止まりません 。(^^))((^^)v

  で、CGIの件。CGIを実行形式に変更していないのに動いていたのは
 当然のことだった。いや、実行形式にすでに変換していたからだった。
 てっきり chmod -x ooo.cgi でコンパイルして使うものだと思っていたけど
 これはパーミッションの変更をしているだけだった。
 実際は chmod -755 ooo.cgi ってやるらしい。
 パーミッションの変更はFTPですでに変えてあったから動いてたんだな。
 cgiってそのままで動くものなのか。えらい勘違い。
 でもcでかかれたcgiはコンパイルしなくても動くのかな。その辺不思議。

  カメレオン君やっぱり動かなかったことが判明。
 今度のはさっぱり原因不明。
 多分カメレオン君の終了と共にスクリーンセーバーも終わってしまう
 と言う事なんだろうがナゼなのか。Windows98ではちゃんと動いているのに。
 NTが手元にあればいくらでもテスト出来るんだけどな。


10月25日  ナゼ動く?

  CGIの設定も出来たことだし、まずMomoたろうの方にHPをアップした。
 で、CGIを実行形式に変えようとtelnetでサーバーにログオンしようとしたが
 パスワードが何故か入力できずログオンできなかった。
 これじゃCGI丸見えじゃないかとか思いつつHPの方を見たらちゃんと動いている。
 あれれ、まだ実行形式にしてないのになんで?不思議。
 もしかしてPerlはそのままで使えるのかな。何となく不安。
  でもとりあえず動いているのでジオの方にもアップ。
 ジオからでもきちんとカウントするようだ。これならOK。
  一通りやった後気がついたけどCGIを拾ってきた所にあったサンプルと
 ちょっと違う。週間ランキングが付いてない。
 もう一回CGIがあった場所を見てみたら改造版が別にあるらしい。
 サンプルは改造版だったようだ。全然別もんじゃないか。
 早速改造版のほうをDLしてみる。
 ほとんど設定方法は同じでちょっと設定を変更して差し替えれば良いみたいだ。
 明日差し替えることにするか・・・。


10月24日  CGIゲット

  DLカウンタで良いのを見っけた。うん、これは良い。
 ページカウンタ機能もあるようだ。早速使ってみよう。
 あーでも結構設定面倒だな。HTMLも全部改造しなければ。
 アップロードは明日だな。今日はとりあえず設定だけ。


10月23日  通信速度  

  新しいプロバイダーは遅い!!!!!!。メールチェックに25分かけてどうすんだ!!!!!!!!!!!!!!。
 70通で25分。こりゃアカンワ、テレホじゃないって言うのに。
 とりあえずVCのML、こいつのメールが多いから一旦解約することにする。
 テレホ復活してからまた入りなおそう。どの道メールアドレス変わるしな。
  MFCのサンプルプログラムページ完成。ほとんどコピー&ペーストでやったから
 案外早く終わったな。まぁまぁな出来だと思う。
  あとはCGI組みこめば完成。今日DLカウントCGI探したがあんまりページが
 開かないからもうヤメ。明日昼頃探すことにする。昼なら速いだろ。


10月22日  テレホーダイ

  プロバイダー切り替えたことだしテレホ先の変更をNTTに申し込んだら
 切り替わるのは来月の6日からとか言いやがる。
 は?そんなもん聞いてねーぞっ!。プロバイダー変えちゃったじゃないか〜。
 ってNTTに言ってしまったがもう遅い。JustNetの料金プランももう変えられない。
 ちくしょーあと1日速ければJustNetの方元に戻せたのに。
 あ〜あ、6日までネットサーフは必要時しか出来なくなっちゃったよ・・・。
  新しいプロバイダーから色々設定方法とか入ったのががもう送られてきた。
 さすが地元プロバイダー。隣町からだから郵便くるの早い。
 で、その説明書(?)読んでて分ったんだけど、接続の時やたら認証に
 時間がかかったのはダイアルネットワークのサーバーの種類って所で
 余分なものにチェックが入ってたから遅かったんだな。これのこと忘れてた。
 プロバイダーも自動で設定するアプリぐらい作れば良いのにな。
 HP見てもそんなアプリ置いてなかった。全部自分でやれってか。ホント不親切。
  プロバイダー変えることだし、ちょっとHPのレイアウト変えようと思い
 今回はVBスクリプトとを使ってみた。(どっかのHPからのパクリ)
 これでエクスプローラ風な画面にしてやろうと思っている。
 それからVCのサンプルコードが溜まってきたことだしHPに乗っけようかな。
 HTMLで整理してあると自分も見やすくなるしな。
 よし、明日サクサクっと作ってやるかな。


10月21日  WindowsNT

  カメレオン君がNTで動かなかったことが判明。
 原因ははっきり分らないが多分ウィンドウズフォルダがC:\WINDOWSじゃ無いため
 iniファイルが作られなかったせいだと思う。
 前から思っていたけどGetWindowsDirectory()が何故有るのか謎だった。
 ウィンドウズディレクトリはC:\WINDOWSで固定されているもんだと思っていた。
 だから何でいちいちGetWindowsDirectory()で調べなきゃなんないんだろうって。
 なるほど、こう言うことだったんだな。もっとPCについても勉強せねばいかんね。
  ポストペットチェンジでコマンドライン起動が出来るようになったと思っていたが
 テストしてみたら全然ダメだった(^^;
 ペットのリストにコマンドラインと同じ名前のペットがいた場合そのペットで起動する
 ようにするためリストから1匹ずつ名前を調べコマンドラインと比較していたが
 この様にすると何故か同じ名前なのにスキップされてしまう。

    if (lpsz==lpszOption)

 デバックで変数を調べてみても同じ値なのにスキップされる。
 そこでこういう風に変えてみたら上手くいった。

    if (lstrcmpi(lpsz, lpszOption)==0)

 もしかしてchar型は==で比較できないのかな?(ってかなり基本のことだが・・・)
  これをやっているうちに気がついたけどペットの名前の大文字小文字を
 区別していたがこれではまずかった。
 ファイル名は大文字小文字を区別しないため上書きされてしまっていた。
 まずいまずい・・・(^^;

  今日プロバイダー(Momoたろう)を正式登録した。
 地方プロバイダーだけあって手続きはかなり不親切。
 多分初心者の人には設定できないと思う。
 接続スピードはJustNetよりか若干速いけど認証にやたら時間がかかる。
 繋がってから30秒ぐらいパスワードの確認している。
 プロバイダーここにしたのちょっと早まったかもしれないな・・・。
  JustNetの方も今月いっぱいで解約しようとしたらなんと今日が〆日。
 いくらなんでも今日はまずいから料金プランを完全従量制にとりあえず変えた。
 ネットに繋げるのはMomoたろうから繋げればいいからこれでも良いか。


10月20日  バージョンアップ

  昨日、掲示板のカスタマイズで徹夜してしまったが
 朝になって今日は医者に行かなければならないことを思い出した。
 仕方がないのでそのまま医者に・・・。
 待ち時間が長いのは分かっていたが徹夜明けにはかなりこたえる。
 気が付いたら病院の待合所でバクスイしてしまっていた(^^;
  今日からはポストペットチェンジのバージョンアップをしようと思う。
 まず手始めに小さいアイコンの表示の修正。
 これはこの前やったばっかりだからすぐに修正することが出来た。
 次にコマンドラインでの起動。
 これも前やったばっかりだからスムーズに出来た。
 まだテストはしていないが多分大丈夫だろう。
 次は何を直そうか。とりあえず後は明日考えよう。


10月19日  掲示板

  カメレオン君をHPで初公開&ベクターに登録した。あ、フリッポ忘れてた。
 ま、いいか、明日登録しよう。あそこはすぐ登録できるしね。
  サポート掲示板のレイアウトをちょっと修正。案外時間がかかった。
 しかし、フレームが外れるバグの直し方が分からん。
 いっそ掲示板だけ独立させてやった方がいいかな。


10月18日  むずい・・・。

  アイコンの件はやっと解決した。ホントやっと・・・。
 なんか最初に思ってたより複雑かつ巧妙(言いすぎ)だった。
 なぜFALSEをコメントアウトすると上手く行ったか。
 それはFALSEも大きいアイコンを設定していたからだった。
 正しくは大きいアイコンを使って小さいアイコンを登録するってことかな。
 だからFALSEをコメントアウトすると大きいアイコンで登録されなくなり
 変わりに何らかの原因で小さいアイコンで自動的に設定されたらしい。
 何らかの原因で・・・ってのは予測外の動きをするかもしれないからまずい。
 正しく設定するにはまず、LoadImage()で小さいアイコンのハンドルを取得する。

    m_hSmallIcon = (HICON)::LoadImage(AfxGetInstanceHandle(),
                  MAKEINTRESOURCE(IDR_MAINFRAME),
                  IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);

 次にSetIcon()で小さいアイコンを設定してやる。

    // このダイアログ用のアイコンを設定します。フレームワークはアプリケーションのメイン
    // ウィンドウがダイアログでない時は自動的に設定しません。
    SetIcon(m_hIcon, TRUE);                 // 大きいアイコンを設定
    SetIcon(m_hSmallIcon, FALSE);           // 小さいアイコンを設定

 これで小さいアイコンが無事設定された。
 後はm_hIconと書いてあるところをm_hSmallIconに変えるだけだ。
 (OnPaint()とOnQueryDragIcon())
 変えなくてもきちんと表示されていたがこれはFALSEをコメントアウトした
 状況と同じ現象になっているせいだと思う。だから変えた方が良い。
 ていうか変えなければ小さいアイコンを設定した意味がなくなる。
  ともあれやっとカメレオン君の完成。明日発表しよう。
 あ、、でもアイコンが・・・。ま、いいや、あのまま使ってやる〜。


10月17日  やっぱり謎

  昨日VCのML投稿したが返事がほとんど無い。
 どうやら他の人は会社でメールチェックを行っているようだ。
 仕事中に・・・って行ってもこれも仕事の範囲内か。
 ひとつだけ返事が返ってきたけど的が外れていて答えになっていなかった。
 明日、月曜日だし答えが返ってくるのを祈ろう。


10月16日  アイコン

  前々からおかしいと思ってたけどダイアログに表示されるアイコン。
 あれの表示がおかしい。大きいアイコンが使われている。
 ソースを見てみるとSetIconで使うアイコンを設定しているようだ。
 TUREで大きいアイコン、FALSEは小さいアイコンを設定すると書いてある。
 しかし、FALSEを指定しても小さいアイコンが使われないのに
 TUREを設定したら小さいアイコンが使われきれいに表示された。
 これは一体・・・なんか逆じゃないか。間違ってるのかな。
 よし、ここはMLで質問してみるか。
  ところでカメレオン君で使うアイコン。カメレオンを自分で書いてみたら
 こいつは爆笑もん(^^;。謎の生物になってしまった。
 やっぱ絵を書くのはきつい。苦手だな。
 ネットでカメレオンのアイコンを探してみたけど見つからない。
 どうしよう、誰か作ってくれないかな。


10月15日  ASSERT

  CFileDialogで複数選択した際、デバック環境でのみ落ちる原因解明。
 正確に言えば止まっていたということか。
 フレームワークがASSERTでチェックしていたためそこで止まっていた。
 サンプルソースはバッファを設定する際に問題があった。

    char szFileNameBuffer[10000];
    dlg.m_ofn.lpstrFile = szFileNameBuffer;
    dlg.m_ofn.nMaxFile = 10000;

 これではポインタをそのまま代入してしまい暴走する可能性がある。
 代入する前に初期化してやら無ければ。

    char szFileNameBuffer[10000] = "";
    dlg.m_ofn.lpstrFile = szFileNameBuffer;
    dlg.m_ofn.nMaxFile = 10000;

 これで完璧。
  今回思ったこと。あっちこっちに有るサンプルソースはバグばっか。
 サンプルソースをそのまま使うのはかなり危険だな。
 Saverしかりネットで拾ったスクリーンセーバーのサンプルしかり。
 サンプルソース使う際はそのソースをはっきり理解しなければだめだな。
 
  ベクターよりポストペットチェンジ公開開始の知らせ有り。
 登録まで1周間かかったか・・・。でもこんなもんかな。


10月14日  リンク

  リンクのページを結構追加した。これで完全にHPが完成。
 このHP、ロボット型の検索エンジンに何故か登録できなかったが原因がわかった。
 ロボット型の検索エンジンに登録するにはエムタグを使って検知させるらしい。
 さぶみっとに行ったらエムタグ自動生成ってのが有って早速利用。
 これは便利♪一瞬で最良なエムタグが出来た。
 さて、また登録しなおさ無ければならないのかな?
 でも2重登録になるんじゃないかな。もうちょっと待ってから登録しなおすか。


10月13日  セーバー部完成

  OnPaintの不具合、原因はCClinetDCを使ってたせいみたいだ。
 CPaintDCに変えたら上手くいくようになった。しかし、何故かはよくわからない。
 後は結構トントン拍子で出来あがっていった。
 プレビュー画面についてもサンプルのをコピーするだけできちんと表示された。
 後は細かいバグフィックスだけ。CFileDialogで複数選択時のバッファの設定の仕方とか。
  あとこのHPのリンクにあるProgramming with Visual C++ for beginnersのMLに登録した。
 かなり登録作業はめんどくさかったが無事登録完了。
 早速、質問しようかと思ったけどもう少し様子を見てから質問することにしよ。


10月12日  1日1歩

  フォントを変えるやり方を発見。ついでにリストボックスのフォントの変え方で
 前はフォントを作っていたが大きさを変えるだけなら

    CFont* pFont=new CFont;
    pFont->CreatePointFont(120,_T("MS Pゴシック"));
    m_list.SetFont(pFont);

 とやれば変えることが出来るしリストの改行も適当な大きさに変わる。こいつは便利だ。
  ウィンドウに表示するフォントの変え方はちと長いが

    CClientDC dc(this);
    CFont* pFont;
    CFont font;
    font.CreateFont(300,0,0,0,FW_HEAVY,FALSE,FALSE,FALSE,
        SHIFTJIS_CHARSET,OUT_DEFAULT_PRECISCLIP_DEFAULT_PRECIS,
        DRAFT_QUALITY,DEFAULT_PITCH,"MS Pゴシック");
    pFont=pDc->SelectObject(&font);
    dc.TextOut(0,0,"?");
    dc.SelectObject(pFont);

 で表示することが出来る。いまいちCreateFontの引数はよく分からんがこれでいい。
  フォントを作成し表示することが出来るようにはなったが、今度はOnPeintがおかしい。
 普通ウィンドウが作成されたとき1回だけ呼ばれるものなのに何故か常に呼ばれる。
 お陰で文字が点滅したようになるし他にも不具合が。
 サンプルのソースと比べてみたがこれといった違いが無い。
 違うのはビットマップを表示するかテキストを表示するかの違いなのに。
 ふー、一難去ってまた一難。ちょこっとづつしか進まないな。
  話は変わってこのHPをポストペット用のサーチエンジンに登録した。
 登録の後、変更用のIDが出てきて保存しておいてくれといってきたので名前を付けて保存した。
 後で見てみたらなんときちんと保存されていない。
 ソースを見てみたらどうやらフレームを使っていたようだ。
 やられた。ID番号わからねーや、どうしよう。
 登録完了の通知でもメールで届くのを祈るしかないか。
 HPの登録は自動リンクみたいな感じでソッコウで登録できたから多分届かないかもな。


10月11日 フォント

  スクリーンセーバーで表示させるものは単純に?を表示するだけにしようと思う。
 ?を真ん中にでっかく表示して適当に色を変えればOKかな。
 で、真ん中にでっかくだけどどうやれば出来るか。
 CFontでつくってTextOutで表示させれば良いはずだがTextOutにどうやって設定するか。
 ダイアログになら簡単にSetFontで設定できるがウィンドウにはこうは行かない。
 昨日手に入れたMFCのMLの過去ログ、全部で31MB強もあるから
 そいつを検索すればやり方どっかに書いてあるだろう。
 しかしとんでもない量だな。Cabで圧縮して保存してあるがそれでも5MB近くある・・・。


10月10日  スクリーンセーバー製作

  昨日のプログラム、あれも間違い(^^;。引数が大文字の場合ちとまずい。
 lstrcmpiで比較してやらないと大文字小文字区別してしまう。
 正しくは

    if (lpsz[0] == _T('-') || lpsz[0] == _T('/')) lpsz++;
    lpsz[1]='\0'
    if (lstrcmpi(lpsz, lpszOption)==0) return TRUE;

 だね。結局lpsz[1]='\0'を付け加えるだけで良かったんだな。
  2重起動の防止に付いては特にやらなくてもいいみたいだ。
 スクリーンセーバー自体に2重起動防止処理がついている。(多分)
 リストになにも登録していなかった場合ダイアログを出していたが
 これでは2重起動防止出来ないみたいなので簡単なスクリーンセーバーを表示することにした。
 こうすれば勝手に2重起動を防止してくれるようだ。
 作り方はいまいち分からないが、サンプルプログラムを参照しながら作ったら
 なんとか何も無い真っ黒な画面のスクリーンセーバが出来た。
 後はそこに適当な文字を表示すれば完璧だ。
  ところでこのHPのカウンターここ4・5日で1500ぐらい増えている。
 一体これはなに?あまりにも急な増え方だぞ。


10月9日  サンプル

  あっちこっち回ってスクリーンセーバーのサンプルソースを探した。
 やっとの思いでサンプルを見っけて例のスイッチの所を調べてみたら、なるほど。納得。
 /cの後についてくる数字については分からないままだけど何が悪いか分かった。
 MatchOption(LPTSTR lpsz, LPTSTR lpszOption)
 if (lstrcmpi(lpsz, lpszOption)==0) return TRUE;
 とやっていたが、これではlpszの後についてくる文字まで比較してしまいおかしくなる。
 よく考えてみればその通りなのだ。これではまずい。だから、
 if (lpsz[0] == lpszOption[0]) return TRUE;
 とやって1文字だけ比較するようにすればい。
 Saverのサンプルソースには[0]が抜けていた。これは明らかなバグ。
 サンプルプログラムぐらいバグが無いようにしとけよ、マイクロソフト!(-_-メ)。


10月8日  ミス

  昨日ベクターに登録したと思っていたけど良く考えたらファイルを送るの忘れていたワ。
 で、もう一回送りなおし。今度はちゃんと登録できるかな。とりあえず1周間後か。
  スクリーンセーバのスイッチについては引数を調べてみたところ/cスイッチに:1234とか
 なんか数字がついてくるからそれでバグになってたことが分かった。
 でもその数字が何なのかは分からない。/cには数字がついてくるなんてはどこにも載ってない。
 とりあえずCStringでスイッチの部分だけを抽出してバグの解決はしたが謎が残ってしまった。


10月7日  作品登録

  ベクターとフリッポにポストペットチェンジを登録してきた。(今頃)
 窓の杜にも登録しようとしたが作品登録はもうしないということなので出来なかった。
 ベクターに作品登録するとベクターからHPスペースがもらえるらしい。
 これでジオとJustNetとベクターにHPスペースが有るわけだがそんなにも要らないぞ。
 ベクターのHPって広告がつくのかな。もしつかないならJustNet外してもいい。
 ここん所つながり悪いしな。プロバイダー変えようか。
 HPスペースは有るわけだからODNでHPもらえなくても問題無い。
 でもODNは繋がり悪いって言うしちょっと悩む。
 ほかに常時接続の出来るプロバイダー探してみようかな。


10月6日  サンプルのバグ

  カメレオン君、一応使えるまで完成。まだ2重起動の防止やアイコンとか作ってないが。
 あとひとつバグがあってどうしても直らない。VC++付属のサンプルプログラムを参考に
 起動スイッチの判定を作ったがこれがどうもおかしい。
 スクリーンセーバーの設定画面で設定のボタンを押してもダイアログが出てこない。
 右クリックで設定を選んだ際はちゃんと出てくるのに。
 サンプルプログラムで試してみたがこれも同じ症状が出た。
 つまりサンプルプログラムが間違っているみたいだ。
 こいつは困った。ヘルプが間違ってるならどうしようもない。
 仕方がない。お気楽会議室で質問してみるか・・・。


10月5日  あとちょっと

  カメレオン君の設定部分はあっという間に出来てしまった。
 登録したスクリーンセーバーの設定やプレビューが上手くいくか心配だったが
 やってみたら結構簡単に出来た。
 あとは起動引数を取って実行するか設定をするか決めるだけだ。
  出来た後にほかのスクリーンセーバーの設定画面ってどうなってるか見たら
 みんなダイアログベースで作ってないみたいだ。左上のアイコンが表示されていない。
 ということは表示するほうをメインに持って来ているという事か。
 もしかしたらスクリーンセーバーはMFCじゃ書かないのかもしれないな。
 基本的には絵を連続して表示するだけだもんな。MFCじゃ要らない事が多すぎる。
 ま、でもカメレオン君は特殊だからそれはそれ、これはこれで良いか。


10月4日  フォントの設定

  リストボックスで表示される文字の大きさを変えたいと思ってお気楽会議室の過去ログを
 調べてみところCFontクラスを使えば良いらしいことが分かった。
 早速使ってみると確かに文字は大きくなた。しかし改行の幅が狭いままになっている。
 それに文字の大きさは変えられない。ナゼか一定の大きさのまんまだ。
 そこに書いてあったのはスタティックテキストの文字の大きさの変え方だったから
 リストボックスでは使えないのかと思いさらに調べてみたら、有った。
 これのほうがソースも短くて良い。さらに改行もきちんと合っている。
 でもフォントのサイズが変えられない。今のままだと文字が入りきらないから小さくしたいのに。
 と思いながらあれこれやっているうちに気がついた。入りきらないと思っていた文字が
 よく見たらちょうど収まっているじゃないか。
 一番端まで来ていたからはみ出ているもんだと思っていたのに(^_^;)
 というわけでこの問題はとりあえずこれでOK。まだよく分からんが。


10月3日  寒

  なんか今日は寒い。半袖じゃ耐えられないよ。
 案の定体調を崩してしまった・・・。気温の変化に弱すぎ。まぁすぐ直るが・・・。
  CFileDialogのフラグの設定だけど訳してみたがさっぱり分からない。
 もしかしてと思ってお気楽会議室の過去ログを検索してみたら、あった。
 フラグの意味じゃなく別の質問のソースだったけどそこに書いてあったフラグを使ってみたら
 ばっちりOK。後で訳した文で確認してみたら、なるほど、そう言う意味で書いてあったのか。
 やっぱ直訳じゃ意味が解りにくい。でも意訳なんて高度な技は僕には出来ないぞ・・・。


10月2日  CFileDialog

  ファイルを開くってやるに出るあのダイアログのだし方ってどうやるんだったっけ。
 ってずいぶん考えてしまった。ポストペットチェンジのときに一回使って
 あとで必要無くなったから削除したやつだったんだけど、わすれた。
 ここでまたまた登場。NOAHのソース。これは非常に参考になってる。
 あーそうそうCFileDialogだった。で・・・引数が・・・アレ?
 う〜ん上手くいかない。このファイルを呼び出し専用で開くってチェックボックスが消えない。
 フラグの設定かな?えっとヘルプは・・・ゲ!英語のみかよ!
 仕方ない、少しづつ訳していくか・・・。


10月1日  ど忘れ

  今日は夕方の4時まで寝てしまった。まぁ朝の9時に寝たからしょうがないんだけど。
 最近電話回線の調子がいいから朝まで起きている。
 スクリーンセーバーチェンジャーの名前はカメレオン君にした。
 そのときに応じて姿を変えるって言うことで。
 製作を開始したがプログラムの仕方を忘れてしまっている。
 ちょっとVC++から離れていただけなのに・・・。
 また1からやり直しか?


HOME