>>939 WindowsUpdateで入れようと思えば入れられるものを
入れてないから普及してないと言い張るのは根拠としてはいまいちだな。
どうでもいいだろそんなことより940に誰か応えてやれよ
>>931 MSCommってCOM(ややこしいな)でしょ?
COMってスレッドセーフ違うんじゃなかったっけ?
というか、0.1秒も眠らせるなら別にスレッドでやることないと思うんだが。
>>940 普通にOnPaintかPaintイベントで再描画するだけでしょ。
正直「どうすればいいでしょうか」なんて他人に質問する以前の問題だね。
944 :
デフォルトの名無しさん:2005/09/18(日) 16:52:58
>>943 コンテナPaint→レイヤー描画→コンテナ無効領域発生
のコンボはどうするんだ?
意味ワカンネ。
因果関係の順番が狂ってないか。
無効領域が発生したからOnPaintが呼ばれるわけだが。
946 :
デフォルトの名無しさん:2005/09/18(日) 17:34:02
PointF[]で1000〜1M個くらいの座標リスト作って(Y座標のデータはMAX-10〜+10くらいなので拡大処理)
それを画面サイズ内で縮小して描画したいのですが、
普通にg.ScaleTransformしてからg.DrawLinesで描くと線が拡大されて表示が汚くなります。
座標データの位置だけを画面サイズに変換してその間を結ぶ線は細いままにしたいのですが
どうしたらいいでしょうか?
色々見る感じだと、g.TransformPointsってのがあるのですが、
System.Drawing.Drawing2D.CoordinateSpaceとかがよくわかりません。
よろしくお願いします。
Penを細くしたらいいんじゃない
948 :
946:2005/09/18(日) 18:01:20
自己レスです。色々見てたのですが、
Matrixを定義してやればいけるっぽいです。
グラフィクス周り触るのは初めてで変換行列の定義から読んでるので時間がかかりそうですが…
949 :
デフォルトの名無しさん:2005/09/18(日) 18:18:25
Threadは、voidでかつパラメータ無しのメソッドでしか使えないんですか?
用途が限られてくると思うのですが。
ようは、Javaのパクリじゃん
そのためにそれ用のクラスを作るの。必要なパラメータと起動メソッド持たせて。別に不自由ないよ。
ちなみに.NET 2.0でParameterizedThreadStartってobjectを一つ引数に取るデリゲートが追加される。
952 :
デフォルトの名無しさん:2005/09/18(日) 18:21:47
940とかぶるが
コンテナにいくつかコントロールが足されている場合
もともとのコンテナ領域分レイヤー描画ってどうするん?
普通に描画してもコンテナにコントロールが
足されていない部分は描画できるが
足されたコントロール上の領域にもかかなきゃならんやん
954 :
デフォルトの名無しさん:2005/09/18(日) 18:55:30
C#で角が丸い四角を描画する方法ってどんな感じになりますかね
Pointを8つ指定してDrawCurveを使うしかない?
>>953 Thread じゃなくて Delegate を使えばよろし
>>954 GraphicsPathを作ってAddLineとAddCurveを繰り返し、FillPath/DrawPath
AddCurveじゃなくてAddArcだった……
959 :
デフォルトの名無しさん:2005/09/19(月) 00:28:58
非同期デリゲートがあれば、スレッドっていらないんじゃないの?
960 :
デフォルトの名無しさん:2005/09/19(月) 00:30:49
いらないよ
まじかよ
962 :
デフォルトの名無しさん:2005/09/19(月) 00:34:57
まじだよ
ちがうよ。要るよ。非同期デリゲートは ThreadPool の中で待機している Thread によって実行されてるんだよ
964 :
デフォルトの名無しさん:2005/09/19(月) 00:54:51
つ、つれた
な、なんだって〜
そんな中学生みたいなやり取りして楽しいか?
まあリアルで厨房のとき友達がいなかったからそういう精神的成長段階を
卒業できてない可哀想な奴らなんだろうけど。
967 :
デフォルトの名無しさん:2005/09/19(月) 01:19:14
StreamReader型をHashtable型に変換する方法をご存知の方がいましたら
御教授お願いします。
ありません
あ、ごめん。単純にキャストすればいいだけかも
うむ。やはりキャストはだめだった。ということで 「ない」 が正解
971 :
931:2005/09/19(月) 01:43:30
質問です
[Q]キーを押した時にアプリケーションを終了させる事を意図して、
次のようなコードを書いたのですが、
qキーではなく、Shift+qキーを押さないと、思った通り終了してくれません。
qキーを押した事を拾うにはどのように書いたら良いのでしょうか・・・?
ご教示お願いします
protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
{
switch ((int)(byte)e.KeyChar)
{
case (int)System.Windows.Forms.Keys.Q:
this.Dispose();
break;
}
}
Shift + q を押したら q になるようなキーボードレイアウトになってんじゃないの?
974 :
972:2005/09/19(月) 02:00:59
>>973 PC2台で確認しましたが、両方とも駄目でした。
975 :
973:2005/09/19(月) 02:05:33
switch ((int)(byte)e.KeyChar)
=> switch (e.KeyChar)
case (int)System.Windows.Forms.Keys.Q:
=> case 'q':
紛らわしいから間違えちまったよ
977 :
972:2005/09/19(月) 02:25:30
ああ、なるほど…
ありがとうございました
あと紛らわしくてすいませんでした
インデントしてたのですが反映されなかったもので…
978 :
デフォルトの名無しさん:2005/09/19(月) 02:49:40
複数のコントロールでCreateGraphics()つかって
描画しようとしているのですが
各コントロールの描画を一端メモリ上に書き込んで
全てのコントロールでの描画を一括で画面に反映させるには
どうしたらいいんでしょうか
979 :
デフォルトの名無しさん:2005/09/19(月) 10:15:38
ControlへのDrawStringについて質問です。
可変領域へ文字列を書き込む必要がありDrawStringしてるのですがうまくいきません。
例えば、FormのOnPaintをオーバライドして実行し
フォームをリサイズしてWidthを0にして、少しづつ大きくするとStringが描画されないのですが
どなたか解決方法を知っている人いますでしょうか
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint (e);
e.Graphics.DrawString("WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW",
this.Font, Brushes.Black, this.DisplayRectangle);
}
ResizeRedraw?
982 :
946:2005/09/19(月) 11:35:11
>>958 二個目のリンクを発見してワールド変換することで対応しました。
一個目のリンクもよんで勉強します。
ご丁寧にありがとうございました。
>>979 >this.DisplayRectangle
これの中身ヲチしてみた?
これって画面座標なんじゃないの?
コントロールGraphicsに描画するんだから、座標系はコントロールのクライアント座標を
つかわなきゃダメでしょ。
984 :
979:2005/09/19(月) 12:14:20
>>980,
>>983 解決しました。ありがとうございました
StringFormatのStringTrimmingをNoneに設定で解決しました。
(ResizeRedrawを有効にするのもOK)
埋めないか
うほ、いいC#
987 :
デフォルトの名無しさん:2005/09/20(火) 16:35:11
, '´  ̄ ̄ ` 、
i r-ー-┬-‐、i
| |,,_ C#_,{|
N| "゚'` {"゚`lリ
ト.i ,__''_ !
/i/ l\ ー .イ|、
,.、-  ̄/ | l  ̄ / | |` ┬-、
/ ヽ. / ト-` 、ノ- | l l ヽ.
/ ∨ l |! | `> | i
/ |`二^> l. | | <__,| |
_| |.|-< \ i / ,イ____!/ \
.| {.| ` - 、 ,.---ァ^! | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄l
__{ ___|└―ー/  ̄´ |ヽ |___ノ____________|
}/ -= ヽ__ - 'ヽ -‐ ,r'゙ l |
__f゙// ̄ ̄ _ -' |_____ ,. -  ̄ \____|
| | -  ̄ / | _ | ̄ ̄ ̄ ̄ / \  ̄|
___`\ __ / _l - ̄ l___ / , / ヽi___.|
 ̄ ̄ ̄ | _ 二 =〒  ̄ } ̄ / l | ! ̄ ̄|
_______l -ヾ ̄ l/ l| |___|
いいこと思いついた。お前メモリの中でお漏らししろ
それを許さないのがC#のいいところ。
>>988 「これがホントのメモリリーク」
「山田君、座布団ぜんぶとっちまいな」
とか言いたいのかテメコノヤロウ