日記みたいなもの2004/03

見出し一覧

2004/03/15(月)

BrainFuckとプログラマ

BrainFuckという言語をご存知でしょうか?難解プログラミング言語のひとつとして有名な言語です。

私のサイトでも紹介させていただいていますが、この言語って覚えたところで、結局実務にはあまり役に立たないんですよね。

なので人によっては、「そんな言語覚えたってしょうがないじゃん?」とか「時間の無駄」とか言われてしまうんですよ。

しかし私はここであえて言いたい。「BrainFuckを制すものはプログラムを制す!」と。

まぁもちろんこれは言いすぎなんですけど。ただ、それほど間違ってはいないと思うんですよ。

こういった難解といわれる言語を楽しめる人間って、プログラマにむいてると思うんですよね。

まぁもちろんむいてるってだけで、能力が高いということではないんですけどね。

2004/03/20(土)

「いかりや長介さん死去」

どうせ志村さんの死亡説が流れた時と同じようなもんだろうと思ってたら、

いかりや長介さん死去 ザ・ドリフターズリーダー(京都新聞:2004.03.21)

ほんとだった。さすがにびっくりですね。えーとそれだけです。

「いしいひさいち氏推薦」

私の大好きなマンガ家の一人に、小坂俊史先生という方がいるのですが、その方の「サークルコレクション」の単行本2巻の帯に、なんとあのいしいひさいち先生の推薦帯がついてるんですよ。

小坂俊史専用冷蔵庫(3/18のところを見てみてください)

めちゃめちゃびっくりした。まぁそれだけです。

2004/03/29(月)

AnimateWindow

こんなおもしろいAPIがあったとは知らなかった。しかし使うことはあるのだろうか。

BOOL AnimateWindow(
 HWND hwnd,     // アニメーション化するウィンドウのハンドル
 DWORD dwTime,  // アニメーションの時間
 DWORD dwFlags  // アニメーションの種類
);

使うときはこんな感じか。

if (IsWindowVisible(hwnd)) {
    AnimateWindow(hwnd, 0, AW_CENTER | AW_HIDE);
} else {
    AnimateWindow(hwnd, 0, AW_CENTER);
}

dwFlagsに指定できるのはこんな感じ。

フラグ 説明
AW_SLIDEスライドアニメーションを使います。既定値では、ロールアニメーションを使います。AW_CENTER フラグを同時にセットすると、このフラグは無視されます。
AW_ACTIVATEウィンドウをアクティブにします。AW_HIDE フラグと同時にセットしないでください。
AW_BLENDフェードイン効果を使います。dwTime パラメータは、ウィンドウを表示するときに使うアニメーションのフレーム数を示します。AW_HIDE フラグと同時にセットしないでください。
AW_HIDEウィンドウを隠します。既定値では、ウィンドウを表示します。
AW_CENTER AW_HIDEフラグをセットしたときは、ウィンドウを中心に向かって折り畳むようにして隠します。また、AW_HIDE フラグをセットしないときは、ウィンドウを中心から徐々に広げるように表示します。
AW_HOR_POSITIVEウィンドウを左から右に向かってアニメートすることによって、表示したり隠したりします。このフラグは、ロールアニメーションにも、スライドアニメーションにも使えます。AW_CENTER フラグと同時にセットすると、このフラグは無視されます。
AW_HOR_NEGATIVEウィンドウを右から左に向かってアニメートすることによって、表示したり隠したりします。このフラグは、ロールアニメーションにも、スライドアニメーションにも使えます。AW_CENTER フラグと同時にセットすると、このフラグは無視されます。
AW_VER_POSITIVEウィンドウを上から下に向かってアニメートすることによって、表示したり隠したりします。ロールアニメーションにも、スライドアニメーションにも使えます。AW_CENTER フラグと同時にセットすると、このフラグは無視されます。
AW_VER_NEGATIVEウィンドウを下から上に向かってアニメートすることによって、表示したり隠したりします。ロールアニメーションにも、スライドアニメーションにも使えます。AW_CENTER フラグと同時にセットすると、このフラグは無視されます。

AW_BLENDのフェードイン効果ってSetLayeredWindowAttributesを使ってるのかなぁ。

そういえばMSDNに、

戻り値

関数が成功すると、0 以外の値が返ります。関数が失敗すると、0 が返ります。関数が失敗するのは、次のような場合です。

  • ウィンドウがウィンドウリージョンを使っている。
  • すでに可視になっているウィンドウを表示しようとした。
  • すでに隠れているウィンドウを隠そうとした。

って書いてあるんだけど。リージョン使ってるウインドウでも普通に成功したなぁ。その辺はまた調べてみるか(たぶん何もやらないけど)