以前の
2003 : 5 6 7 8 9 10 11 12
2004 : 1 2 3
System.Windows.Forms.NativeWindow.WndProc() にて WM_CLOSE/WM_DESTROY にて NativeWindow.ReleaseHandle() を行ってはいけません。スレッドが閉じてくれなくなります。
次期CsScreenSaverのサブクラス化用クラスでこれ使ってて終了してくれないのでかな〜り謎だったのです。さーあとはマニュアルだー。
今年は45%発行するみたいですが、あれって印刷した際のコントラストが異常に高くなるので嫌いなのですよね。プリンタの設定で何とかなるのですかねー。
HSP To CによりHSPの欠点である実行速度の問題が解消される等と言っている人がいますが、HSPの欠点は実行速度以前で、データ管理が配列変数しか用意されていない点にあると思います。これは仕様変更に弱く、大規模プログラムには致命的です。
例えば2次元の矩形をあらわす配列a = x, y, width, height
を作ったとします。これが仕様変更で3次元になるとどうでしょう?a = x, y, z, width, height, depth
では書き直しが必要になり、a = x, y, width, height, z, depth
では直感性がありません。
この点(ここではCを想定)構造体ではシンボルで指定できるためこの問題は発生しません。無論Dllにしている構造体のメンバの順序を入れ替えた場合発生しますが、この場合再度コンパイルするだけですし、普通入れ替えてたりしません。つまり何がいいたいかというと速度よりも構文をしっかりしてくださいと。
まぁゲームを書く人には問題ないのかもしれませんが。
体操着の小学生2人組み(女子)、相手の下着が見えるだとか電車の中で大声で話さないでください。というか向かい合って座るなと。
物はできているのですが、マニュアルを書いてない(XMLのタグうちが面倒)ので絶賛放置中。根本的に需要がない気も多々しますが、うちで需要がありそうなものは作ってないので問題にはならないでしょう。
CsScreenSaver.ScreenSaver.Run( string[], Form, Form, Form )は廃止されます。名前空間、クラス名は予告どおり変更しましたので従来のコードそのままは通りません。
CsScreenSaverを作る際調べた覚書。
よーやく発見、オーナーを指定。
SetWindowLong( hwnd, GWL_HPARENT, (LPARAM)hParent );
C#でディスプレイ全体のサイズを取得
System.Drawing.Rectangle rect;
int width = 0;
int height = 0;
for( int i=0; i<screen.Length; i++ )
{
rect = screen[i].Bounds;
if( width < rect.Right ) width = rect.Right;
if( height < rect.Bottom ) height = rect.Bottom;
}
Copyright(C)方位記号