1 名前:デフォルトの名無しさん [03/10/04 01:02] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。 前スレッドはこちら pc2.2ch.net/test/read.cgi/tech/1059028988/l50 (Part4) pc2.2ch.net/test/read.cgi/tech/1047210828/l50 (Part3) pc2.2ch.net/test/read.cgi/tech/1035895873/l50 (Part2) pc2.2ch.net/test/read.cgi/tech/1023766485/l50
232 名前:デフォルトの名無しさん mailto:sage [04/08/05 22:31] >>231 コンピュータの中では、「文字」ってのは一定のルールで数字の列に変換されて扱われてます。 このルールのことをエンコーディング、数字(の列)のことを文字コードと呼んだりします。 んで、文字の "2" に対応するコードが 50 (16進数で 0x32) なわけです。 ファイルやネットワーク等での読み書きは、byte の列を使って行われるのが基本で、 .Net Framework で文字列からこのバイト列に(またはその逆に)変換するには、 Encoding クラス(のインスタンス)を用います。
233 名前:デフォルトの名無しさん mailto:sage [04/08/05 22:31] P.S. "2"という文字列から、数字の 2 に変換するには、Int32.Parse() などを使います。
234 名前:231 mailto:sage [04/08/05 22:36] >>232 文字コードを実数値にしないといけないんですね。 丁寧な即レスありがとうございます。
235 名前:デフォルトの名無しさん mailto:sage [04/08/06 00:26] 久しぶりにきたが、なんだかいいスレになってるじゃねーか!
236 名前:デフォルトの名無しさん mailto:sage [04/08/06 07:42] コンソールはほとんど勉強してなかったから試してみたんだけど char c = (char)Console.Read(); とすれば、そのまま表示できまっせ。MSDNだとintを返すことになってるから まぎわらしいんだけどね。
237 名前:デフォルトの名無しさん [04/08/06 07:43] こんにちは 今画像のサムネイル保存用に複数画像をまとめてひとつの ファイルにしようとしています。 Aファイルサイズ・Aファイル・Bファイルサイズ・Bファイル・・・ みたいな感じ合成し、インデックスで呼び出そうかと思っています。 で、ふと思ったのですが、そういう複数のファイルをまとめてしまう クラスって既にあったりするのでしょうか。 よろしければお教えください。よろしくお願いいたします。
238 名前:デフォルトの名無しさん mailto:sage [04/08/06 09:33] Bitmap imageA = new Bitmap("A.bmp"); Bitmap imageB = new Bitmap("B.bmp"); Bitmap imageC = new Bitmap("C.bmp"); Bitmap bmp = new Bitmap(300, 100); Graphics g = Graphics.FromImage(bmp); g.DrawImage(imageA, 0, 0); g.DrawImage(imageB, 100, 0); g.DrawImage(imageC, 200, 0); g.Dispose(); bmp.Save("ABC.bmp"); bmp.Dispose(); imageA.Dispose(); imageB.Dispose(); imageC.Dispose();
239 名前:デフォルトの名無しさん [04/08/06 10:42] そうきましたか・・・ Hash的に名前で簡単にストリームを取り出せるような 仕組みが既存クラスにないかなーとか思っていたのでした。 やはり頑張って自分で実装してみます。 ありがとうございました。
240 名前:デフォルトの名無しさん mailto:sage [04/08/06 11:04] 参照設定でvjslib.dll(Microsoft Visual J# .NET Class Library)を追加して、java.util.zipで
241 名前:デフォルトの名無しさん [04/08/06 11:42] !!! なるほど! 早速やってみます。 ありがとうございました!
242 名前:デフォルトの名無しさん [04/08/06 23:07] DirectX 9.0 SDK (Summer 2004)の日本語ドキュメントをインストールしたんだが、 VS.NET2003に反映されないのです。 なんでなんでしょう・・・そういう方他にいますか?
243 名前:最凶VB厨房 mailto:sage [04/08/06 23:20] まずは再起動
244 名前:242 mailto:sage [04/08/06 23:24] >>243 再起動もしたんですがダメでした。
245 名前:最凶VB厨房 mailto:sage [04/08/06 23:28] SDK本体は入れてるのよな? まっわからんけど
246 名前:デフォルトの名無しさん mailto:sage [04/08/06 23:32] >>242 フィルタか?
247 名前:242 mailto:sage [04/08/06 23:52] 英語版ヘルプははいってるんですが・・・ フィルタもなしになってます。 本来ならVS.NET起動時に「ヘルプを反映中・・」とかでますよね?
248 名前:242 mailto:sage [04/08/07 01:01] 連結ヘルプ コレクション マネージャで更新できました。 お騒がせしました。(・∀・)
249 名前:デフォルトの名無しさん mailto:sage [04/08/07 11:42] >>242 DirectX9 SDK Summer2004の日本語ドキュメントってもう出てたの?
250 名前:デフォルトの名無しさん mailto:sage [04/08/07 11:51] >>249 変な書き方しちゃいましたね。 2004入れてから日本語ドキュメント入れたら〜でした。スマソ
251 名前:デフォルトの名無しさん [04/08/07 13:25] 外部プロセスに確保した領域をPtrToStructureすると例外が発生するのは何故でしょうか。どうかご教授お願いします。 using HANDLE=System.IntPtr;using LPVOID=System.IntPtr;using SIZE_T=System.UInt32;using DWORD=System.UInt32; class CMyApp:System.Windows.Forms.Form { [System.Runtime.InteropServices.DllImportAttribute("kernel32")] static extern LPVOID VirtualAllocEx(HANDLE hProcess,LPVOID lpAddress,SIZE_T dwSize,DWORD flAllocationType,DWORD flProtect); DWORD PAGE_READWRITE=0x04; DWORD MEM_COMMIT= 0x1000; static void Main() { System.Windows.Forms.Application.Run(new CMyApp()); } CMyApp() { this.Click+=new System.EventHandler(OnClick); } void OnClick(object sender,System.EventArgs e) { LPVOID 自分側の領域=VirtualAllocEx(System.Diagnostics.Process.GetCurrentProcess().Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE); LPVOID 他人側の領域=new LPVOID(); foreach(System.Diagnostics.Process inc in System.Diagnostics.Process.GetProcesses()) if("Explorer"==inc.ProcessName) 他人側の領域=VirtualAllocEx(inc.Handle,(LPVOID)0,(DWORD)System.Runtime.InteropServices.Marshal.SizeOf(typeof(System.TimeSpan)),MEM_COMMIT,PAGE_READWRITE); System.Runtime.InteropServices.Marshal.PtrToStructure(自分側の領域,typeof(System.TimeSpan));//自分側の領域では例外は発生しない System.Windows.Forms.MessageBox.Show("次で例外発生"); System.Runtime.InteropServices.Marshal.PtrToStructure(他人側の領域,typeof(System.TimeSpan)); } }
252 名前:デフォルトの名無しさん mailto:sage [04/08/07 14:35] >>251 非Managedなプロセス空間にManagedな構造体を確保する意味がさっぱりわからないんだが。 ttp://dotnetjunkies.com/WebLog/chris.taylor/archive/2004/05/31/14828.aspx とりあえず外部プロセスへのちょっかいの参照。
253 名前:251 [04/08/07 15:56] 252さんアドバイスありがとうございます。 これをやりたい理由は、興味本位で出来るかどうか試したかっただけです。 とりあえず上のURLをよく読んで見ます。
254 名前:デフォルトの名無しさん mailto:sage [04/08/07 18:02] おまいら、コールバックにデリゲートとインターフェースの どっち使ってる? JavaのGUIのリスナーみたいなケースなら、デリゲートの 方が何もしないメソッドまで記述しなくて済むし効率いいかな。
255 名前:デフォルトの名無しさん mailto:sage [04/08/07 18:30] >>254 俺は Java 出身だから、ある程度一まとまりの処理をくっつけるならインターフェイス使っている デリゲートは纏まり間が無くて、単体なら遣いやすいけど微妙
256 名前:デフォルトの名無しさん mailto:sage [04/08/07 21:19] 俺はデリゲート派
257 名前:デフォルトの名無しさん mailto:sage [04/08/07 21:22] anonymous class は使えないが、anonymous delegate は使えるようになるので、 デリゲートにしておくのが無難なのでは。
258 名前:デフォルトの名無しさん mailto:sage [04/08/07 23:45] 非常に唐突な質問で申し訳ないが、C#で、というか.NET Frameworkで 各ドライブのボリュームラベルを取得するのってどうやるんだべさ? なんかAPI叩くしかなかったら非常に鬱なので教えてエロイ人!
259 名前:デフォルトの名無しさん mailto:sage [04/08/07 23:48] >>258 DriveInfo.VolumeLabel かな。 …… .NET Framework 2.0 だけど。
260 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:00] 2.0で変更になったクラスの一覧ってないかな?
261 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:06] >>259 やっぱ2.0になっちまうのか・・・。 何故こんな基本的なもんが実装されてないんだと小一(ry
262 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:18] [DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] extern static bool GetVolumeInformation( string RootPathName, StringBuilder VolumeNameBuffer, int VolumeNameSize, out uint VolumeSerialNumber, out uint MaximumComponentLength, out uint FileSystemFlags, StringBuilder FileSystemNameBuffer, int nFileSystemNameSize);
263 名前:デフォルトの名無しさん mailto:sage [04/08/08 00:20] >>262 トンクスエロイ人! やっぱこうやるか・・・。なんだかなぁ・・・
264 名前:デフォルトの名無しさん [04/08/08 02:15] Socket.Selectで64を超えるソケットリストを渡すと範囲外エラーになるのですが、 この64という制限は何によってかかっているでしょうか。 100に変更したりとかできないでしょうか。
265 名前:デフォルトの名無しさん [04/08/08 11:05] ボタンの配列(二次元)をクリックされた時に、何番のボタンがクリックされたかを調べるにはどうしたら良いですか? MyButtons[,] = new Button[3,5]; のように宣言されていて、forの二重ループの中で初期化して MyButtons[i,j].Click += new EventHandler(MyButtons_Click); みたいにしてみましたが、MyButtons_Clickの引数には別に「MyButtonsの何番目か」は渡されません。 どうしたらいいんですか
266 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:11] >>265 ボタンの番号が固定のものなら、Button.Tag あたりに番号を押し込めておけば良いのでは?
267 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:22] 自分が [2,1]だとしたら、[2,0]と[2,2]のボタンも操作したいんですよ。 なんとかなりませんかねえ
268 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:28] >>267 ??? だからTagにint[]{2, 1}とかいれとけばいいんじゃないの? それがまずいというのならもっとわかりやすく説明してくれないと何がなにやら。
269 名前:デフォルトの名無しさん mailto:sage [04/08/08 11:34] >>268 あ、いま意味が分かりましたサンクス
270 名前:デフォルトの名無しさん mailto:sage [04/08/08 12:19] >>264 普通に1000とかできるじゃん……と思ったら.NET Framework2.0だった。 1.1の制限のようだ。
271 名前:デフォルトの名無しさん mailto:sage [04/08/08 12:27] >>264 OS の制限。WaitForMultipleObjects() できる最大数が64だから。 2.0 で表面的な制限は外れても、64を超えると効率は落ちる気がする。
272 名前:デフォルトの名無しさん mailto:sage [04/08/08 13:46] 簡単なベンチの結果、数が25以上になった辺りから緩やかに効率が落ちていった。 でも64周辺の境界は見あたらなかった。 ついでに1.0/1.1/2.0bも比較してみた。(スコアは低い方が優秀) 10でスコア 410 / 370 / 250 25でスコア 320 / 300 / 230 40でスコア 325 / 320 / 250 64でスコア 370 / 370 / 300 有意の差があるね。 1.1までとは違う機構を利用してたりするんじゃないかってくらい2.0は早い。 数が少ない時と多い時のスコアの分布とか。
273 名前:デフォルトの名無しさん [04/08/08 13:50] DataGridで ABC | DEF | GHI JKL | MNO | PQR STU | VWX | YZA BCD | EFG | HIJ こういう表の MNOとVWXだけ範囲指定させるみたいなことはできますか?
274 名前:264 mailto:sage [04/08/08 14:27] >>270-272 環境も書き忘れたのに本当にありがとうございます。 しかもWaitForMultipleObjectsとの関連、 ベンチまでしていただいてとても参考になりました。
275 名前:デフォルトの名無しさん mailto:sage [04/08/09 00:29] クラスのオブジェクトをコピーしたいんだけどよくわからんです。 AObject obj1 = obj2.Clone(); ってすればいいんだろうけど、 Cloneを書くときにCのmemcpyみたいなことってできないんでしょうか? それともいちいちフィールド一つずつ代入?
276 名前:デフォルトの名無しさん mailto:sage [04/08/09 00:38] Object.MemberwiseClone()
277 名前:275 mailto:sage [04/08/09 15:39] >>276 さんきゅ。 それつかってICloneableを実装するのが流儀なのだな。
278 名前:デフォルトの名無しさん mailto:sage [04/08/13 14:30] Point とかの Dispose できないヤツって、Dispose しなくていいの? Point aaa = new Point(0,0); aaa = new Point(1,1); aaa = new Point(2,2) とかしても大丈夫?
279 名前:デフォルトの名無しさん mailto:sage [04/08/13 15:17] >>278 int a = 0; a = 1; a = 2; とやることにためらいを覚える?
280 名前:デフォルトの名無しさん mailto:sage [04/08/14 04:46] char *p = malloc(100); p = malloc(100); p = malloc(100); とやることにはためらいを覚える。
281 名前:275 [04/08/15 15:23] Pointとかは構造体だからOKってことだよね。 正しいクラスはDisposeを持つべきってことか? 自前のやつも?
282 名前:デフォルトの名無しさん mailto:sage [04/08/15 15:30] >>281 もうちょっとGCを信用しようや。 Disposeが必要なのは基本的にUnmanagedなリソースを扱うクラスのみ。
283 名前:デフォルトの名無しさん mailto:sage [04/08/15 16:19] GCはいいんだけど、自分で自由に解放できないのがいまいち なんか「ゴミをゴミ箱に捨てると清掃員の仕事が減ってリストラされるから、ゴミは道に捨てるべき」とか言ってるみたい
284 名前:デフォルトの名無しさん mailto:sage [04/08/15 17:21] >>283 でも 道に捨てない −> 清掃員の仕事が減ってリストラ −> ごみを捨て忘れても綺麗にならない だから道に捨てるんだ。
285 名前:デフォルトの名無しさん [04/08/15 17:44] 環境はVS2003です。 ツール(T)→webページのビルドコメント(B) でドキュメントを作成したところ、「コード要素ページ operator + が不完全です。 」というエラーが取り除けなくて困っています。 だれか理由が分る人いますか? 以下問題のコードです。 /// <summary>テスト</summary> public class Test { /// <summary>足し算</summary> /// <param name="a">引数その1</param> /// <param name="b">引数その2</param> /// <returns>結果</returns> public static Test operator + ( Test a , Test b ) { return null ; } } >>282 Unmanagedというより、IO関連とかメモリーと連携するわけにはいかないオブジェクトが実装する必要があるのでは? OSのリソースはメモリーのようにいつでも解放できるリソースばかりではありませんから、そのようなリソースを握るオブジェクトには必然的に必要になります。 参照先がなくなった瞬間に即時開放されるタイプのクラスが定義できると、こんな面倒な事をしなくてすむんですが…… と、C++でスマートポインタを使っていると切に欲しくなる事があったりします。
286 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:23] Disposeしたところでメモリに対しては何も出来ないんだから意味なし。 まあ、>>285 のように思う事はない事もない。
287 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:29] 何らかのクリーンアップコードを実行したい場合なんかは、 Disposeを実装すべきである事が多い。 単に使用終了と言う意味合いだけなら、何もする必要なし。 ※Dispose実装したところでする事は何もない。 メモリに関しちゃほっとけばいいってのがGCのある環境での基本。
288 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:30] using ステートメント(と IDisposable インタフェイス)ではどこがダメなの?
289 名前:デフォルトの名無しさん mailto:sage [04/08/15 20:47] 忘れる可能性があるから、強制できないから。 まあ、>>285 の言うようなスマートポインタみたいな物っていっても、 結局直接参照しか扱えないため、包含するクラスは全部そのタイプにしなけりゃ 意味がなかったりして、結局大げさになりすぎてうまくいかないかな。 GCとは相性が悪いね。
290 名前:デフォルトの名無しさん mailto:sage [04/08/17 19:02] MSNメッセンジャーでの「ほげほげがサインインしました」みたいなポップアップ ダイアログを作りたいのだが,ここにいる諸氏ならばどのようにして実現するか, 意見をお聞きしたい.
291 名前:デフォルトの名無しさん mailto:sage [04/08/17 19:45] 出来合いのコンポーネントを使う。
292 名前:デフォルトの名無しさん mailto:sage [04/08/17 20:47] >>290 他にもあるけど 窓の杜 - 【NEWS】米MS提供の.NET開発向けカスタムコントロール集「Visual Basic Power Pack」 www.forest.impress.co.jp/article/2004/06/24/vbpowerpack.html
293 名前:290 mailto:sage [04/08/17 21:46] >>292 激しく感謝.ありがとう.
294 名前:デフォルトの名無しさん [04/08/18 18:19] ファイルの末尾数バイトを削除する簡単な方法ってありますか? 一度全て読み込んだ後削除して上書きしか思いつかなくて。。。 消した後、そのファイルに追加を行うので、 消したい部分のみ上書きする方法でもいいのですが。。。
295 名前:デフォルトの名無しさん mailto:sage [04/08/18 18:37] 簡単……ねぇ? 上書きなら難しいことでもないけど。 int b = 5; FileStream fs = new FileStream("hoge.txt", FileMode.Open, FileAcceess.ReadWrite); fs.Position = fs.Length - b; StreamWriter sw = new StreamWriter(fs); 以下略
296 名前:294 mailto:sage [04/08/18 19:01] >>295 そっか TextWriter に、予め頭だししておいた Stream をぶち込めばよかったのか ありがとうございますそれでいけそうです
297 名前:デフォルトの名無しさん mailto:sage [04/08/19 16:55] >>295 そっか Mamko に、だしておいた Seishi をぶち込めばよかったのか ありがとうございますそれで子供できそうです
298 名前:デフォルトの名無しさん mailto:sage [04/08/19 16:57] つまらん
299 名前:デフォルトの名無しさん [04/08/23 08:20] C#で複数のマウスイベントを検出することは可能でしょうか? USBマウスとUSBトラックボールをつなげています。こららの移動情報を個別に取得したいと思います。 どうすれば、よいでしょうか?宜しくお願いしまう。
300 名前:デフォルトの名無しさん mailto:sage [04/08/23 08:25] >>299 .NET Frameworkのライブラリじゃ不可能。 Raw Input APIを使う必要がある。 参考:ttp://www.hatena.ne.jp/1085972533
301 名前:デフォルトの名無しさん mailto:sage [04/08/23 11:16] 意外にも、DirectInput じゃ区別できないのよね。
302 名前:デフォルトの名無しさん mailto:sage [04/08/25 06:19] 実行ファイルに関連付けられたアイコンをプログラムの中で 使用したいのですが、いい方法はないでしょうか。 なお、今のところ、同一のアイコンファイルを コンパイルオプションの「/win32icon」、「/resource」の双方を 使って実行ファイルに取り込んでいます。
303 名前:デフォルトの名無しさん mailto:sage [04/08/25 07:12] >>302 /win32icon は API の ExtractIcon/ExtractIconEx で取り出せる。
304 名前:デフォルトの名無しさん [04/08/26 01:30] classとstructを簡単に見分ける方法ってある? ライブラリのやつとかいちいちマニュアル見るの面倒なんだが。
305 名前:デフォルトの名無しさん mailto:sage [04/08/26 02:15] >>304 VS使ってるならnewのインテリセンスとか。 あんまりclassかstructかを見分ける必要なぞ感じたことがないしな。
306 名前:デフォルトの名無しさん [04/08/26 11:59] ListBoxを縦に二つに分けることはできないんでしょうか。 MultiColumnではなくて、ひとつの項目を二つの列に分けて表示したいんです。 具体的に何をしたいかというと、エラーの内容と発生時刻を表示したいんですが、 発生時刻を左側に、エラーの内容を右側にわけてリストボックスに表示したいんです。 日付は必ず1行ですがエラーの内容は複数行になる可能性があるので、 文字数揃えて表示・・とかよりも縦に二つに割れたら楽だと思うんですけど、どうやってやるのかさっぱりです。 ListBoxで実現するには、あるいはほかのコントロールで実現するにはどうすればいいんでしょうか。
307 名前:デフォルトの名無しさん mailto:sage [04/08/26 12:13] >>306 ちゃんと読んではいないけどGoogleのイメージ検索で引っかかったこれはどうだろう。 ttp://www.codeproject.com/cs/combobox/resizablelistbox.asp //私ならListViewを使うかな……?
308 名前:デフォルトの名無しさん mailto:sage [04/08/26 12:18] ぶっちゃけ自分で描画したほうが早い
309 名前:デフォルトの名無しさん mailto:sage [04/08/26 14:53] >>308 めんどくさくね?
310 名前:デフォルトの名無しさん mailto:sage [04/08/27 00:14] 面倒くさいかどうかというのは実装の早さに関して考慮することじゃないような
311 名前:304 mailto:sage [04/08/27 00:43] >>305 そうか。 コピーするときにcloneがいるかとか 遅くなるのかとか、結構気になるんだが
312 名前:デフォルトの名無しさん mailto:sage [04/08/27 03:39] チューンナップなぞ遅さが気になってからすればいいんですよ. 早過ぎる最適化は諸悪の(少なくとも大半の悪の)根源なり -- DEK
313 名前:デフォルトの名無しさん [04/08/27 17:15] AxWebBrowser って ToolTip くっつけられないんだっけ?
314 名前:313 mailto:sage [04/08/27 17:16] くだらない質問なのにあげちゃった_| ̄|○
315 名前:デフォルトの名無しさん mailto:sage [04/08/27 20:34] >>305 boxing と unboxing でドツボにはまるぞ。 値型と参照型の違いは押さえておいた方が良い。
316 名前:デフォルトの名無しさん mailto:sage [04/08/27 21:08] だよね。 struct を lock () して排他したつもり、とか。
317 名前:デフォルトの名無しさん mailto:sage [04/08/27 23:58] 心配しなくてもできねーよ。
318 名前:デフォルトの名無しさん mailto:sage [04/08/28 22:43] テキストボックスで HOME や END、あまつさえ SHIFT+HOME や SHIFT+END、 CTRL+Z や CTRL+C/V/X を実現するには自分でコードを書かないといけないのでしょうか?
319 名前:デフォルトの名無しさん mailto:sage [04/08/28 22:47] >>318 まず試せ。
320 名前:デフォルトの名無しさん [04/08/28 23:16] Windows.Formにプロパティを加えたんだけど、 デザイナのプロパティウィンドウには表示されませんね。 基底クラス(Windows.Form)に加えたプロパティは 派生クラス(Windows.Form)のデザイナに反映される みたいだけど、自分自身ならなぜだめなのかなぁ。
321 名前:デフォルトの名無しさん mailto:sage [04/08/28 23:51] >>320 まったく同じレスをどこかで見たなぁ。
322 名前:デフォルトの名無しさん mailto:sage [04/08/29 12:53] >>321 俺も見た記憶があるので探してみた pc5.2ch.net/test/read.cgi/tech/1045307942/294
323 名前:306 mailto:sage [04/08/29 14:08] >>307 ,308 遅ればせながら・・・ ListViewでいけました。 ありがとうございました。 詳細表示なんてさっぱり思い浮かびませんでした。
324 名前:318 mailto:sage [04/08/29 14:41] >>319 できました…。幻覚でも見ていたのかもしれません。 でも CTRL+A ってできないんですね。
325 名前:デフォルトの名無しさん [04/08/30 17:43] 1pxの点 . を任意の座標表示するにはどうしたら良いんでしょう? 1,1 - 1,2まで幅1の線を引くと、どうも2pxくらい線が引かれちゃうし 1,1 - 1,1にすると線ができないんです。
326 名前:デフォルトの名無しさん mailto:sage [04/08/30 18:05] >>325 Bitmap に SetPixel で点を描いて、Graphics.DrawImage で画面に描写。
327 名前:デフォルトの名無しさん mailto:sage [04/08/30 18:13] 他には、 FillRectangle(DrawRectangleは不可)で幅・高さ1の四角を描画。 Graphics.GetHwndで取得したデバイスコンテキストにWin32APIのSetPixelで描画。 ……元画像のビットマップを取得できるならBitmap.SetPixelが一番手っ取り早い/速いんだけどねー。
328 名前:デフォルトの名無しさん mailto:sage [04/08/30 19:13] それ俺も気になって調べたんだけど 点を描画するGraphicsクラスのメソッドはないみたいなんだよね 結局SetPixelで妥協したけど、 Graphicsオブジェクトを使って描画を行うというルールから離れるからあんまりやりたくない
329 名前:デフォルトの名無しさん mailto:sage [04/08/30 19:18] ……327のGetHwndはGetHdcの間違い。 //user32.dllのAPIをまとめたクラスを最近作ってるからhwndまみれでつい。
330 名前:デフォルトの名無しさん mailto:sage [04/08/31 00:59] >>328 Graphics はベクタ形式を含む一般的なグラフィックを扱うクラスだから、“点”という概念がないのよね。 数学的には、点は半径が無限小の円と等価な存在で、半径0の円は画面に表示できないから。 点、というか、ピクセル単位の処理がしたければビットマップを使えと。 Graphics に元画像のビットマップを取得するメソッドがないのは、 将来的に(Avalon で)、OS 自体をベクタ画像ベースで動くものにするつもりでいるからじゃないかな。
331 名前:デフォルトの名無しさん mailto:sage [04/09/05 13:36] >>330 目から鱗
332 名前:デフォルトの名無しさん [04/09/08 21:18] www.atmarkit.co.jp/fdotnet/basics/adonet01/adonet01_01.html の記事をみてSQL Server 2000を使ってみようと思い立ったんですが、 とりあえず www.microsoft.com/japan/sql/evaluation/trial/2000/ をインストールして みたのですが、ヘルプをみても使い方がサッパリ分りません。 インストールするとタスクトレイにDBのアイコンがでますが、これのサービスをスタートしようとすると エラー1069(ログオンに失敗したため、サービスを開始できませんでした)となってしまいます。 これってまず何をすればいいんでしょうか?