C♯, C#相談室 Part34at TECH
C♯, C#相談室 Part34 - 暇つぶし2ch751:デフォルトの名無しさん
08/02/29 21:39:35
そもそもオブジェクトを比較してどうすんだ
メディアプレイヤーいぢったことないけども、普通に考えて実体はCOMの先だろう
何らかのインスタンスを識別するIDとかがあるだろうからそれで比較汁

752:デフォルトの名無しさん
08/02/29 21:49:27
>>751
何らかのインスタンスを識別するID
o...rz

753:747
08/02/29 22:35:46
解決しますた。
get_isIdenticalの戻り値と引数を見て、
もしかして…と思って試したら当たりですた。
this.listBox1.SuspendLayout();
for(int i = 0; i < wmp.currentPlaylist.count; i++) {
WMPLib.IWMPMedia media = wmp.currentPlaylist.get_Item(i);
int j = this.listBox1.Items.Add(media);
if(wmp.Ctlcontrols.currentItem.get_isIdentical(media)) {
this.listBox1.SelectedIndex = j;
}
}
this.listBox1.ResumeLayout();

754:デフォルトの名無しさん
08/03/05 19:03:45
listViewに大量のデータを設定していると
スクロールした時とか、再描画がとてつもなく重いんです。

プロパティとかで回避方法ってありますか?

また、セル表示で別のコントロールでお勧めのやつってありますか?



755:デフォルトの名無しさん
08/03/05 19:22:28
VirtualMode やや面倒だけどな
DataGridView

756:756
08/03/06 18:09:14
相談があります。
URLリンク(forums.fanatic.net.nz)
のCのコードを参考にしてC#で同じ事をしようとコードを書きました。

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace msnTest {
public partial class Form1 :Form {

private const int WM_COPYDATA = 0x004A;

[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("user32.dll")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, ref COPYDATASTRUCT lParam);

[StructLayout(LayoutKind.Sequential)]
private struct COPYDATASTRUCT {
public IntPtr dwData;
public int cbData;
public IntPtr lpData;
}

}

続く

757:756
08/03/06 18:13:37

COPYDATASTRUCT sendData = new COPYDATASTRUCT();
sendData.dwData = (IntPtr)0x547;
sendData.lpData = songDataPtr;
sendData.cbData = Marshal.SizeOf(songData);

IntPtr msnHandle = FindWindow("MsnMsgrUIManager", null);
MessageBox.Show(SendMessage(msnHandle, WM_COPYDATA, IntPtr.Zero, ref sendData).ToString());

Marshal.FreeHGlobal(songDataPtr);
}
}
}

758:756
08/03/06 18:16:53
あれ、なぜか書けない…。間が飛んでる…

759:デフォルトの名無しさん
08/03/06 22:39:53
そのまま放置とはどういう了見だ

760:デフォルトの名無しさん
08/03/07 12:40:24
ワロタ

761:756
08/03/08 20:39:33
すみません。何か突然書き込めなくなったので…。
解決しました。リンク先のCのソースは送信データが間違っていて、
Cのままコンパイルしても動かないものでした。
正解が
URLリンク(yuuan.net)
にありました。

762:デフォルトの名無しさん
08/03/10 03:11:16
しつもんです。

Graphics g = pictureBox1.CreateGraphics();
mypen = new Pen(Color.White);
fillbrush = new SolidBrush(Color.Black);


g.FillEllipse(fillbrush, 10, 140, 400, 400);
g.DrawEllipse(mypen, 10, 140, 400, 400);


pictureBox1.BackColor = Color.Red;

とやると、せっかくかいた円が消えてしまうのですが、
どうすれば消えないでかけるのでしょうか?

背景の色の設定と、円を書く順番を変えても意味ありませんでした。


763:デフォルトの名無しさん
08/03/10 03:23:50
>Graphics g = pictureBox1.CreateGraphics();
なにこれ

764:デフォルトの名無しさん
08/03/10 03:27:44
>>763
pictureBox1に円を書きたかったのでこうしたんですけれど、
必要ないんですか?

765:デフォルトの名無しさん
08/03/10 03:35:20
コントロールを継承したクラスでOnPaintメソッドをオーバライドする
CreateGraphics()じゃなくてOnPaintに渡されるe.GraphicsのGraphicsで描画する

766:デフォルトの名無しさん
08/03/10 03:44:49
>>765
???
すいません、もう少し分かりやすく説明してもらえませんか?

767:デフォルトの名無しさん
08/03/10 03:53:17
おいおい・・・

768:デフォルトの名無しさん
08/03/10 04:18:29
人間やめろ。

769:デフォルトの名無しさん
08/03/10 05:14:01
>>766
君にはまだ早い
C#の基礎を理解してから来なさい

770:デフォルトの名無しさん
08/03/10 11:55:04
>>768
>>769
「現在のウィンドウのメッセージの存続期間だけ有効です。」
を具体的に説明してくれ。

771:デフォルトの名無しさん
08/03/10 12:59:21
おいおい・・・

772:デフォルトの名無しさん
08/03/10 13:13:41
人間やめろ。

773:デフォルトの名無しさん
08/03/10 14:18:21
>>770
君にはまだ早い
C#の基礎を理解してから来なさい

774:デフォルトの名無しさん
08/03/10 14:48:31
ここ、もう相談スレじゃないよな…

775:デフォルトの名無しさん
08/03/10 17:23:26
本スレ行けよ

776:無知な人間
08/03/10 17:34:46
WinXPのC#.NET2003での質問ですが、
DDLのChangedで動的に選択したインデックスが上手く取得できません
どうしたらよろしいでしょうか?

777:デフォルトの名無しさん
08/03/10 18:11:18
ファイト

778:デフォルトの名無しさん
08/03/10 18:45:10
笑えばいいと思うよ

779:デフォルトの名無しさん
08/03/11 14:30:22
何、このスレ

780:デフォルトの名無しさん
08/03/13 10:59:40
垂直同期をとるためにVsync待ちをしたいと思い調べたところ

C++では
IDirectDraw::WaitForVerticalBlank
IDirectDraw::GetVerticalBlankStatus
IDirentDraw::GetScanLine
などを使うようなのですが、
これらの機能をC#で使用する方法はあるでしょうか?

また、C#で垂直同期をとる手法として一般的なものがあれば
教えていただけないでしょうか

781:デフォルトの名無しさん
08/03/13 12:57:50
Managed DirectX

782:デフォルトの名無しさん
08/03/13 21:40:54
ずいぶん懐かしい言葉だなー。
垂直同期待ちって。

783:デフォルトの名無しさん
08/03/13 21:42:50
液晶全盛、リフレッシュレートいじり放題のこのご時勢にVSync待ちはないだろ

784:デフォルトの名無しさん
08/03/13 21:54:57
へーCRTのリフレッシュレートが「いじり放題」じゃなかったなんて知らなかったよw

むしろ液晶の方がそういう面では不自由なデバイスのはずだと思ってたけど

785:デフォルトの名無しさん
08/03/13 22:43:07
液晶のリフレッシュレートが弄りやすいかどうかなんて話してないんだが

786:デフォルトの名無しさん
08/03/13 23:26:20
へーじゃあ「どんな話」をするつもりだったのかとっくり語ってもらおうじゃないの。
いやまあできないなら無理すんなよw

787:デフォルトの名無しさん
08/03/13 23:51:20
液晶全盛 かつ リフレッシュレートいじり放題という意味で、
液晶全盛 だから リフレッシュレートいじり放題という解釈ではないということだと思う。

788:783
08/03/14 00:07:04
おまえら俺の言葉が足りなくて悪かった
言いたい事は>>787さんのいう通りだ

おやすみ

789:デフォルトの名無しさん
08/03/14 01:33:35
いや普通はそう解釈するよ
揚げ足を取ろうとするなら別だけど

790:デフォルトの名無しさん
08/03/14 04:35:47
>>781
解決しました
有り難うございました

791:デフォルトの名無しさん
08/03/14 08:04:13
>>789
君も頭悪いなw
>>788は図らずも自分を擁護できる発言をする奴がいたからそれを利用してるだけ。

そんなことねえだろ、と言いたいのなら、>>783の意図が>>787の通りだとして(それでも全然かまわないが)
「なぜ」「このご時勢にVSync待ちはない」という結論に繋がるのか説明してみな。

792:デフォルトの名無しさん
08/03/14 08:10:25
必ずいい方向に脳内補完する人と必ず悪い方向に脳内補完する人が
この世の中にはいるんだな。
なぜ分かれるかというと性格がいいか悪いかなんだな。

793:デフォルトの名無しさん
08/03/14 08:37:00
>>788は利用してるのか?


794:デフォルトの名無しさん
08/03/14 11:40:10
Vistaは垂直同期取ってるんじゃなかったっけ

795:デフォルトの名無しさん
08/03/14 12:21:13
もうそろそろカスはほっとこうぜ

796:デフォルトの名無しさん
08/03/14 18:29:31
>>795
Vistaのことをひどく言うのはやめてあげてください。

797:デフォルトの名無しさん
08/03/14 18:34:44
Vistaは、悪くない
悪いのは、サンプルプログラムのフォント関連部分と>>791の頭

798:デフォルトの名無しさん
08/03/14 18:38:22
まあ>>797がそういう「負け惜しみ」はみっともないと思う程度の恥の意識もない奴だ、
というのはよくわかったよw

799:デフォルトの名無しさん
08/03/14 18:39:43
うわ、反応早ww

800:デフォルトの名無しさん
08/03/14 18:50:14
反応早かったら何?
っていうか、どうしてこの手の馬鹿ってのは自分の言葉を自分に適用しようとしないのかねw
一言で言えば恥を知らないからだろうけどさ。

そんなことはどうでもいいから>>791に書いた疑問を説明してみてよ早く。

801:783
08/03/14 20:59:24
ちょっとおまえら俺の事はもうスルーしてC#の話ししてくださいホントお願いします


802:デフォルトの名無しさん
08/03/14 21:22:54
C#の話はC#スレでやりましょう

803:デフォルトの名無しさん
08/03/15 11:31:51
テアリング避けでVsync待ちしたいこともあるけど、
漏れのやり方が悪いのかビジーループになるんで非ゲームでは
あんまり使いたくないな・・・

804:デフォルトの名無しさん
08/03/15 18:57:26
もうリフレッシュレート論争やめようや

805:デフォルトの名無しさん
08/03/15 19:20:24
続けたい奴は続けていいよ
どうせ糞スレだし

806:デフォルトの名無しさん
08/03/15 19:26:10
中途半端に機能してるから紛らわしいw

807:デフォルトの名無しさん
08/03/19 17:02:16
>>784で書いた自分の勘違いを認めたくないだけだろ
こういうバカは何言っても食いついてくるからほっとけばよろし

808:デフォルトの名無しさん
08/03/19 17:35:42
ここで質問ですよ
リッチテキストボックスに画像貼り付けたり、背景を自前で描画したりやりたいんですが
WndProcのWM_PAINTを捕らえても文字の上に描画されてしまいます
文字の下に描画できませんか?

809:デフォルトの名無しさん
08/03/19 18:48:37
つWPF

810:デフォルトの名無しさん
08/03/19 19:44:09
>>809製品?

811:デフォルトの名無しさん
08/03/19 21:14:14
ググレ押忍

812:デフォルトの名無しさん
08/03/19 21:38:24
>>807
それって>>783のことだと思うけどね。
こういうバカ?
それって君とか>>783みたいなバカのこと?w

813:デフォルトの名無しさん
08/03/19 21:39:32
>>808
そんなの簡単だろ・・・と思ってやってみると意外とできないねこれ

814:デフォルトの名無しさん
08/03/21 11:21:46
Func<T,TResult>に共通化されつつある今、
Converter<T>やPredicate<T>などを使う意味はあるのでしょうか?

815:デフォルトの名無しさん
08/03/21 11:22:30
意味を明確にできる

816:デフォルトの名無しさん
08/03/21 13:13:34
>>814
前からいちいち定義するのがいやでDelegate<Result,Param1,Param2>とか普通のメソッドの型の順番にあわせて使ってたんだが、
Funcniそのまま使えないんだよなぁ・・・どうしよう

817:デフォルトの名無しさん
08/03/23 20:49:21
DataGridViewでNullValueが設定されている列のセルの値を、プログ
ラムでDBNull.Valueに設定したとき、セルにNullValueの値を表示す
るにはどうしたらいいのですか?

MSDNライブラリには、DBNull.Valueを設定するだけではできないと書
いてあるけど...

セルの値がDBNull.Valueで、セルの表示はNullValueの値にする方法
を教えてください。


818:デフォルトの名無しさん
08/03/23 21:08:56
変換は行われないってのはDataSourceNullValueがDBNull.Valueで(ryってところの解説だぜ?

819:デフォルトの名無しさん
08/03/23 21:43:29
>>818
ありがとうございます。よく読んだらその通りでした。
その列の型はstringで、DataSourceNullValueを設定してないため、MSDNライブラリの
「DataSourceNullValue が DBNull.Value で、セルの ValueType が参照型」に見事に
合致してました。
DataSourceNullValueをstring.Emptyにして試してみます。



820:デフォルトの名無しさん
08/03/24 18:48:31
コレクション要素の変更をコレクションのオーナーに通知する方法
はないですか?オーナーをコレクションとしてラッピングするくらいしか
思いつかなくて。

821:デフォルトの名無しさん
08/03/24 18:55:21
その方法でいいんでない?
何か問題があるのか?

822:デフォルトの名無しさん
08/03/24 19:09:34
IBindingListでも実装しとけ

823:デフォルトの名無しさん
08/03/24 19:55:39
>>820
そういう用途だとObservableCollection使っておくといいんじゃないかね。
URLリンク(msdn2.microsoft.com)

824:デフォルトの名無しさん
08/04/01 14:57:38
配列の配列にアクセスする方法について教えていただけないでしょうか?
 int data = new int[5][5];
に数値データが入っているとして、例えば全要素を表示させることを考えます。
その際あえて、ポインタを使ってアクセスすることを考えてます。
(ポインタなんて使わず、添字を使えばいいというのはわかっていますが、 あくまで、勉強のためということで。。。)
ポインタ(*p)を使う方法はわかるのですが(ソースの上半分)、ポインタのポインタ(**p)を使ったやり方が(ソース下半分)がわかりません。
ちなみに具体的にはソース中の<<<<data>>>の部分の書き方がわかりません。
(もしかしたら、ぜんぜん違うのかもしれませんが。。。) わかる方教えていただけないでしょうか?よろしくお願いします。m(_ _)m

        //とりあえず うまくいった ポインタ を使う方法
fixed (int* p = &data[0][0]) {
for (int* px = p; px != p + 5; px++) {
for (int py = *px; py != *px + 5; py++)
Console.Write("<" + (int)&py + "," + py + ">");
Console.WriteLine();
}
}

        //うまくいかない ポインタのポインタ を使う方法
fixed (int** p = <<<<data>>>) {
for (int** px = p; px != p + 5; px++) {
for (int* py = *px; py != *px + 5; py++)
Console.Write("<" + (int)py + "," + *py + ">");
Console.WriteLine();
}
}


825:デフォルトの名無しさん
08/04/01 16:01:03
>>824
ポインタなんて使わず、添字を使え
こうですか?


C#でわざわざポインタなんて勉強する価値無し

826:デフォルトの名無しさん
08/04/01 16:15:55
int*[] temp = new int*[data.Length];
for (int i = 0; i < temp.Length; i++) {
 temp[i] = (int*)(void*)Marshal.UnsafeAddrOfPinnedArrayElement(data[i], 0);
}
fixed (int** p = temp) { ...
こうじゃね
本気でこんなの書く奴がいたら頭おかしい

827:デフォルトの名無しさん
08/04/01 18:05:17
>>824
上も全然ダメ。めちゃくちゃ。
コンパイル通りゃいいってもんじゃないよ・・・

828:デフォルトの名無しさん
08/04/01 20:47:06
そこまでやるならC++/CLI使えって話しだな

829:デフォルトの名無しさん
08/04/01 23:24:50
MSも unsafe 使えと推奨している。
URLリンク(www.microsoft.com)

830:デフォルトの名無しさん
08/04/01 23:36:12
その記事,すごく客観的で秀逸だよな

831:デフォルトの名無しさん
08/04/01 23:58:45
この記事には続きがあって、その記事とセットで初めて客観的と言える。
URLリンク(www.microsoft.com)

832:824
08/04/02 18:38:08
>>826
具体的なソースをご提示いただき、ありがとうございます。

>>827
上のソースも、ポインタの使い方に間違いがありますか。。。
一応、ほしい結果は得られたので、正しいかと思ったのですが。。。

>>828
もちろん、その通りですが、あくまで勉強ということで。。。。

>>829
この記事読みました。
実際に簡単なループをまわして何パターンかのソースで確認したところ、配列とポインタとでそんなに大きく処理時間がかわらないようです。
(逆にポインタが遅い場合もありました。。。)

ポインタのポインタは関数の文字列型の引数に使う程度で、やっぱりあまり出番がないんでしょうか。。。。


833:デフォルトの名無しさん
08/04/02 22:22:26
  |┃三        / ̄\
     |┃         |     |
     |┃          \_/
 ガラッ. |┃            |
     |┃  ノ//   ./ ̄ ̄ ̄ \
     |┃三    /  ::\:::/:::: \   
     |┃     /  <●>::::::<●>  \. 
     |┃     |    (__人__)     |  
     |┃三   \    ` ⌒´    /  
     |┃三   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \

834:デフォルトの名無しさん
08/04/05 11:43:48
C++とC#の違いを教えて下され

835:デフォルトの名無しさん
08/04/05 12:00:13
全然違うので説明が逆に難しい。

836:デフォルトの名無しさん
08/04/05 12:09:15
JAVAとC#の違いを教えて下され

837:デフォルトの名無しさん
08/04/05 12:13:29
中途半端に似てるから鬱陶しい
特にJavaのジェネリックの糞さには発狂しそうになる

838:デフォルトの名無しさん
08/04/05 12:15:36
>>836
Sunが作ったのがJava。
Microsoftが作ったのがC#。

839:デフォルトの名無しさん
08/04/05 12:46:37
JavaとJ#の違いを教えて

840:デフォルトの名無しさん
08/04/05 12:54:39
JavaをWindowsに最適化したのがJ#

841:デフォルトの名無しさん
08/04/15 00:05:48
そーいや大学の研究科目でjavaを使ったGUIとかいうのがあったがどうにもなあ
「最終的には1000行を超えるコード~」とか「毎年大人気の科目」とか意味の分からん宣伝ばっかで萎えた。
そんなん個人でもうやってるって話だし。チームプログラミングとかを前面に押し出してたなら魅力があっただろうに

842:デフォルトの名無しさん
08/04/15 00:07:50
学部一回生向けの授業?

843:デフォルトの名無しさん
08/04/15 00:21:35
>>841
大学でチームプログラミングなんて教えれる先生がいないって。

844:デフォルトの名無しさん
08/04/15 02:23:01
>>842
三回生向けだからあれなわけで
一回生でそこまでやったらそれは別にいいと思うけどね

845:デフォルトの名無しさん
08/04/15 12:48:39
大学でチーム開発してもできるやつが全部やっちゃうから意味なし。

>>842
学部一回生でそんな高級なことしたら単位が全然でないじゃないか!
学部一回だとこんなもんだ。
・電源の入れ方、終了のしかた。
・エディタのつかいかた
・ファイル操作のしかた
・ほーむぺーじをつくろう
・一番最後に hello world(全角スペース入れてコンパイル通せないヤツ多発)


846:デフォルトの名無しさん
08/04/15 13:05:54
これは酷いww

847:デフォルトの名無しさん
08/04/15 13:11:51
>>845
卒論を二人で一つ書く大学もあるらしいからな
ありえる

848:デフォルトの名無しさん
08/04/15 19:44:54
一回目のCの授業でHelloWorldコンパイルまで行ったけどwwwwwwww

849:デフォルトの名無しさん
08/04/15 20:33:05
どこの底辺専門学校だよ。

850:デフォルトの名無しさん
08/04/15 20:43:21
>>847
XP卒論ですか
新しいな

851:デフォルトの名無しさん
08/04/15 22:14:42
院なら別に共著って普通じゃねえ?


852:デフォルトの名無しさん
08/04/16 00:40:02
>>847
二人で作業したからといって、労力が半分になるわけでもないし、
二人で作業したからといって、二倍の完成度になるわけでもない。

むしろ独りよがりな内容にならなくて良いんじゃないか。まさにXPだな。

853:デフォルトの名無しさん
08/04/16 12:19:14
>>851
普通一人一本じゃないか?


854:デフォルトの名無しさん
08/04/17 22:42:45
え?

855:デフォルトの名無しさん
08/04/17 22:47:26
お菓子を食べながら卒論を書くんですね
わかります

856:デフォルトの名無しさん
08/04/17 23:04:21
いいえビールです

857:デフォルトの名無しさん
08/04/18 00:27:09
早く終えて生ハムメロンでも食べなはれ

858:デフォルトの名無しさん
08/04/18 01:37:06
何だか腹減ってきた

859:デフォルトの名無しさん
08/04/18 10:09:29
>>855
シュークリーム分は大事ですよ?

860:デフォルトの名無しさん
08/04/18 18:40:17
ArrayListのテンプレート版はないの?

861:デフォルトの名無しさん
08/04/18 19:07:11
System.Collections.Generic 名前空間の List<T>

862:デフォルトの名無しさん
08/04/22 17:02:02
C#のおかげで少しだけC++のテンプレートが解ったような気がした

863:デフォルトの名無しさん
08/04/22 17:06:17
>>862
そりゃ気のせいだな、ぶっちゃけ別物できる事の範囲が違いすぎる、つかなんだこのスレ
昔の重複スレの残骸?

864:デフォルトの名無しさん
08/04/23 00:30:32
「すこしだけわかったような気がした」って言っただけなのに・・・

865:デフォルトの名無しさん
08/04/23 00:33:40
気にスンナ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch