1 :
:
02/11/17 16:14 ID:oq2pKPqj 違法コピー販売をしている悪徳店、露天商を晒し 社会からの鉄槌を下そう。 顔写真画像付きならなお良し!
3 :
:02/11/17 16:16 ID:oq2pKPqj
2002年11月17日 日本橋の三重電業社横でやからちっくな兄ちゃんが XPやofiiceXP、HPビルダー、フォトショップ等を CD-Rに焼いたものを売ってたで。
4 :
名無しさん@お腹いっぱい。 :02/11/17 16:16 ID:/KWBbkGx
松原潤
5 :
名無しさん@お腹いっぱい。 :02/11/17 16:21 ID:itgqXLcb
___
.//⌒___ \
//_/ \\ \
|| \\ \
∧||∧ (( |
>>3 → ( / ⌒ヽ | ∩ ←
>>1 | | | | | |
∪ / ノ | | |
| || | / |
∪∪\ ̄ ̄~/ /~ ̄ .\
|,.\ ~^~^~^~ \
/ \ \
>>2 → / ,. i \_________\
| /.| |\||_______||~
| .| | | | || ||
_./⌒..───' | / | | || ||
__/⌒ 二二ニニ ノ U .|| ||
☻
7 :
あげ :02/11/23 17:03 ID:Xwali17L
8 :
名無しさん@お腹いっぱい。 :02/11/23 18:01 ID:9mp/4JFt
質問 CD-Rに焼く前に、焼くアプリはどこから入手するんだろ?
>>8 つーか、CD-Rドライブあるなら、ライティングソフトもついてきてるはずだろ。
12 :
111 :02/11/25 16:25 ID:f4us5HTp
秋葉原のどこで売ってる?
通販ショップに個人情報売られた。
違法コピーを扱ってるサイト情報求む!!!
セキュリティー板でどうぞ
age
17 :
名無しさん@お腹いっぱい。 :02/12/04 18:27 ID:JvGJRtfe
大挙して、「違法コピーは(・A・)イクナイ!」とか言いに行くオフでもやる? まあ、新宿オフ並みに集まらないと返り討ちにあうだろうが。(w
日本橋にMAMEROM売ってる店がある。
>>18 古コンプで\1000くらいなら買っうけどな。
秋葉は逮捕騒動があってからキャッチセールスになったが相場が高くなったからあまり相手に されていない。この間もしつこくついてきたがあまりに高いので断った。 どうやら彼ら(三国人系)は高速常時回線+MX or Winnyと言う環境をよく知らないようだ。 バカ正直にソフトを買ってコピーしてるらしい。確かにそのソフトのシリアルはネットで出回ってない。 どうりで高いわけだ。 昔はDOS、3.1、win95、office95、一太郎、写真屋、ペイントショップ、ノートン、 ウイルスバスター、Bryce2、ゲームその他数種類入ってて8千円。 良心的だったなあ。
21 :
名無しさん :03/01/03 01:51 ID:1jN4peRM
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ Λ_Λ | 君さぁ こんなスレッド立てるから | ( ´∀`)< 厨房って言われちゃうんだよ | ( ΛΛ つ >―――――――――――――――――――‐< ( ゚Д゚) < おまえのことを必要としてる奴なんて | /つつ | いないんだからさっさと回線切って首吊れ | \____________________/ (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩) (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩) (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (∩∩) (∩∩) (∩∩)
22 :
名無しさん@お腹いっぱい。 :03/01/05 15:05 ID:Q6Hupldu
まだ?
23 :
名無しさん@お腹いっぱい。 :03/01/05 19:04 ID:Pw4poBnH
24 :
名無しさん@お腹いっぱい。 :03/01/05 19:16 ID:4rDJ/fy0
>>23 のようなサイトはどこに通報するのが一番効果的でしょうか?
即逮捕してくれるようなところがいいんですけど。
ちなみにaccsは1回目なら警告だけで見逃すそうです。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
いや、あんまし導入しないで。思い。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/ 1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27 鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
僕の肛門もIP記録実験です
記録されてみるテスト。
さぁ・・・
これどこのスレ?
この騒ぎで埼玉県警が捜査令状を持ってはるばる東京の赤羽を訪れるわけだが。
うそをうそと
2003/1/10 なにやら、連日メルマガだしてるひろゆきです。 そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが 面倒なので、全部のサーバに入れてみました。 重くなって落ちたりしてもご愛嬌ってことで。。。 実にさらっとひろゆきらしいでつ。。。
これから毎日集団下校になるのかな
コピペ?
DHCぐらいしか知らん
41 :
山崎渉 :03/01/23 02:55 ID:dWLmh9fP
(^^)
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
45 :
名無しさん@お腹いっぱい。 :03/02/02 23:23 ID:BQQNYmAq
誤爆すいません
(゚Д゚,,)
(゚Д゚,,)
(゚Д゚,,) (漏れはBカップのが…)
50 :
デフォルトの名無しさん :03/07/10 09:22
(゚Д゚,,)
51 :
VisuaiC++が欲しい! :03/07/10 10:49
VisuaiC++が必要なのです。98のアプリがあるのですが、販売終了ということで 入手ができませぬ。どこか手に入るところを教えてくださーい。仕事が終わんない んで、オマンマがぁ・・・販売終了ならコピーを許可にしろ>マイクロソフト すまん、スレ違いかもしれぬ。
>>79 VS.net MSDN Deluxe 買ってMSDNからダウンロード。
VS.net ProfessionalならProfessional版の
VS6、VS5英語版、Visual C++ 1.52英語版、Visual C++ 4.2英語版
がダウンロードできる。
訂正 Visual C++ 4.2 (English)はEnterprise Editionだった。
55 :
デフォルトの名無しさん :03/07/11 09:48
>>83 マウスの位置によって表示する文字を変えてやる。
57 :
デフォルトの名無しさん :03/07/11 12:53
>>84 ボタンにフォーカスが移るとメッセージが来ないんですよー。
それで悩んでます。
>>85 ボタンにフォーカスが移ったら親にフォーカス移せば?
ボタンのMOUSEMOVEから親ウィンドウのチップ表示関数呼ぶとかはできんの?
61 :
デフォルトの名無しさん :03/07/11 22:44
DLLの作成を頼まれました。それはいいのですが、なぜかソースの拡張子はcppではなく 全てcにするよう言われました。それで早速、MFCAppWizard(dll)で新規プロジェクトを作り 生成されたソースファイルを全てcに直して、改めてワークスペースに追加してコンパイルを 試みました。が、なぜかエラーが出ます。 これはなぜでしょうか?それと拡張子をcにすることにどんな意味があるのでしょうか?
エラーの内容を書かないのなんでだろう~♪なんでだろ~♪
>90 すいません。以下のようなエラーが出ます。 c:\dll\dll.c(4) : fatal error C1083: プリコンパイル済ヘッダー ファイルがオープンできません。'Debug/dll.pch': No such file or directory StdAfx.c c:\dll\stdafx.c(5) : fatal error C1083: プリコンパイル済ヘッダー ファイルがオープンできません。'Debug/dll.pch': No such file or directory コードを生成中... プロジェクト名はdllです。
ちょっと訂正です。 StdAfx.c c:\dll\stdafx.c(5) : fatal error C1083: プリコンパイル済ヘッダー ファイルがオープンできません。'Debug/dll.pch': No such file or directory dll.c c:\dll\dll.c(4) : fatal error C1083: プリコンパイル済ヘッダー ファイルがオープンできません。'Debug/dll.pch': No such file or directory
65 :
デフォルトの名無しさん :03/07/12 01:55
まずは中間ファイル消してみましょう
新参者だもんで、今までスレタイのDLLの意味判ってなかった・・・ ちょうどVC7出たころだから、おおMFC7専門かあとか思ってた。 鬱だ。
>89 >それで早速、MFCAppWizard(dll)で新規プロジェクトを作り >生成されたソースファイルを全てcに直して いや、依頼者が頼んだのは、そういうことではないと思うぞ、、
レスありがとうございます >93 説明不足ですいません。Debugフォルダを削除してコンパイルした結果が 上のエラーなのです。 >95 うーん。何回も確認したのでたぶん間違いないはずです。 とりあえず、今はcppで作業を進めています。
/TPをコンパイルオプションに足せば問題なくできるはずだが、、
>>89 ソースファイルを右クリック→名前の変更。
カーソルを最後に持っていき、Delキーを2回、でEnter。
72 :
デフォルトの名無しさん :03/07/12 09:51
みなさん、どうもありがとうございます。 >98 /TPはコマンドラインでコンパイルする時使うものですか?Developer Studioで利用する時は どうすればいいのでしょうか? >99 すいません。2行目を詳しくお願いします。
プロジェクトの設定のC/C++の、プロジェクト オプションのところに 足せば君の望むものにはなるだろうが、、、
なんでCで作れって言われてるのにMFCのウィザード使ってるんだろう
俺も思った。
DocumentクラスからCMainFrameのポインタを得たいんですが、どうすればいいのでしょうか(´・ω・`) 因みにSDIです。
>>105 AfxGetApp()->m_pMainWnd;
(´・ω・`) ← 最近これ流行ってるの?激しくウザイんだが。
((CMainFrame*)AfxGetMainWnd())
どうやらできますた。ありがとー
>>106 (´・ω・`)に関しては100%個人の感覚の問題なのでお気になさらずに。
>>107 それもアリっすか。
まあ手に馴染む方で頑張っていく方向で(´・ω・`)
ああもう挫折しそうだMFC………
83 :
デフォルトの名無しさん :03/07/14 16:54
ウィザードでCDocument, CFormViewのMDIフォームを作りました。 通常ですと「新規作成」のメニューをクリックすれば、 勝手に子ウィンドウが出てきて、コーディングは不要ですよね。 しかし新たに追加したメニューから、子ウィンドウを出したいのですが、 どうしたらいいか分かりません。 どうぞご教示下さい(´・ω・`)
>>111 CMyAppでメニューイベントを受け取ってOnFileNewにリダイレクト
しかし
> 勝手に子ウィンドウが出てきて、コーディングは不要
だから便利なんだけど、そうやって続けてると理解が深まらなくて後で困る
MFCのソース読んだりステップ実行して処理の流れを把握しとくと効率上がるよ
>>112 即レスありがとうございます。
解決しました。
>だから便利なんだけど、そうやって続けてると理解が深まらなくて後で困る
ですね(^_^;
Studyなしでいきなり実戦だもんで、すぐあわあわしてしまいます。
またすぐ質問しにくるかも…。
86 :
デフォルトの名無しさん :03/07/15 01:08
コンボボックス内のリストを選択したら、(ボタン関数は使わずに) エディットボックス内に文字を表示する、というようなことをしたいのですが、 どうすればよいのでしょうか?
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
89 :
デフォルトの名無しさん :03/07/15 15:01
ダイアログベースのInitDialogで設定ファイルを読み込んで、タスクトレイに常駐 (最小化した時点でウィンドウ非表示かつタスクトレイに常駐)させたいのですが、 InitDialogでは常駐しているのですが、その後にウィンドウが表示されてしまいます。 OnPaintが呼ばれるので、そこで再度最小化して常駐してみたのですが、一瞬 ウィンドウが表示されてしまいます。 ウィンドウが表示されないように常駐させる方法を教えて下さい。
>>117 リソースエディタでVisibleプロパティをfalseにしとく。
91 :
デフォルトの名無しさん :03/07/15 15:39
現在、SDIでWindow内にスタティックコントロールを貼り付けていますが、 実行して表示させるとテキストの背景がグレーで表示されます。 ダイアログアプリケーションの時はWM_CTLCOLORを受信して変更してましたが、 SDIの場合はどうすればよいのでしょうか?
92 :
デフォルトの名無しさん :03/07/15 15:47
スタティック使わないで直接描画かCStaticの派生クラスを自作
SDIだとWM_CTLCOLORを受信して変更できないのか?
CFormViewならWM_CTLCOLOR受け取れたはずだが。 ドキュメントビュー使ってないならしらん。
96 :
デフォルトの名無しさん :03/07/15 17:41
>121 >122 >123 ヒントありがとうございます。 もしかして、ClassWizardからWM_CTLCOLORが見えないだけかもと思い 手書きで追加してみたら各コントロールを描画する度に、 WM_CTLCOLORが受信されていました。 引き続きやってみます。
1.CBrushのメンバ作成 2.メッセージマップにON_WM_CTLCOLOR()追加 3.OnCtlColor()関数をダイアログクラスからコピーして修正 の手順でダイアログのコントロールと同じように色変更できました。 ありがとうございました。
98 :
デフォルトの名無しさん :03/07/15 23:56
>>116 ありがとうございます。
ネットや本でいろいろ調べたんですがやはりよくわかりません。
たとえば、コンボボックスのリストにa,b,c・・・というような表示をしました。
ここで、aを選択した場合、エディットボックスに選択されたaについての説明を表示したいと考えているのですが、
MFCで書いている場合はどこに、どのような記述をすればよろしいのでしょうか。
お手数ですが教えてください。
Appウィザードで、SDI、Windowsエクスプローラ形式で作成し、 リストビューのPreCreateWindowで、LVS_REPORTフラグを立て、 OnCreateでヘッダーとアイテムを追加しました。 ここまでは問題ないのですが、ツールバーの表示形式の変更ボタンを押しても変化がありません。 フレームクラスのModifyStyleでスタイルは変更しているのですが・・・ ボタンで表示形式を切り替えるには、他にも追加しなければならないコードがあるのでしょうか?
>>126 前提が書いてないからダイアログとして説明すると…
1. 貼り付けたコンボボックスを右クリックして「イベント...」を選択。
2.
>>116 のメッセージのハンドラを作成。
3. ハンドラ内でSetDlgItemTextを使ってエディットボックスに文字列を表示。
>>127 > フレームクラスのModifyStyleでスタイルは変更しているのですが・・・
その部分のコードをどうして晒さないかな~
>>128 >> フレームクラスのModifyStyleでスタイルは変更しているのですが・・・
>その部分のコードをどうして晒さないかな~
すみません、
ウィザードが自動的に生成するコードなので省略させていただきました。
OnViewStyle内で、下記の様になっています。
pView->ModifyStyle(LVS_TYPEMASK, dwStyle);
pViewはCListViewの派生クラスのポインタで、dwStyleはLVS_LIST等の表示形式です。
>>129 別に普通にやってりゃ問題ないはずだけどな…
そこを通ってることの確認とSPYでスタイルが変更されていることの確認と
余計なところでスタイルを変更しなおしてないかの見直し…くらいかな。
103 :
デフォルトの名無しさん :03/07/16 17:05
Visual C++ & MFC で、WINDOWSフォルダー内のMFC関連のDLLに依存しない アプリケーションをビルドしたいのですが、方法を教えてください。 単純に開発者のDLLまわりを一緒にビルドできればよいのですが・・・
スタティックリンク
>>131 「MFCのスタティックライブラリを使用」
106 :
デフォルトの名無しさん :03/07/16 18:31
>>118 レスありがとうございました。
不可視にしてもダメだったので、OnWindowPosChangingをいじって解決しました。
>>135 DoModal()だと結局 ShowWindow(SW_SHOWNORMAL) が呼ばれるので「モードレス
ダイアログにする」が正解だった...かな?
オンラインのMFCチュートリアルを探しています。 どなたかマイクソロフトのライブラリ以外で 御存知でしたら教えて下さい。 英語版でもいいです。
>>131 自分のアプリが使用しているDLLを知ったり、
必要なスタティックライブラリを知るにはどうしたらよいのですか?
すいませんが、教えてください。かなりなやみこんでます(泣
117 :
デフォルトの名無しさん :03/07/17 18:05
AppendMenu等でメニューに項目を追加しました。 OnCmdMsgで CN_COMMANDが来たときにある処理したいので IDを割り当てたんですけど、 nIDの値の制限ってあるのでしょうか? if(uID & 0x80000000){ // 処理 } こうやろうと思ったんですけど、全然入ってきませんでした。
0xFFFFまでしか入ってこないのかなぁ。 UINTなのに。
>>145 DYNAMENU サンプルにあるようなことをしたいの?
120 :
デフォルトの名無しさん :03/07/17 23:16
>>145 少くともWM_COMMANDは LOWORD(wParam) だから16ビットだぽ。
121 :
デフォルトの名無しさん :03/07/18 00:43
ドキュメント・ビューアーキテクチャ未使用のアプリケーションで、
http://www.datamekanix.com/で配布されている CSizingControlBarを使用したドッキングバーで、
ひとつのドッキングウィンドウにCToolBarとCListCtrを載せたかったので、
ドッキングウィンドウにCFrameWndを載せて
そのCFrameWndにCToolBarとCListBarを載せるということをやってみたのですが、
一見正常に動いているようなのですが、アプリケーションの終了時に
File:dbgheap.h
Line:1044
Expression:_CrtIsValidHeapPointer(pUserData)
というアサーションが出てしまいます。
このアサーションの原因がわからなくて困っています。
どのようにすれば解決できるのか教えてください。
>>147 >>148 レスどもです。
やはり16Bitでしたか。(´・ω・`)
何がやりたいかというと、動的にメニュー項目が沢山作られると予想できるので、
OnCmdMsgが来たときにnIDのどのBitが立っているかをチェックして処理したかったんです。
すると16Bitじゃ情報が足りなくなるのでUINTのサイズを期待していたんですが…。
何かいい方法はありませんでしょうか?
ちなみに手元にMSDNのCDがないので、DYNAMENUサンプルがどういうものだか
分からないんですが、これってヒントになりますか?
123 :
デフォルトの名無しさん :03/07/18 13:57
>>149 ひとつのメソッドを10ページも20ぺーじも書く人?
>>152 16Bitじゃ足りないんですよ。まじで。
メニューの数が65536以上ありうるんです。
65535個もアイテムのあるメニューから適切なものを選び出すのは生身の人間には実質不可能なので大丈夫
nID以外で判断しろ。
どんなメニューだ、それは・・・ 65535までは仕様なのでWM_COMMAND飛ばす標準のメニューでやるなら無理。 それぞれのメニューアイテムをユニークにするのでなく、 サブメニューや呼び出された場面などから16ビット以上の値を再計算するようにするしかない。 でも、設計やり直した方が早くね?
>>155 可能性の問題なんで、実際にはないかも。
>>156 それを教えてくれ…
>>157 >設計やり直した方が早くね?
TreeViewでも使った方がいいんじゃないかとは思ってたんですけどね。
一応もらった仕様通りで挑戦したんですが、結論から言うと、無理って事ですかね。
項目にデータを関連づけ出来ればなぁ…。
>>158 表示されているメニュー項目にだけ動的にIDを割り当てればいいんじゃねーの?
必要も無いところにこだわって、肝心なとろろに気が回ってない ダメプログラマの典型ですな。
>>159 あ、それで出来るかも…。
ありがとう。
>>160 別にこだわってないけど、たしかにとろろには気が回ってないよ。
可能かどうかを知るのに質問しちゃ駄目なのか?
とっくにMFCの質問じゃ無くなっていることには気付よな。
そもそもメニューの数に制限を無くしたならどんなことしたってIDは足りなくなるだろ
>>161 どこかに駄目なんてか書いたかね?
ただ感想を述べたまでだが?
…ま、6万個以上のメニューを作ろうってのはあからさまに無茶だが。 機能IDの範囲には単に16bitだけじゃなくてもっと微妙な制限が あったと思う。MFCのテクニカルノートのどこかに書いてあった。
ドライブとかフォルダの中身をポップアップメニューで展開するアプリあるじゃん。 ああいうのだと6万以上になることもありそうな予感。 動的にID割り振るとしても一つのフォルダ内に70000ファイルとかあったら...(w
あ、でもそれを一度に画面表示はできないだろうからやっぱ (続き) みたいな 感じで分けるしかないのか。
つうかメニューって同一階層内でのメニュー数とか、階層の深さの制限とかないのか? 誰か試した香具師は報告すれ。
自分でやれよ・・・
激しく使いにくいだろうな。Windowsのスタートメニューにやたら入ってる人いるけど。
メインとなるウィンドウA(MFC, SDI)からモーダルダイアログBを作成。 Bにフォーカスがあるとき、ユーザーの操作をB上で受け付けて、 SetFocus()でいったんAに移り、onSetFocus内だけで処理を行って すぐにBへ帰ってくる、という動きをさせると、 タイトルバーがA,B両方ともアクティブ時の色になる。 一応、SetActiveWindow()とか試したけどだめ。 なんかいい方法はないだろうか。
なぜモードレスでやらないのだろうか
なぜonSetFocusの処理をBから直接呼ばないのだろうか
>>173 モーダルがいいんだよう。ラブ。
>>174 A(View)がB(Dialog)の親分で、
Aのクラスのメンバを見たりいじったりできないんで、
仕方なくいったんAに処理を委ねる、というまどろっこしーことに。
A →B 見える、触れる、やりたいほーだい、セクハラ
A ×←B なんにもできん、なすがまま
モーダルダイアログを常時浮かべて、そっからメインのビューを
ガシガシ使役しているアプリってどうやっているんだろうか。
すまん、2年弱MFC使っててこの程度。
( ゚Д゚)ポカーン
全部のメンバの前に public: を付けろ
>>175 2年目?C++の基礎からやったほうがいいんでない?
っと10ヶ月の漏れがいってみる。
なんか、「自転車を修理に出す」という当たり前の解決策を思いつかずに チェーンを全自動でかけ直す装置を作っちゃった科学者のエピソードみたいでほほえましい ワケネーヨ
あー、当然の失笑を買っちゃったなー。 なんていうか、自分でも釣りとしか思えないような大発見を ちょうど今、成し遂げたとこなんだよ。 もういろんな意味でヤバい。 基本をおろそかどころかないがしろにしててもある程度組めてしまうのは恐いね。 MFC以前。 ふりだしに返るわ。ありがと。
>モーダルダイアログを常時浮かべて、そっからメインのビューを >ガシガシ使役しているアプリってどうやっているんだろうか。 そんなアプリ、ないと思う……。 モーダルの意味わかってんのかな。
まぁメインにユーザ定義メッセージでも投げてそのハンドラで処理すればいいだけなんだけどな
>>182 ひらめいたのはそれか?wwww
10ヶ月の漏れがいうのもなんだが
ポインタを使えよ。
156 :
デフォルトの名無しさん :03/07/21 14:11
VC++6.0でCFormViewを基本クラスにしたSDKのアプリを作っています。 ボタンのプロパティにある「標準のボタン」を動的に変更したいのですが、 m_mybutton.SetButtonStyle(BS_DEFPUSHBUTTON,TRUE); のように書いても他のコントロールにフォーカスが移ると、 元に戻ってしまいます。 これは、どうやるものでしょうか?
>>184 変更前のボタンにBS_DEFPUSHBUTTONが残ってるんじゃないか?
そいつを外したらどう?
159 :
デフォルトの名無しさん :03/07/21 14:45
>>186 レスありがとうございます。
う~む。他に標準のボタンが無くてもダメでした。
しかし、
複数ボタンがあって、最後に押したボタンが標準のボタンになるように
しようと思っているので、ボタンが押されたときに、SetButtonStyleを
実行していたのですが、
他のハンドラ(他のコントロールにフォーカスが移ったときとか)で実行すると
うまく動きました。
どうも、ボタンのクリックで自分自身を変えるときだとダメっぽいです。
なんででしょう?
あれれ。ボタンを押すと、 リソースエディタのプロパティで設定してある状態に戻ってしまうだけみたいです。 その前に、SetButtonStyleで変更したものがすべて元に戻るようです...
>>187-188 ダイアログベースのときにはCDialog::SetDefID()やDM_SETDEFIDというのがあるが…
CFormViewではどうかなぁ。
DM_SETDEFIDを投げてやればいいのだが MFCでどうやるのかは知らん
>>189-190 ありがとうございます。
::SendMessage(this->GetSafeHwnd(), DM_SETDEFID, IDC_MYBUTTON, 0L);
のような感じでうまくいくみたいです。
>>183 10ヶ月たってやっとポインタを覚えたのでポインタ言いたいだけちゃうんかと
>>185 ダイアログとビューでやりとりするんだから
メンバ変数にウィンドウのハンドル・ポインタでも保持しないと無理だろうが。
ビューとダイアログが1対1で対応してるとは限らんだろ。
それともお前はグローバル変数を使うのか?www
>>191 わからないなら黙ってろ。
>>194 ポカーン・・・・・・だからそのハンドル使って
>>182 すれって言ってんだろ。
それにViewへのポインタならAfxGetMainWnd()->GetActiveView()で取れるからダイアログにわざわざViewのポインタを渡さなくても良い。
おまえに説明すると二度手間ってことがわかった。さすが10ヶ月。
>>195 >AfxGetMainWnd()->GetActiveView()
複数のフレームウィンドウがある場合を考慮に入れないのか?
っちうか、汎用性の高いビュークラスを作ったことないんだろうね。
いずれにしてもビューのポインタを渡した方が安全。
>>172 より
>メインとなるウィンドウA(MFC, SDI)からモーダルダイアログBを作成。
どこに複数あるのか問いたい。
ハンドル渡してメッセージ飛ばした方が安全。
安全って・・・w
>>197 独自Viewのポインタ変数をダイアログに持たせるどこが汎用的なんだ?
思いっきりビューの型に依存してるな
>>197 おまえ10ヶ月たってやっと汎用性って言葉覚えたから汎用性って言いたいだけちゃうんかと
>>198 >>197 を再読。
>>201 >AfxGetMainWnd()->GetActiveView()
で取得したポインタが目的のビュー(ドキュメント)とは
限らない。
>>204 仮にウィンドウもビューも複数あったとして、ダイアログはポインタをどう使うんだ?
まさか直接メンバ関数呼ぶわけじゃないよな。汎用性低いもんな。
>>172 を見る限りSetFocusやSetActiveWindow使ってるんだから、欲しいのはアクティブビューのものでよいと思うんだが。
>>197 フレームウィンドウが複数あってもウィンドウのビューのポインタが取れるから問題ないだろ。
そのビューからダイアログ出してんだから。
197がどんな意味で汎用性という言葉を使ってるのか知らんが、
クラス間の依存関係を無くしてダイアログとViewを使いまわしできるように
するというなら、ハンドルを渡してSendMessageでメッセージを送るのが一番だと思うが。
つまり
>>182 。
>>183 はどう見ても駄レスだろう。
>>183 ところでどのポインタをどういう風に使うんだ。
182 :
デフォルトの名無しさん :03/07/21 18:53
↓183の釣れた発言
「メンバ関数を呼び出す」で図星だったんだろ。 本当に汎用性って言ってみたかっただけらしいな。
184 :
デフォルトの名無しさん :03/07/21 19:39
SetTimer() を使って1sごとにエディットボックス1をOnTimer(UINT nIDEvent) 内で更新させているのですが、 これだと、他のエディットボックスに文字を打ち込もうとすると打ち込んだ文字も消えてしまいます。 どうすれば、打ち込んだ文字が消えずにすむのでしょうか? もしくはエディットボックス1のみを更新する方法はあるのでしょうか?
>>212 UpdateDataじゃなくてSetWindowText使え
>>183 10ヶ月もやっててそのレベルじゃ完全にVBに戻ったほうがいいぞ
煽りじゃないマジレスだ
VBやってたころは「俺はできる」と思ってたんだろ?
>>214 誰もVC++使い出して10ヶ月なんて言ってないだろ。
MFCを使い出してから10ヶ月って事だよ。
VC++なら5年くらい前からやってんだよ。バーヤ、バーヤ。
汎用性意識するならメッセージだな。マルチスレッド化も楽だし。
ワロタ
たしかにw
193 :
デフォルトの名無しさん :03/07/21 21:38
195 :
デフォルトの名無しさん :03/07/21 22:33
UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) ); に渡すnIDEventの値は0以外のタイマ識別子を指定する、とヘルプには載っていますが、 一部の書籍などでは、0を指定すると未使用のタイマ識別子が返される、とあります。 特に普通にOnTimer()を使用するなら、はじめから0を指定して、あとでKillTimerするときは、 返された値を使うのが簡単なように思うのですが、この考えっていけないのでしょうか? VC++6.0(SP5)、OSはWin2000もしくはXPです。
どの辺が簡単になるんだべ?
197 :
デフォルトの名無しさん :03/07/21 22:54
nIDEventの値がシステム任せにできる。
198 :
デフォルトの名無しさん :03/07/21 23:05
MSDNライブラリなんかだと、SetTimer()の戻値って、 「正常終了した場合は、新しいタイマのタイマ識別子を返します。」 ってなってるけど、SetTimer(1,500,NULL)とかって指定しても、 戻値が2とか3とかもありえるってことでしょ? だったら、はじめから0を指定して、戻値をUINTで保存しておいて、 いらなくなったらKillTimer()したほうが合理的に感じるけど。 タイマーひとつ使うとき限定だけど。
ありえねーよ
200 :
デフォルトの名無しさん :03/07/21 23:21
一部の書籍ってどれよ?
もしかしてシステムがタイマIDを決めてくれるって、 >If the function succeeds and the hWnd parameter is NULL, >the return value is an integer identifying the new timer. これのことか?::SetTimerの英語版MSDNだけど。 これによればタイマIDに0じゃなくて、ウィンドウハンドルにNULLを渡せば、 ってことになるけど。
SetTimer(1~ KillTimer(1) の方が余程楽だとおもうんだが・・・
204 :
デフォルトの名無しさん :03/07/21 23:30
Windows95APIバイブルに書いてあるね。どっちが正しい?
そら最新のドキュメントの方が・・・
206 :
デフォルトの名無しさん :03/07/21 23:32
>>231 SetTimer(1~で1以外の値が生成されて返ってきたら、KillTimer(1)は失敗する。
SetTimerの戻値は保存するべきでしょ。普通。
207 :
デフォルトの名無しさん :03/07/21 23:35
あら? SetTimerって仕様が変わったの? 今、SetTimer(0, ...)ってやったら1が返ってきた。 これは古い仕様?
208 :
デフォルトの名無しさん :03/07/21 23:36
nIDEventに0を指定するとSetTimer()は成功するのか。 0以外の値を指定しなさいってなってるよね。 これってもしかして裏技?
明らかに0以外を渡せって書いてあるんだから0以外を渡すべきだろう。
その一部の書籍を窓から投げ捨てろって事でよろしいか?
一番確実なのは0以外を渡して戻り値をチェックだな。
>>237 0を渡しても大丈夫と言う事実には目をつむれと・・・
214 :
デフォルトの名無しさん :03/07/21 23:43
0以外ってことは、負値でもいいんだね!!
このIDって論理的値? 例えば100000なんて指定しても動作保証されるのかな?
216 :
デフォルトの名無しさん :03/07/21 23:47
>>239 1を渡して駄目なら2。
2を渡して駄目なら3。
3を渡して駄目なら4。
:
:
:
SetTimer()をやるたびにこんなロジック組めないよ。
大体IDの上限値が明示されて無いし。
SetTimerの戻り値が駄目なパターンってどういう場合?
218 :
デフォルトの名無しさん :03/07/21 23:49
>>244 これに限らず関数使うのに戻り値のチェックやるのは当然だと思うが・・・
つか上限っていうかUINTの範囲だろ
>>240 つむらなくてもいいがもし動かなくても文句も言うなってこった
大体1を渡せば成功するのはわかっているのだが、 だからといって1と決めうちしちゃっていいものなの? (まあほとんど99.9%ぐらいは成功するだろうが。) UINTの範囲だと、IDの管理自体をコーディングでやらんといけないわけよね。
>>247 パラメータがUINTでも2バイトまでしか許容して無いのもあるし。
しかし、SetTimerのIDはUINT_PTRだから、ハンドルやポインタなどの一意の識別氏を使用してタイマーを作成することも考慮されているだろう。
SetTimerが失敗する状況はわからないが、IDが不正ということは無いだろうから一度失敗したからIDを変えてもう一度ためすというのは不毛だと思う。
223 :
デフォルトの名無しさん :03/07/21 23:55
SetTimer()って簡単そうで、明確な使い方を答えられるものはいないと 言うことでおしまいでいいですか?
>>250 いや別に再度試すかどうかはそのプログラムの仕様によるだろ。
225 :
デフォルトの名無しさん :03/07/21 23:56
>パラメータがUINTでも2バイトまでしか許容して無いのもあるし。 将来の拡張性を考慮して?
226 :
デフォルトの名無しさん :03/07/21 23:59
だから、 m_TimerID = SetTimer( 1, ...); if( m_TimerID != NULL) { KillTimer(m_TimerID); } で宜しいか?
228 :
デフォルトの名無しさん :03/07/22 00:01
結局、みんな想像でしか言っていない(w 動いてるのは偶然と言うかたまたまということだ。
よろしくないよ SetTimer( 1,...); ってことはCWnd::SetTimerだと思うが、 このメソッドはHWNDを渡すから戻り値はタイマーIDじゃない
231 :
デフォルトの名無しさん :03/07/22 00:05
>>254 でも、なんか釈然としないよな。
SetTimer()の戻値が必ずしも1と言うことでなければ、
最初から1なんて指定しないで、システムに勝手にIDふってくれ、
戻値であとで殺すから、という使い方にしたい。
だったら0のほうが俺は好き。
233 :
デフォルトの名無しさん :03/07/22 00:07
>>258 関数が成功すると、新しいタイマー ID が返ります。関数がタイマーの作成に失敗すると、0 が返ります。
って書いてあるよ。
234 :
デフォルトの名無しさん :03/07/22 00:08
私が試してみると、 CWnd::SetTimer(1,1000,NULL); の戻値は1でした。タイマーIDがそのまま返ってきた・・・
俺なんかずれてた? MSDNより > If the function succeeds and the hWnd parameter is not NULL, then the return value is a nonzero integer. An application can pass the value of the nIDEvent parameter to the KillTimer function to destroy the timer. この関数が成功すると、hWndがNULLでないときは非0が返ります。 アプリケーションはnIDEventに渡した値を使ってKillTimerを呼び出してタイマーを削除することが出来ます。
>>259 まぁIDに0を渡してもエラーにならないのは釈然としないが、
ドキュメントに明記してある以上、0以外のUINTを渡して、
戻り値を保存してそれを識別用に使うのが、動作的にも
ドキュメント的にも確実だろう。
>>262 そりゃもうわかりきってるんだってば。
今話してるのは、0を渡しても1(成功値)が返ってくることの謎と、
1を渡しても1以外の値が返ってくる可能性はあるのかってことだ。
238 :
デフォルトの名無しさん :03/07/22 00:12
>>263 その非0がタイマーIDなんじゃないのかしら。
それってCWnd::SetTimer()じゃなくて::SetTimer()1の説明かと。
>>266 うん、そうだけど。
MFCのソースは
_AFXWIN_INLINE UINT_PTR CWnd::SetTimer(UINT_PTR nIDEvent, UINT nElapse,
void (CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD))
{ ASSERT(::IsWindow(m_hWnd)); return ::SetTimer(m_hWnd, nIDEvent, nElapse,
lpfnTimer); }
なんだよねぇ。
どっちのドキュメントも正しいとしたら、思いっきりアンドキュメントな動作を利用してくれちゃってる、なんかムカつく。
240 :
デフォルトの名無しさん :03/07/22 00:15
関数が成功すると、新しいタイマー ID が返ります。関数がタイマーの作成に失敗すると、0 が返ります。 の「新しいタイマー ID が返ります。」の正確な意味が知りたい。
>>207 お前全然わかってねぇな。どのビューから呼び出したって
>AfxGetMainWnd()->GetActiveView()
で取れるポインタじゃ同じビューしか操作できねーだろうが。
複数のフレームに同じビューがあり違うドキュメントを表示すること
だってあるだろ?ちったぁ考えろ。
>>209 ポインタ使ってPostMessageでもSendMessageでもすればいいじゃないか。
>>216 != 183
騙りまでして、必死だなwww
というか日本語版にはCWnd::SetTimerのも::SetTimerのも戻り値はIDだと明記されてる。
>>269 はい、バカが醜態晒しに来た。
>ポインタ使ってPostMessageでもSendMessageでもすればいいじゃないか。
これじゃ
>>182 の通りだろ。だから
>>183 は駄レスだって言われんの。
244 :
デフォルトの名無しさん :03/07/22 00:20
::SetTimer()のプロトタイプは、 WINUSERAPI UINT WINAPI SetTimer( HWND hWnd , UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc); となっている。
誰かインシデントを消費してSetTimerの動作を問い詰めてくれる神はいないのか?
249 :
デフォルトの名無しさん :03/07/22 00:24
結論出そうに無いから、 UINT m_TimerID=SetTimer(1, ...); if(m_TimerID) { KillTimer(m_TimerID); } でいっとくかな・・・ テスト十分にして問題なければ、これでいいでしょ。
>>276 インシデントを消費するに値する問題かどうか悩む~。
253 :
デフォルトの名無しさん :03/07/22 00:29
>>269 おまえ・・・自分でPostMessageでもSendMessageでもすればいいと言いながら
「メッセージ投げればいい」と言う相手に対して「ひらめいたのはそれか?」って・・・
頭大丈夫かよ
>>278 182は「メインにユーザ定義メッセージを飛ばす」って
書いてますが。ダイアログを使って一意のビューとやりとりをするなら
ビューのポインタを渡してビューにメッセージを送るべき。
以上。
>>200 スレッド境界かな。
なんせモーダルダイアログだから、何があっておかしくないよ。
>>277 ドキュメントによればそれで問題ない、としか言えないよな。
SetTimer( hValidWnd, 0, ~ のときは「ID=0の」タイマが作成されるみたいね。 実際、飛んでくる WM_TIMER もIDが0となってる。 よってIDに0を指定すればID=0のタイマができるが、その成功を 伝えるために戻り値は0以外となり、矛盾が生じるので0は指定 しないでねってことだな。
>>285 よし、決めた。
と言うことで、みなさんありがと。
>>283 ハンドルを使うとフレームだろうがビューだろうがダイアログだろうが渡せて汎用性が高いですよ(ニヤニヤ
262 :
デフォルトの名無しさん :03/07/22 00:35
263 :
デフォルトの名無しさん :03/07/22 00:39
>>287 ほんとだ。ちなみにKillTimer(0)も機能する(w
>>283 「メイン」に引っかかってたのか。そら悪かった。最初の質問にメインのウィンドウからって
書いてあると思ったがその後にViewとやりとりって書いてあるな。
だがポインタ渡すよりハンドル渡してメッセージ飛ばした方が汎用性は増す。
それこそメインだろうがビューだろうが。
265 :
デフォルトの名無しさん :03/07/22 00:41
>>287 によると、
UINT m_TimerID=SetTimer(0, ...);
if(m_TimerID)
{
KillTimer(m_TimerID);
}
はKillTimer(m_TimerID)で失敗するね。
268 :
デフォルトの名無しさん :03/07/22 00:44
>>293 KillTimer(m_TimerID)でタイマーは破棄されませんでした。
やっぱ、ドキュメント通りに使うのが混乱しないかも。
269 :
デフォルトの名無しさん :03/07/22 00:45
>>295 SetTimer()だけのためにそんなことはできません(w
>>295 オレは赤ペン先生になって修正しておいたよ。
SetTimerに適当なことが書いてあるなら、他のところにも書いてあるかもよ。 ってゆーかその本の名前教えてくれよ。
273 :
デフォルトの名無しさん :03/07/22 00:49
>>300 うぉ、マジだ。
ずっといたつもりが見落としてた・・・
みんなもうお疲れのようだ。今日はこのスレがんばったよ。
SetTimer()か。身近にこんな罠があったとはね。みなさんおやすみ。
277 :
デフォルトの名無しさん :03/07/22 00:56
>>302 訳者は気を利かせたつもりが、その矛盾に気が付かなかったと言うことか。
279 :
183(本物) :03/07/22 01:22
>>292 いや、ここは「MFC限定」スレだ。だからハンドルがMFCのクラスで隠蔽されている場合には
極力ハンドルを使わないように回答するのが正解。
だからポインタを使用すべき。
>>307 CWndポインタはスレッドをまたげないしCWnd::FromHandleなんか使って渡されてしまったら突然消滅してクラッシュもあり得る。
>極力ハンドルを使わないように回答するのが正解。 は正解ではない罠
>>216 == 307 だろ?
騙り必死だな。だが漏れは age てない。
騙りかよ
わかった。みんなでポインタ使えばいい。もう寝よう。
>>183 ポインタの勉強が終わったら、マルチスレッドの勉強でもするといい。
ポインタは安全でもない(ぬるぽ->SendMessage()とか)し、万能でもな
い(CWndポインタはスレッドには渡せないとか)のが良く分かるであろう。
SendMessage()のLPARAMでポインタを渡す。 これで丸く治まるよね。
ああ、香ばしいニオイが……
↓次の電波ドゾーw
289 :
デフォルトの名無しさん :03/07/24 01:46
MFCを学習する前にATLをやったほうが効率がいいよな。
ATLをやったらMFCにはもどれねー
スレ違い
MFCさえあればAPIなんかイラネ
↑すごい電波を発見しました隊長!
/\___/ヽ ヽ / ::::::::::::::::\ つ . | ,,-‐‐ ‐‐-、 .:::| わ | 、_(o)_,: _(o)_, :::|ぁぁ . | ::< .::|あぁ \ /( [三] )ヽ ::/ああ /`ー‐--‐‐―´\ぁあ
295 :
デフォルトの名無しさん :03/07/24 13:57
>>320 MFCを使っていれば必然的にAPIも使っているわけだが。
>>323 ネタニマジレス、アーハズカシハズカシ
297 :
デフォルトの名無しさん :03/07/24 17:46
MFCで開発しながらAPIを直接叩く奴は敗北者
もういいって。
C♯やマナゲドC++とか出てますが、 ぶっちゃけ、MFCにまだ未来はありまつか? MFCオンリーでやってきた漏れには心配でなりません。
うるせーな、必要なら他のやれよ。自分で考えろタコ。
未来はありまつか? なんて聞いてるようじゃどのみちダメだとおもう
>>327 は「けけけ ◆rCmM5mBD26」。
ググったら分かるが相当に痛いw
>>328 「私には分かりませんのでご自分でお調べになられてはどうでしょうか」と受け取りました。
>>329 MSは過去のものはあっさりと切り捨てるので怖いです。
「ダメ」というのは、何がダメなんですか?
>>330 人違いです。
ググってみましたが、ヒットしません。
いきなりMFCが捨てられるということはないですよね?
誤解のないように言っておくと、漏れはMFCを支持してるんですよ。
もういいって。
普通に聞いただけなのに... このスレ見てなかったんだけど、前にこんな荒らしでもあったのか? なんというか、さすが2chという反応。 もういいでつ。
君全然おもしろくないよ
このスレには騙りが常駐してるからな。 トリップをつけることをお勧めする。
>>338 トリップつけるほど大したこと書いてないくせに (´゚c_,゚` ) プッ
どうせ電波がいないとレスが進まないわけだし しばらくは183ネタで逝こうよ > ALL
騙り煽りはJava&Del厨だろ?放置しろよ。
314 :
デフォルトの名無しさん :03/07/28 02:25
CFtpConnection や CFtpFileFind あたりを使ってftpサーバーに アクセスするアプリを作っているのですが、 あるサーバーのパス内になるファイル数を取得する方法があれば 教えてください。 ちなみに今は、 CFtpFileFind のFindNextFileで探して数えていますが、ロスタイム 大きいです よろしくお願いします
315 :
デフォルトの名無しさん :03/07/28 03:04
それにしても、VC++にはstd.版しかないのか。 じゃあ一般的に言われてるPro.ってのはVS .NETのことなんだよな? っていうか、VS .NETはVC++の10倍くらい高い。とても手が出ない。
でいうか、アカデミック版買えば?
322 :
デフォルトの名無しさん :03/07/28 03:19
↑うわぁーやすっ! こんなのがあるんだ。アカデミックだと質が劣ったりしない?
323 :
デフォルトの名無しさん :03/07/28 03:40
324 :
デフォルトの名無しさん :03/07/28 04:04
アカデミック版だけ悪血ベーションがあるというのは本当でつか?
328 :
デフォルトの名無しさん :03/07/29 02:23
というわけで、仕切り直しで さっさと342の質問に答えてやろうぜ
>>356 鯖にdirコマンド送れば一発だろうよ。
すいません、素直に言います。ボク342です
直後に激しくスレ違いの学生クンに入られて災難です(^^;
>>358 それしか方法なさそうですか?
具体的にどうすればよいのですか?
CFtpConnection 、 CFtpFileFind あたりを駆使して可能ですか?
>直後に激しくスレ違いの学生クンに入られて災難です(^^; すまそ、わるかったな。w
334 :
デフォルトの名無しさん :03/07/29 07:22
>>359 CFtpConnection::Command() で "dir" でも送って、CInternetFile::ReadString() で
一行ずつ結果を取って、ファイルらしき行を調べてゆくのが良いと思う。
ちなみに #ifdef _WIN32_IE >= 0x0500 でくくられてるんで、IE 5.x 以降が必要。
コンパイルオプションに -D_WIN32_IE=0x600 とかつけること。
>>362 それやると客から「ftp のプロクシの設定が効かないんですけど...」とか言われて
激しく「対応してません・・・(恥;)」ってことになるから、Win32 ならおとなしく
Internet 関連の API 叩くのが吉だと思う。
337 :
デフォルトの名無しさん :03/07/29 08:48
初心者スレでレスが付かなかったので、こちらで お願いします。 SSE2で整数の内積演算のプログラミングをしたいのですが、 本がなくてさっぱりわかりません。 例えば、unsigned char a[8] b[8]との内積の和 a[0]*b[0]+a[1]*b[1]+.... をSSE2で書くと、どのようになるのでしょうか。 よろしくお願いします。 また、MMXで書いたものはあるのですが、 SSE2に直すことでさらなる速度アップは望めるのでしょうか。
>>365 ここはMFCスレ、アセンブラスレに逝きなはれ
339 :
デフォルトの名無しさん :03/07/29 16:25
>>366 そうか!ありがとうございます。
SSEはアセンブラでしたね!
つーかそれ以前の問題だよな…
>>364 ありがとうございます
CInternetFile::ReadString() する前にOpenFile()する必要があると
思うのですが、その際の指定ってどうすればよいのですか?
343 :
デフォルトの名無しさん :03/07/29 19:24
>>370 MSのftpだとdirで取れるが、telnetで試したら
無理だったのでやっぱFindFileしないとだめかもしれん。
質問失礼します。 VC++6.0 MFC にて、MDIのドット打ちツールを作成しています。 画像の変更をGUIにて実現したいのですが、diblookサンプル以外のやり方ってないでしょうか? CPenを使って1ドットづつ描いてみたりもしたのですが、遅すぎてダメでした。 diblookサンプルの様に、小難しくなく、イメージとパレットを触りたいのですが。。。
>>373 dir がダメなら ls で良いと思うけど。でも確かにそこらを隠蔽してるのが
FindFile だからそっち使うのが良いような気もする。
348 :
デフォルトの名無しさん :03/07/30 21:51
VS .netで、ダイアログにhtmlのselectタグみたいなものをつけたいな、と思って、 CComboBoxでつけてみました。 しかし、選択肢が2つあったとしても、プルダウンリスト(?)の高さが1行しかなく、もう一つの選択肢 を選ぶには、リストの右側にあるスクロールバーを押して、スクロールしないといけない状態です。 このリストで表示される行数を変えるにはどうすればいいでしょうか?
リソースエディタ上でコンボボックスの↓ボタン押せ
>>376 エディタ上でコンボボックスの矢印の部分をクリックするとプルダウン幅の設定ができる。
>>378 ありがとうございます。
全然気付かなかったです(涙
その質問て意外と初心者がはまるFAQなんだよな
MFC で,新しく作ったスレッド(別のクラスのオブジェクト)に メインスレッドのCStringオブジェクトを渡したいのですが,うまくいきません. 特別なことをする必要があるのでしょうか?
超能力者募集中
355 :
名無し@沢村 :03/07/31 13:23
>>381 つまり、マルチスレッドで質問だったんだ!
今回俺たちは全く無力だった… _| ̄|○
今日もマルチたんで抜きます
359 :
デフォルトの名無しさん :03/08/01 19:28
MFCはVSやVCなどのMS製品でしか使えませんか?
360 :
デフォルトの名無しさん :03/08/01 20:29
vc6です CTabCtrlの派生クラスでToolTIPを使いたいです。 作成時にTCS_TOOLTIPSを指定するところまではわかったのですが、 そのあと、TTN_GETDISPINFO を処理するハンドらを書くらしいのですが、 このハンドラをどのように宣言すればいいのでしょうか? お願いします。
>>388 OnNotify で
LPNMTTDISPINFO lpnmtdi = (LPNMTTDISPINFO) lParam;
if (lpnmtdi->hdr.code == TTN_GETDISPINFO) {
...
}
てな感じか?
>389 ありがとうございます。以下のようにしてできました。 ON_NOTIFY_EX(TTN_NEEDTEXTA, 0, OnToolTipNotify) ON_NOTIFY_EX(TTN_NEEDTEXTW, 0, OnToolTipNotify)
(^^)
364 :
デフォルトの名無しさん :03/08/03 00:59
VC6です。 CSplitterWndで静的分割されているウインドウの、片方のペインの幅(縦2分割の場合)を固定に したい場合、どのようにすれば良いのでしょうか?
シリアルくれ・・・・・ボソ
割れ厨でごめんなさい。。。
>>387 C++Builderでも使えると思う。
インストール時にMFC関連の項目があるし。
俺はVCLとWin32APIで足りてるのでMFC使ったこと無いけど。
369 :
デフォルトの名無しさん :03/08/03 05:35
デスマーチなんてほんと昔の昭和初期の製糸工場並みの労働しています。 それをおかしいと思わないなんて一般知識や社会を知らない無能者の集まりではないでしょうか? パソコンしか勉強していないんじゃないですか? だから最下層の労働するはめになるんです。 頭良い人は家庭も仕事も充実しています。
371 :
デフォルトの名無しさん :03/08/03 06:05
XPスタイルのタブコントロールってグラデーションがかかってますよね。 チェックやラジオを表示するとそこだけ色が違って汚く見えます。 あれを解消する方法はあるんでしょうか?
MSDOSプロンプトの画面に表示されている内容を取得する方法はありますでしょうか? 例えばDOSプロンプト画面に C:\WINDOWS\PROGRA~1\CDeX と表示されているとして、 C:\WINDOWS\PROGRA~1\CDeX という文字列を取得することは出来るのでしょうか?
>>392 CSplitterWndの派生クラスつくっていじくる。
376 :
デフォルトの名無しさん :03/08/03 12:27
>>392 最小サイズ指定するだけのほうがいいと思うが
377 :
デフォルトの名無しさん :03/08/03 14:27
今現在最新のVC++は6.0ですか? でちなみにいくらくらいします?
378 :
デフォルトの名無しさん :03/08/03 14:48
>>405 申し訳ないですけど、自分でそれぐらい調べられないと。
379 :
デフォルトの名無しさん :03/08/03 14:54
それぐらいパッパと答えられないの?
8000yen
厨房出現
>>409 さんありがとうございます。
最高は6.0ですよね?
>>411 Visual studio .NetにVCも含まれてます。そっちが最新
378って嘘(汗
388 :
デフォルトの名無しさん :03/08/04 04:18
visual c++で書いたプログラムの中に perlスクリプトを組み込みこむにはどうすれば良いのでしょう?
>>413 VS.Net買えばVCをwin98にインスコできるの?
>>420 自分で調べるという事は知らない人ですか?
しょうがないから自分で調べてやったぞ。 VS言語製品の登録ユーザーになれば無料でダウソできるというわけだ。 ところで、登録ユーザーにはどのようにすればなれますか?
おまいら早く俺に答えないと俺がボーランド製品買うぞ。
買えばだって。 もっとシャレの効いたレス返せねーのか? 藁藁
398 :
デフォルトの名無しさん :03/08/05 01:09
VisualC++.NETでは、コメントデリミタの機能って無くなったんですか? //{{AFX_MSG (ClassName) //}}AFX_MSG とかいうやつですが・・・ 無いならそれに変わる様な機能ってありますか? 教えてください。
CListCtrlでアイテムをソートなしで表示させてます。 この表示されたアイテムをドラッグアンドドロップで並んでいる場所を 入れ替えたいのですが、ドロップしたときのメッセージが見つかりません。 LVN_BEGINDRAGの対になるようなメッセージをとるにはどうしたら良いですか? HDN_ENDDRAGはヘッダー関係らしくて駄目でした
あ、アプリ全体としてはSDIでViewクラスの基本クラスはFormViewを選択しました。 それで出来上がったViewクラスでWM_LBUTTONUPを受け取ろうとしてみましたが CListCtrlの上でマウスのボタンを離してもメッセージは来ませんでした・・・
402 :
デフォルトの名無しさん :03/08/05 12:01
MFCのODBCについて質問させていただきます。
CRecordsetを使ってCSVの読込みを行うことはできたのですが、
レコードを修正(edit)・追加(addnew)しようとしたらUPDATE()時に
エラーダイアログが出力されました。
現状わかっているのはCSVファイルがリードオンリーになっている
ことだけです。
初めてODBCプログラミングするのでいまいち勝手がわからなくて・・・
下記は、勉強の為に参考にしたURLです。
ttp://www.alpha-net.ne.jp/users2/uk413/vc/VCT_ODBC.html 宜しくお願いします。
>>430 で、何をしたいんだ、と。
リードオンリーを外してみたのか、と。
>431 電波な質問をしてすみませんでした。 × CSVファイルがリードオンリーになっている ○ CSVファイルがリードオンリーでopenされている (らしい) です。 CRecordset::openの引数を (CRecordset::dynaset,NULL,CRecordset::none); としてみましたがこれでもAddNewとEditの後にUpdateを掛けると エラーメッセージが出力されてしまいます。
レコードを更新するとき CanUpdateではエラーなし Edit後、値を編集してUpdateを呼び出すと 「構文エラーまたはアクセス違反です。」と表示され失敗 レコードを削除するとき Deleteにおいて 「更新または削除に失敗しました。」と表示され失敗 m_nDefaultType は snapshotになっています。 レコードの追加(AddNew)については成功していました。 どなたか解決法ご存知ではないでしょうか?
ダイアログボックスにパラメータを与えて 設定して、モーダル表示するプログラムを作っているのですが、 CTestDlgdlg; dlg.SetParam(10,"test");//内部メンバ変数にコピーを取っている。 dlg.DoModal(); ( このあと、OnInitDialog内部で、コピーを取った値を利用して初期化。 ここでないと、内部のコントロールクラスメンバを操作することができないから。) という流れを、 dlg.DoModal(10,"test"); みたいな感じで記述したいのですが、 流れとしては、 ・コントロールクラスメンバを全部適応(アタッチ)させる。 ・各コントロールの初期化 ・内部のデータの初期化(上記のコピー用のデータにあらず) ・モーダル表示 を 1メソッド内(または、1静的関数でもいいです。)で行いたいのです。 なにか、いい方法は、ありませんか?
>>436 意味不明だが(質問をよく理解してないので聞き流してちょ)
コンストラクタで渡してしまうとか?
DoModalをオーバーロードするとか?
結局コントロール変数を使うのなら
OnInitDialog()のオーバーライドは必要になりそうだが・・・
内部でDoModalした後に設定が必要なのだから 「無理」 が答えと思われ。
ウィザードでメンバ変数にマッピングして、普通にコンストラクタで
初期化すれば DDX が勝手にやってくれるよ
>>436 コントロールで特殊な初期化処理が必要なら、DDX をカスタマイズすれば良いし。
>>436 なんかよく分からんけど、最初モードレスでダイアログ作って、後でモーダル化
すれば、初期化のタイミングとか表示のタイミングとか自分の好きにできるよ。
this->EnableWindow(FALSE);
dlg.RunModalLoop(MLF_SHOWONIDLE );
this->EnableWindow(TRUE);
モーダル化はこんな感じで。ヒントにならんかな?
初期化のためだけにメンバ変数用意したくないって、やつかな? dlg.Create(~); //非表示で作成 dlg.SetParam(10,"test"); //引数を使ってコントール初期化 dlg.ShowWindow(SW_SHOW); dlg.RunModalLoop(MLF_SHOWONIDLE ); dlg.DestroyWindow(); この一連の操作をメンバ関数か何かにして dlg.InitAndDoModal(10,"test"); とかにすれば一行でいけますよ?
バイナリファイルとか大量に読み込んで、それに基づきWORDとかEXCELとかのファイルを作るソフト をつくりたいんですが、VCでofficeを操作するのってかなり大変でしょうか? 比較的簡単に出来るとしたら、参考になるページをご存知でしたら教えて下さい(英語可) それとも、VBを一から勉強した方が楽でしょうか?
大変ではない。面倒くさいだけ。
416 :
デフォルトの名無しさん :03/08/06 03:16
MFCだからかどうかわかりませんが、デバッグを実行して作った アプリが終了するときに 「スレッド 0xFFFA41B1 終了、終了コード 0 (0x0)」 とか出ますが、この終了コードが-1なのも一緒に出ることがあります。 これマイナスだとどこかで問題が起きているとかそういうことはあるんですか?
>>440 ,441さん
>初期化のためだけにメンバ変数用意したくないって、やつかな?
そんな感じです。
なんとか、できそうです。
ありがとうございます。
試してみました。 気持ちいいぐらいに、初期化→表示ができました。(*゚∀゚)=3ハァハァ ですが、 現状だと親ウインドウにもフォーカスが移る(親のボタンも押せる状態)になっています。 完全なモーダル表示になっていないようです。 処理は、一応CDialog1が閉じるまで、 RunModalLoopより下(以下で言うDestroyWindow部分))には、進んでいないようです。 親ウインドウにフォーカスが移らないようにする方法って、 何かありませんか?また、これ以外の方法があったら教えて下さい。 ↓ソース /*初期化付DoModal */ BOOL CDialog1::InitAndDoModal(char* name,char* comment) { //this->Create(IDD);//2番目の引数略しても、メインウインドウが呼ばれるっぽ。 //↑IDDは、VCが勝手に元のリソースのIDを関連付してる。それを利用。 //TODO : ここで、独自の初期化。 m_edit1.SetWindowText(name); m_edit2.SetWindowText(comment); this->ShowWindow(SW_SHOW);//表示 this->RunModalLoop( MLF_SHOWONIDLE );//Modalループ this->DestroyWindow();//破棄。 return TRUE; } 使い方 CDialog1dlg; dlg.InitAndDoModal("ぼるじょあ","(・3・)アルェー"); で、やっています
親をEnableWindowで無効にする
>>447 それでいけました。ありがとうございます。
[解決]
CSplitterWnd で アクティブなPaneが 移り変わった時を検出する方法ないですか?
>>449 逆に中の人から知らせてあげてはどうか?
といいますと? メインのフレームの中に CSplitterWndと、それに分割された2つのPane CAWndとCBWnd(CWnd派生クラス)があったとします。 CAWndでアクティブになったことを検地する方法がある ということですよね?どうすれば?
CSplitterWndにGetActivePaneメソッドがあるからそれのソース見てアクティブペイントがどういう風に認識されているか確認してみれば? もしメンバ変数を参照しているならその変数を設定している部分を探せばいいし。 MFCのイベント通知はクソッタレな部分も多いので最悪OnIdleでチェックということもありうる。
.net 2003で、コントロールからのメッセージがOnNotify()でうまく捕らえられない なぁ、と思って、それじゃあとメッセ-ジマップにON_NOTIFY()をみたら見事成功。 なんでかなーと思ったら、送られてくるメッセージが違いやがんの。 しかもMBCSの時だけ。UNICODEにするとOK。なんでや~~
みたら -> いれたら でした
428 :
デフォルトの名無しさん :03/08/06 21:56
アプリの動作中にカーソルを変更したいのですが、うまくいきません。 LoadCursorので得たハンドルでSetCursorしても変わらないのです。 ググってみたところPreCreateWindow()でcs構造体面罵を変更し OnCreate()でSetCursorするか、アプリ動作中に変更するには SetClassLongを使うことが分かりました。 しかしSetClassLongの1番目と2番目の引数に何を使えばいいか わかりません。とりあえず hCursor=LoadCursor(IDI_MYCURSOR); SetClassLong(AfxGetApp()->m_pMainWnd->m_hWnd, GCL_HCURSOR, (LONG)hCursor) としてみましたが。変わる気配は一向にありません。 一体どのようにしたらアプリ動作中に変更出来るのでしょうか? あとVC6付属のリソースエディタで適当にアイコンを作って そのIDをIDI_MYCURSORとしたのですがそれも良くないでしょうか。 でもIDC_SIZENSとかIDC_ARROWとかでもやっぱり変更できませんが・・・
WM_SETCURSOR のハンドラを書け。
自分のアプリだったらウィンドウクラスにはNULLを入れといて、 WM_SETCURSORのハンドラでSetCursorするんでないの。
WM_SetCursorのメッセージを受けるOnSetCursor()で SetClassLong(pWnd->m_hWnd, GCL_HCURSOR, (LONG)hCursor); を行うことでシステムに登録してあるカーソルはLoadCursorで変更出来るようになりました。 続いてマウスでドラッグしているときのみ自作カーソルを表示させようとしたのですが うまくいきません。Viewクラスのメンバm_bIsDragに、PreCreateMessage()で受け取ったメッセージ によって、ドラッグ状態にあるかどうかを記録するようにしています。 そして前述のOnSetCursor()でm_bIsDragがTRUEの時のみ hCursor=LoadCursor(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDI_MYCURSOR)); を実行してSetClassLong()するのですが、このLoadCursor()が失敗しているようです。 LoadCursorの最初の引数として、PreCreateWindow()のcs構造体メンバのコピーを 用いても失敗してしまいます。アイコンを作るのも「挿入」でコピー用のカーソルを挿入してから それを変更してIDC_DRAGと命名しLoadCursorに使ってみましたがやはり失敗でした。 どうすれば自作カーソルをつかえるでしょうか
なんで、WM_SETCURSOR中で SetCursorでなく、SetClassLongなの?
私もよくわかりませんが、SetCursorでは一瞬切り替わるだけで(瞬間瞬間だけちょっとみえる) 、SetClassLongを使うと指定し直すかアプリのウィンドウを越えない間は 希望通りの形になってます
435 :
デフォルトの名無しさん :03/08/07 01:36
環境はWindowsXP+VisualStudio.NET2003で CFileDialogをカスタマイズしようとしてるんですけど。 VC6でコンパイルするとどのOSでも一律 [普通のファイルダイアログ] [カスタマイズ部分] ってなるんですけど .NETでコンパイルしたものはWin2000以降だと [プレースバー][普通のファイルダイアログ] [カスタマイズ部分] となりWin98とかだと [普通のファイルダイアログ] [カスタマイズ部分] となってしまいます。 プレースバーとはデスクトップとかマイコンピュータとか並んでるやつです。 Win2000等を想定してカスタマイズ部分を たとえばプレースバーの幅も計算に入れて上の「ファイルの種類」ってところに あわせて下にコンボボックス等を設けると Win98で実行すると位置がずれてしまいます。 このプレースバーを出さない方法ってあるのでしょうか? .NETで進めてきたプロジェクトなので今更VC6に戻れないので
なんでWin98と2000を判定しないの?
旧形式ファイルダイアログを表示する方法ならあるぞ。 filedialog.m_ofn.lStructSize = sizeof(OPENFILENAME_NT4);
438 :
デフォルトの名無しさん :03/08/07 02:38
CListViewを使う為に、ウィザードでシングルドキュメント、windowsエクスプローラー形式で作成しました。 そして、CListView派生クラスの、PreCreateWindowにこれを追加。 cs.style &= ~LVS_TYPEMASK; cs.style |= LVS_REPORT; テスト用に、同クラスのOnInitialUpdateにこれを追加しました。 CListCtrl& pListCtrl = GetListCtrl(); LVCOLUMN lvC; lvC.mask = LVCF_TEXT; lvC.pszText= "名前"; pListCtrl.InsertColumn( 0, &myCLM ); pListCtrl.InsertItem( 0 , "犬" ); pListCtrl.InsertItem( 1 , "猫" ); この状態で実行しツールバーのスタイル変更ボタンを押すと、 スタイルが変更される事を想定していたのですが、変わりません。 何か方法を間違えているのでしょうか? 環境はwin2000にVC++.netです。
>ツールバーのスタイル変更ボタン のハンドラはどうした?
>>467 CMainFrameクラスのOnViewStyle内にある処理だけでは駄目なのでしょうか?
>>462 OnSetCursor内で
SetCursor(AfxGetApp()->LoadCursor・・・
その後すぐにreturn TRUE;
でどうよ。
>>468 467が言ってるのは、
その「OnViewStyle内にある処理」を見せろって事じゃないか?
>>468 いや、ウィザードが吐いたOnViewStyleのコードだけで動くはず。VC6ではそうだった。
おれもVC++.NET2002でテストしてみたが、たしかに動作がおかしいな。
pView->ModifyStyle(LVS_TYPEMASK, dwStyle); を
pView->SendMessage(LVM_SETVIEW, dwStyle); に変更するとOKなのが、また不思議。
自分でダイアログに配置したCListCtrlなら、ModifyStyleとLVM_SETVIEWのどちらでも
スタイルが変えられるのに。
>>466 一箇所間違いが
pListCtrl.InsertColumn( 0, &myCLM ); → pListCtrl.InsertColumn( 0, &lvC);
>>467 長いので省略して、
dwStyle に、LVS_REPORTやLVS_SMALLICON等のスタイルがセットされ、これがコールされます。
pViewはCListView派生クラスのポインタです。
pView->ModifyStyle(LVS_TYPEMASK, dwStyle);
>>471 Visual Studio .NET 2003 "free online"
http://www.gotdotnet.com/japan/freeonline/ で同じ事を試してきました、結果、なんの問題も無くスタイルが変更され動作しました。
VC++.net2002の不具合なのかなぁ。
困ったなぁ・・・6.0に戻るか、2003にするか
pView->GetListCtrl().ModifyStyle(LVS_TYPEMASK, dwStyle); にしてみてはどうか? かわらんだろうけど念のため
446 :
名無し@沢村 :03/08/07 17:12
>>472 ヌヒよ、
>>471 が
> pView->SendMessage(LVM_SETVIEW, dwStyle); に変更するとOK
と言っているだろ? それでいいではないか。
>>474 まぁそうなんですが、気持ち悪いので、
.net2002で生成したソースを2003に持っていってビルド、実行しても不具合ありだったので、
2002と2003で生成されたソースを比較してみました。
変更箇所がポツポツと、
そのなかで一箇所、2003のCListView、OnStyleChanged内で、Default();がコールされてる。
2002にも追加してみました、問題なく動く・・・
とりあえず解決、皆様、お手数かけました。
それにしても、ウィザードのバグじゃないかこれ?
>>469 出来ました出来ました!!
なるほど、return TRUE; してなかったから直後に親ウィンドウによって
書き換えられてたんですね
449 :
デフォルトの名無しさん :03/08/11 18:29
教えてください。 [XP] VC++ 6.0(SP5) でソース修正中 [ツール]-[コントロールの登録]すると [RegSvr32] c:\xxxxxx\xxx.exe は読み込まれましたが、DllRegisterServerエントリポイントが 見つかりませんでした。 c:\xxxxxx\xxx.exe は.DLL .OCXではない可能性があります とエラーが出ます VC++ 6.0 のみ立ち上げて[ツール]-[コントロールの登録]すると LoadLibrary("")に失敗しました - 指定されたモジュールが見つかりません となります。 VC++を再インストールしてもだめなのですが解決できるでしょうか?
質問です。 VS.NET Win2000です。 ダイアログボックスにTreeControlをくっつけて、OnInitDialogに 以下のようなソースを加えました。 BOOL CMyTree::OnInitDialog() { CDialog::OnInitDialog(); // CTreeCtrl* pCtrl = (CTreeCtrl*) GetDlgItem(IDC_TREE1); pCtrl->InsertItem("test1"); pCtrl->DeleteAllItems( ); pCtrl->InsertItem("test2"); // return TRUE; } "test2"が残ると思ったのですが、キャプションの無い 空の項目がひとつ出来てしまいます。 以降、複数回InsertItemを行っても全て空の項目が出来ます。 DeleteAllItems( );をコメントアウトすれば 正しく二つの項目が残ります。 これは何故でしょうか。
>>478 試してみた。CTreeCtrlにTVS_NOSCROLLスタイルが付いてるとそうなりますね。
なんだこりゃ?仕様?バグ?
画面にRGBを1ずつずらして点を打つプログラムで int i=0,j=0; CPen penCol(PS_SOLID,1,RGB(0,0,0)); CPen* oldPen=pDC->SelectObject(&penCol); for(i=0;i=255;i++){ pDC->MoveTo(i,0); for(j=0;j=255;j++){ penCol.CreatePen(PS_SOLID,1,RGB(i,j,0)); pDC->LineTo(i+1,j+1); } } pDC->SelectObject(&oldPen); としてみましたが動いてくれません。 どこがおかしいのか教えてください。
>>479 おお SCROLLプロパティをいじったら期待通りの挙動になりました。
原因はよくわかりませんが。
ありがとうございましたー。
454 :
デフォルトの名無しさん :03/08/12 16:47
なぁ、CDialogからdocを見るにはどうするのがMFC的には綺麗なんだ?
>>482 GetParentFrame()->GetActiveDocument()
>>480 for(i=0;i=255;i++){
pDC->MoveTo(i,0);
for(j=0;j=255;j++){
CPen penCol(PS_SOLID,1,RGB(i,j,0));
CPen* oldPen=pDC->SelectObject(&penCol);
penCol.CreatePen(PS_SOLID,1,RGB(i,j,0));
pDC->LineTo(i+1,j+1);
pDC->SelectObject(oldPen);
}
}
>penCol.CreatePen(PS_SOLID,1,RGB(i,j,0));
>pDC->LineTo(i+1,j+1);
CreatePen()とかするたびAPIのCreatePenがよばれてHPENが作られるので
現在SelectObject()で選択されているペンの色を変えるわけではない
> penCol.CreatePen(PS_SOLID,1,RGB(i,j,0)); この行、いらない
> for(i=0;i=255;i++){ > for(j=0;j=255;j++){ これは突っ込まんのか?(w
というか、突っ込めない部分がほとんど無いわけで。
461 :
デフォルトの名無しさん :03/08/12 23:50
MDIでフレームウィンドウのクライアント領域を取得したいのですが、 GetClientRect()だとツールバーなどの部分も含まれてしまいます。 実際の表示領域(子ウィンドウの表示領域)だけを取得しているような サンプルやメソッドはありませんか?
>>489 MDIフレームウィンドウのクライアント領域は
常にMDICLIENTクラスのウィンドウで覆われてるから
それ(m_hWndMDIClient)の位置を調べればいい。
ウインドウを常に最前面にするにはどーすればいいですか?
465 :
デフォルトの名無しさん :03/08/13 02:17
CWnd::ShowWindow()
466 :
名無し@沢村 :03/08/13 02:19
あぼーん
468 :
デフォルトの名無しさん :03/08/13 08:51
469 :
デフォルトの名無しさん :03/08/13 10:13
ダイアログのEditBoxの内容をプログラムで変える場合ってどうすればいいんだろ。 ダイアログクラスのOn~~でm_Editの値変えても何も変わらんぽ。 ってか、そもそもEdit使うのが悪いのか?
470 :
デフォルトの名無しさん :03/08/13 11:08
>>497 じゃ、SetSel, ReplaceSel とかは?
>>497 m_Editの型をCEdit(もしくはその派生)ではなく、値の型(CStringなど)にしているなら、
Updateする必要がある。
472 :
デフォルトの名無しさん :03/08/13 13:48
なるほど。UpdateDataでメンバ変数とダイアログを合わせてるのか。 よーく理解できた。サンクス で、500ゲトー!|(´ー`)/
473 :
デフォルトの名無しさん :03/08/13 14:43
CSpinButtonCtrlでマウスボタンをずっと押してると、 OnDeltaposSpinが自動的に連続して呼ばれると思うんですけど、 なぜか20回くらい呼ばれた時点でそこでストップしてしまいます。 1度マウスボタンを離してもう一度クリックすると、また20回程度呼ばれ・・。 Range変えてもダメでした。何が考えられると思いますか?
>>501 SetAccel()で数秒後に止まるように設定されてる説。
UDACCEL uda[2] = { {0,1}, {2,0} }; //最初は+1ずつ、2秒後に増加停止
pSpin->SetAccel(2, uda);
とか。
475 :
デフォルトの名無しさん :03/08/13 19:01
ソレダ!初期状態として設定してやったら見事に直りました。 どうもありがとうございます。
476 :
デフォルトの名無しさん :03/08/13 19:11
SDIなんですが、最小化した時にタスクバーからタスクを消したくて 以下のコードを書いたんですがうまくいきません。 タスクバーから消えてくれないんです。 どーすればいいんでしょうか? void CMainFrame::OnSize(UINT nType, int cx, int cy){ CFrameWnd::OnSize(nType, cx, cy); // TODO : ここにメッセージ ハンドラ コードを追加します。 if(nType==SIZE_MINIMIZED){ long style=GetWindowLong(m_hWnd,GWL_EXSTYLE); if(!(style&WS_EX_TOOLWINDOW)){ style |= WS_EX_TOOLWINDOW; SetWindowLong(m_hWnd,GWL_EXSTYLE,style); } } }
>>504 ShowWindow(SW_HIDE); //←コレと
SetWindowLong(m_hWnd,GWL_EXSTYLE,style);
ShowWindow(SW_SHOW); //←コレを追加
ダイアログの中のボタンやスタティックコントロールの位置を ダイアログのクライアント領域の左上座標を0,0とした場合の位置として 取りたい場合はどうすれば良いんでしょうか?
POINT pt={0,0}; ::ClientToScreen(Btn,pt); ::ScreenToClient(Dlg,pt);
481 :
デフォルトの名無しさん :03/08/14 11:22
SDIで最初のウィザードで印刷サポートさせていなくて、 後から印刷と印刷プレビューを付けたそうと思い、 ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) をviewのメッセージマップに付け足したんですけど、 実行してみると、 プレビュー選択で「コマンドの実行に失敗しました」 印刷選択で「印刷ジョブは開始できませんでした」 と出てきます。 メッセージマップだけじゃだめですか?
どうしてそういうエラーになるのか、デバッガで追えよ。
>>505 あ、ありがとうございます。
そっか、それなら
SetWindowLong(m_hWnd,GWL_EXSTYLE,style);
もいらないっぽい事に気付きました。
勉強になりました。
484 :
デフォルトの名無しさん :03/08/14 18:20
ふと思ったのですが、MFCの関数群(Afxなになに)って どんなネームスペースで宣言されているのですか? もしかしてグローバル? だとしたらなんでAfx名前空間とかで宣言しないんでしょ。
>512 ネームスペースというものが無かった頃のなごりでしょ
487 :
デフォルトの名無しさん :03/08/14 22:35
質問です。 VC++5.0(MFC)で開発しています。 ある処理中は、アクセラレータキーを無効にしたいと考えております。 関連付けたIDが、メニューアイテムであればそのアイテムをEnable(False) にする事で、アクセラレータも無効になるのですが、 関連付けたIDが、メニューアイテム以外の場合は、どのように、 無効にしたら良いか教えて下さい。
(⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
今、MFCのコントロールから派生させたクラスを作っています。 親ダイアログを監視して、親ダイアログが移動・サイズ変更されると それに対してリアクションをする というものです。 現在、SetWindowsHookExで監視しているのですが、 static領域に管理変数とフック用コールバック関数があるため、 このクラスが複数になると、最後に登録されたものしか反映されなくなります。 これを回避するにはどういった方法があるのでしょうか? 開発環境:Win2K VC++6.0
親ダイアログ側でWM_MOVE, WM_SIZEを捕まえて 対象窓に送る。
492 :
デフォルトの名無しさん :03/08/16 17:38
いくらなんでも下がりすぎ
493 :
デフォルトの名無しさん :03/08/16 21:43
CToolBarで、ボタンを押すたびにビットマップの絵を変えたいですが、(トグル動作) どうすれば良いでしょう? AppWizardが作ってくれたCMainFrameのm_wndToolBarでの話です。 16x15の各アイコンは、リソースエディタで見るとToolBarとして横に並んだ格好で作られていますが、 この末尾(右端)にアイコンをひとつ追加してみたのですが、 例えば左から3番目のアイコンとこれを、状態に応じて入れ替えて表示ってできますか? (末尾のは表示しないで。)
494 :
デフォルトの名無しさん :03/08/16 22:04
495 :
うふふのふ :03/08/17 14:24
CDocumentの派生クラスのSerialize関数でのファイルへの書き出しについて なんですが、通常のシリアル化ではなくて、ファイル名とデータを与えれば、 ファイルにセーブしてくれるという便利な関数があるとします。 その関数を利用したいのですが、Serialize関数に渡されたCArchiveインスタンスが ファイルを開いてしまっているため、その関数で書き込むことができません。 また、CArchiveのCloseをよんでファイルを閉じてしまうと、Serialize関数を抜けた ところでプログラムが異常終了してしまいます。 この場合、どうすればよいのでしょうか?
>>523 OnOpenDocument()をオーバーライドして、
その中で、元々の CDocument::OnOpenDocument()を呼ばずに、
(ClassWizardでOnOpenDocumentを追加すると、自動的にこのコードが入るけど、
呼ばないように、その行を削除する。)
代わりに、自前の関数を呼べばよいと思われ。
元々の CDocument::OnOpenDocument()では、SetModifiedFlagもいじってるから、
そのset/resetも自前でやるよろし。
>>521 自己レスだけど、出来たので一応報告。
UPDATE_COMMAND_UIのハンドラで、m_wndToolBarの中の、
CToolBarCtrlを参照して、その中のCImageListをReplace()で書き換えてやる。
こんな感じ。
CToolBarCtrl &tbc = m_wndToolBar.GetToolBarCtrl();
// 現状のCImageListを参照して、
CImageList* pImgList = tbc.GetImageList();
// pImgListの3番目のIconを差し替える
CBitmap bitmap1;
if(toggle_sw)
bitmap1.LoadBitmap(IDB_BITMAP_A);
else
bitmap1.LoadBitmap(IDB_BITMAP_B);
pImgList->Replace(2, &bitmap1, NULL); // 3番目は、0baseで2番目
tbc.SetImageList(pImgList);
tbc.Invalidate(); // 表示し直し
差し替えるbitmapは、ToolBarに追加して用意するのではなく、
別々のbitmapリソースとして用意する。
以上、誰かのお役に立てば。
質問です。 Visual Studio NetでHTMLを開くと、なんか編集できそうな 感じなんですが、このソフトでWeb製作できるのでしょうか? なんか中途半端な感じなんですけどね・・・。
>>524 どうもー。丁寧なレスありがとう。そんな方法があったとは!!!
>>527 やってみたんですが、どうもハイパーリンクつけたり
画像をインポートしたりとかそういった機能がないような
気がしたので・・・
>>519 いや、あくまでも"監視"する方法をとりたいのです。
つまりコントロールを追加するだけでOKなように作りたかったのですが・・・
他も検索してみましたが、そういうのは無さそうでしたので諦めることにします。
ども、ありがとうございました。
>>530 かなり遅れて メッセージフック というキーワードを晒してみる
>>530 オレも昔やってみようと思ったことがあったが、
正直㍉
>>530 親ウィンドウをサブクラスしちゃうのが常套手段だと思うけど。。。
MFCでダイアログベースのアプリを作っています。 ウィザードで出来上がったダイアログには、お決まりの 「OK」「キャンセル」のボタンのみのものになってますが、 このボタンを削除した場合、InitInstance()にある 以下のコードは削除してかまわないのでしょうか? if (nResponse == IDOK) { // TODO: ダイアログが <OK> で消された時のコードを // 記述してください。 } else if (nResponse == IDCANCEL) { // TODO: ダイアログが <キャンセル> で消された時のコードを // 記述してください。 } // ダイアログが閉じられてからアプリケーションのメッセージ ポンプを開始するよりは、 // アプリケーションを終了するために FALSE を返してください
>>534 単にOK、キャンセルを無効化したいって事ならOnOKとOnCancelをオーバーライドすれ
MFC と コマンドプロンプトをデバッグ文字列表示のため、 同時に使いたいのですが、何か方法はありませんか?
エントリポイントシンボルいじったらできました。thx
510 :
デフォルトの名無しさん :03/08/20 03:19
GetDlgItem()で取得したコントロールへのハンドルって ヘルプには一時的なものと書いてあるけど、どこまで一時的なの? GetDlgItemを呼んだ関数から出ると、もう使えないのかな。 試しに別の関数で試してみても同じだけど単なる偶然?
ハンドルじゃなくてポインタだベ。CWnd::GetDlgItemならば。
あ、HWND返すのもあるのか。HWNDの方は一時的じゃないよ。
>>538 CWnd*を返すやつなら、確かアイドルループに入るまで有効。
マルチスレッドにして、そのポインタ渡して使ったりすると結構な確率であぼん。
ちゃんとCWndオブジェクトと関連づいている物なら、これまた一時的では無いけどね。
516 :
デフォルトの名無しさん :03/08/20 15:24
mciでmidiを連続再生させたいのですが、MM_MCINOTIFYが送られてきたときに巻き戻して再生すればいいことがわかりました。 MM_MCINOTIFYはclasswizardで処理できないのでしょうか。 メッセージマップに書くとあったのですが、よくわかりません。 どこで処理するのでしょう。 再生は○○view.cppのコンストラクタ、closeはデストラクタでやっています。
> MM_MCINOTIFYはclasswizardで処理できないのでしょうか。 Yes ON_MESSAGE 使え。
518 :
デフォルトの名無しさん :03/08/20 16:38
自分で作ったクラスからViewクラスの関数を呼び出すにはどうすればいいでしょうか。 AfxGetApp()->m_pMainWnd->SendMessage(WM_USER, 0, (LPARAM)iData); なんてやってみてもViewクラスのPreTranslateMessageでは wParam も lParam も0になっていて使えません。m_pMainWndをViewクラスにキャストするのかとも 思いましたが、Viewクラスのヘッダをインクルードしようとすると、ビルド時に 構文エラーが連発状態になってしまいます。
>>549 Viewをメインウィンドウにする特殊なことしてなきゃCMainFrameがm_pMainWndになってるはず。
CMainFrameはCFrameWndなので、ビューを取得するメソッドが用意されてるのでそれを使う。
インクルードでエラーになるのは、順番が悪い。
メッセージ送るというやり方自体は悪くないが、上記の理由から見当違いのウィンドウに送っている。
520 :
デフォルトの名無しさん :03/08/20 17:12
ダイアログに貼り付けたピクチャボックスより大きい画像を表示するために、 ピクチャボックスにスクロールバーを付けたいのですがどうしたらいいのでしょうか
>>547 フォームビューから派生したSDIのViewなんですが、これはViewをメインウィンドウ
にしてることになりますか。一応インクルードエラーは回避できました。それで
CMyAppView *pView=(CMyAppView*)(
(CFrameWnd*)(AfxGetApp()->mpMainWnd)
)->GetActiveView();
としてこのpViewを使ってSendMessageをしてもやはりPreTrancelateMessage
では他のパラメータが0になってしまいます。
あ、長ったらしく書かなくても CMyView* pView = (CMyView*)AfxGetMainWnd()->GetActiveView(); で良いのね・・・
>>549 自分のスレッド内のウィンドウに対するSendMessageは、直接
ウィンドウプロシージャの呼び出しになるのでPreTranslateMessageは
呼ばれていないはず。
>>552 なるほど。確かにツリーコントロールなどにアイテムを追加したりするだけで
WM_USERのメッセージが飛んできてたりしましたが、受け取ったメッセージが
自分でSendしたものという訳では無かったのですね。
元ネタの疑問はわざわざメッセージを使わないでも、Viewクラスのポインタを
得られたのだから既に解決してましたね。逝ってきます。
526 :
デフォルトの名無しさん :03/08/21 01:41
Visual C++ 2003でlibファイルのプロジェクトの項目がなくなったようなのですが どうやったら作れるのでしょうか?
プロジェクトのプロパティから変更できました。
528 :
デフォルトの名無しさん :03/08/21 10:47
VC6で簡単なHTMLパーサを作ろうと思って、WebBrowser使おうと思いました。 で、CHtmlView使うサンプルを見付けたのですが、AppWizardで作る時に、基本クラスのところにCHtmlViewが出て来ません。 基本クラスのタブには CFormView CListView CRichEditView CScrollView CTreeView CView しかありません。 何かインストール忘れしてるのでしょうか? ちなみに取り敢えずCViewで作って後からCHtmlViewに書き換えても、BEGIN_DISPATCH_MAPマクロで error C2509: '_GetBaseDispatchMap' : このメンバ関数は、'COC2View' クラス内で宣言されていません。 と怒られます。その部分のソースはこれです。 BEGIN_DISPATCH_MAP(COC2View, CHtmlView) DISP_FUNCTION_ID(COC2View, "onclick", DISPID_HTMLDOCUMENTEVENTS_ONCLICK, OnClick, VT_EMPTY, VTS_NONE) END_DISPATCH_MAP() BEGIN_INTERFACE_MAP(COC2View, CHtmlView) INTERFACE_PART(COC2View, DIID_HTMLDocumentEvents, Dispatch) END_INTERFACE_MAP()
追記 GetBaseDispatchMapはサンプルにはなく、MSDNにも載ってませんでした。
>>556 使ってるのがどのパッケージだか知らないけど、CHtmlViewだけじゃなくてCEditViewもないってんならなんか壊れてるな。
ていうか、BEGIN_DISPATCHなんとかも要らないし、CViewを書き換えだけでもコンパイル通るぞ。
まあ、HTMLパーサに(MS?)WebBrowserは必要ないし、
WebBrowser使うのにCHtmlView使う必要も無いわけだが
VCはエンタープライズなんですが、一回再インストールしてみます。 あと最終的にやりたいこととしては、クライアント領域をDHTMLでデザインしてロジック部分をVCで、ということなんです。 クリックとかドラッグした部分をHTMLパーサで解析して動作を決める、と。 CHtmlViewのイベントだとリンクタグしか取れないみたいなので。 他に簡単な方法があったらお願いします。
パーサを作るというからには自前でやるんじゃないのか?
GDIオブジェクトの開放忘れを発見するツールって、 ないんでしょうか? プロセス毎のGDIオブジェクト数がタスクマネージャで見れるということは その詳細を見れるツールや方法があるのかな、と考えてるんですが、、、
>>561 MFCのクラスだと自動的に解放されない?
スタティックコントロールにスクロールバーをつけていろいろするにはどうしたらいいのでしょうか? ShowScrollBarやSetWindowLongで表示はできたのですが、 サブクラス化してもWM_HSCROLなどが取得できません。たすけて。゚(゚´Д`゚)゚。
>>562 newしたやつはdeleteしないといかんでそ。
CWndの継承クラスつくってスタティックと同じ位置に貼り付けちゃった。
>>561 タスクマネージャで観察しながら、何回も再描画させて「検出」は一応
できるけどね...
どこでリークしてるか「特定」できないか?っていう質問をAPIスレで
したけど、回答なかった。
BoundsChecker
やっぱ、売り物のソフトしかないですか、、 タスクマネージャで個数がわかるってことは、 システムは、プロセス毎に取得・開放カウンタのみを持ってるって事なんでしょうか?? どの種類(Pen, Bitmap...)のオブジェクトなのかくらい教えてくれてもいい気がするんですが、、、、
>>563 ダイアログエディタだとウィンドウスタイルに「通知l
を設定すればくるとおもうよ。
(CreateWindowしている場合はSetWindowLongでSS_NOTIFYを
指定)
543 :
デフォルトの名無しさん :03/08/23 10:23
CArray で配列にしたい型(クラス)って コピーコンストラクタ 型 & operator = (const 型 &) を実装しないとだめかな なんかコンパイル通らんぞ ヘッダーはインクルードした
>>571 コンパイル通すのに実装いらないぞ。
自動生成されるコピーコンストラクタと代入演算子で十分。コンパイル通すだけなら。
別の問題じゃないの?
VC6で2つめのテンプレート引数を指定してないとか。
CArray<CHoge, CHoge&> myarray;
545 :
デフォルトの名無しさん :03/08/25 09:30
>569 昔、どっかの記事で、win9xの16bitリソースハンドルから実際の 中身を取り出す、という話があったような気がするが、詳しくは 忘れてしまった。
>>574 へぇー。なんか使えそうですね。
Win9xはリーク検証用OSとして使おう...
548 :
デフォルトの名無しさん :03/08/25 16:40
VS.NET2002で、ダイアログにリッチエディットやカスタムコントロールを貼り付けて DoModalすると失敗するんだけど、なぜ?
549 :
デフォルトの名無しさん :03/08/25 16:52
571に近い質問だけど、CArrayテンプレートを使うと、インテリセンス にSetAtGrowが出てこないんだけど、実際使っても大丈夫ですか? 試しにSetSize(2,500)とかやってSetAtGrowしてもエラーは 出なかったけど、エラー出ないのは偶然とかそういうことはないですか。 RemoveAtもリストアップされなくてこのまま使っても良いのか不安・・・
インテリセンスを信じるな。 寧ろヘルプを信じろ。
正直GUI以外にMFCを使うのはいかがなものかと 思い始めた今日この頃。おまいらSTL使いませんか?
afxtempl.hを見たところテンプレートになってるんで大丈夫そうですね。 STLも覚えたいけど今の実力でこれ以上手を広げると自滅しそう・・・
VC7以降ならSTLでもいいんじゃない
STLって難しそうなイメージがあって駄目ん・・・
>>582 俺もあったけど
使い慣れたらどうってことないってことが分かるよ
使え
STLはvectorとlistとmapとpairとstring位しか使ってない希ガス。
>>583 にはげどー。
漏れもできるだけSTLを使うようにしてるよ。
STLって入門書とかあるんかな?
一応俺の入門書は 「STL標準講座」 今でもパラパラめくる 後は 「Effective STL」 を読むべし これだけで十分使えるようになる
561 :
デフォルトの名無しさん :03/08/26 00:46
むしろCArrayとかつかうよりもSTLのほうが断然いいよ。 アルゴリズムも使えるし
バインドとか関数オブジェクトとかその辺は使わんなぁ ってなんかスレ違いになりつつある。。。 まぁなにはともあれVC++で心置きなくSTL使えよと
563 :
デフォルトの名無しさん :03/08/26 01:56
エクスプローラタイプのプロジェクト作ったらListViewのスタイルが変更されない。 (ツールバーで変更する時ね) VC6では出来るのに。何故????
564 :
デフォルトの名無しさん :03/08/26 02:17
なんか削除するような発言あったっけ? レス番号ずれるし透明あぼーんには不向きだったと思うが > 削除人
何かスレタイかわってねーか?
>>566 datが途中まで書き換えられてるみたいだな。
管理側が管理に失敗したか、ハクられたか。
このまんまなんかな…
新スレ立てないか?
久しぶりに来たらスレタイが何やら妙なことになってますね。 本当にここでいいのかわからんですが、とりあえず質問。 チェックボックスつきのツリーコントロールで、親階層のチェックがオンオフされたら 子のチェックを全てオンオフするということをしたいんですが、 ツリーアイテムのチェックイベントが、どうも見当たりません。 イベントとして受け取る方法はありますか? 前の状態を持っておいて、クリックかスペース押下イベントで状態変化をテストするようなこと しないとダメなんでしょうかね?
過去ログ見たけど解決されてないのかな? Spyでみたがスタイルは変わってるようだ。 (見た目は変わっていない) 再描画してみてもダメ。
すまん。解決してたみたい。 何みてたんだか。
576 :
デフォルトの名無しさん :03/08/26 22:05
ViewクラスのメンバであるCTreeCtrlに、アイテムを追加しながら そのアイテムに関連するデータを処理したいのですが、追加する アイテムが大量になると、アプリそのものの反応が無くなってしまいます。 そこでマルチスレッドにしようかと思うのですが、Viewクラスと連携を とりながら処理する方法がわかりません。 ヘルプを見たところハンドルをスレッド用関数に渡せばよいことが わかりました。実際Viewクラス内のコントロールについては ハンドルを構造体に格納し、その構造体へのポインタをスレッド関数 に渡して動作することが確認できました。しかしそのコントロールを 制御する関数や変数がViewクラス内にあるため、どうすることも できません。Viewクラス内の関数や変数にアクセスするには どのようにしたらよいでしょうか? 変数へのハンドルなんてないですよね・・・
つか、スレ建て直しますか? 過去ログ一覧のURLが載ってる テンプレどこかありませんか?
>>576 スレッドにViewクラスのポインタ渡して処理
>>606 あ、こんな簡単なことで出来たんですね。うっかり「this->m_hWnd」とか
アホなものをスレッドに渡す構造体にセットしてはまってました(滝汗
ありがとうございますた
以前その関連の話題が出てきたが結論はハンドルを 渡してsendmessageスレということらしい。
datがあれば復旧してくれそうだが、誰か持ってる? もしいなければ、次スレ(MFC9)立てて、前スレはこのスレってことでよろしく。
582 :
デフォルトの名無しさん :03/08/27 05:29
俺のソフト違法コピーされたことあるよ どうだスゲーだろ
583 :
デフォルトの名無しさん :03/08/27 05:32
俺が作った課題のプログラムを勝手にコピーされて提出されたことがあるよ。違法コピーだよな。
590くらいまでのdatならある。。。ぞぬのやつだけど
ちなみに現在の逃げ ・スペースキー押下イベント・クリックイベントでユーザ定義メッセージをPOST ・ユーザ定義メッセージハンドラで親子のチェック状態を調べて変更
>>589 メッセージ処理で困った時はSpy++使おう。
どんなメッセージが流れるか分かれば何とかなると思うよ。
ControlSpyで調べてみたけど、そういうイベントは飛んでこない感じ。
>>591 Spy++で見るとこんな感じだった。
マウスをクリックしたあと、
<00149> 0018067A S WM_CAPTURECHANGED hwndNewCapture:00000000
<00150> 0018067A R WM_CAPTURECHANGED
<00151> 0018067A S .TVM_HITTEST lpht:0012EBD8
<00152> 0018067A R .TVM_HITTEST hItem:001788B0
<00153> 0018067A S .TVM_GETNEXTITEM flag:TVGN_PARENT hitem:001788B0
<00154> 0018067A R .TVM_GETNEXTITEM hItem:001D9F18
<00155> 0018067A S .TVM_GETNEXTITEM flag:TVGN_CARET hitem:00000000
<00156> 0018067A R .TVM_GETNEXTITEM hItem:001788B0
<00157> 0018067A S .TVM_GETITEM pitem:0012EB64
<00158> 0018067A R .TVM_GETITEM fSucceeded:True
<00159> 0018067A S .TVM_SETITEM pitem:0012EB64
<00160> 0018067A R .TVM_SETITEM nRet:1
<00161> 0018067A S .TVM_GETITEM pitem:0012EAF8
<00162> 0018067A R .TVM_GETITEM fSucceeded:True
以下似たようなのが続く。
ここらへん見ると
<00151> 0018067A S .TVM_HITTEST lpht:0012EBD8
<00152> 0018067A R .TVM_HITTEST hItem:001788B0
ヒットテストしたあと単に辿ってるだけのような。だるいのでこれ以上調べる気にならん。
220 名前:騙されるなよお前ら[] 投稿日:03/09/04 23:25 ID:hzXt6OGR 小泉「しかし、あれですな。改革改革と言ってれば阿呆な国民は支持してくれるんだから楽なもんですよ」 亀井「親小泉と抵抗勢力の対決構図を煽った甲斐があったってもんだよな」 青木「そうだわな」 古賀「単純な奴らですよね」 野中「私と青木君が対立してるなんてマスコミの報道は笑っちゃうよ。あとは粛々と詰めの作業を行うだけだな」 小泉「そうですね。あともう少しですよ」 江藤「ここまで来るのに苦労したが、これで我が党は安泰だな」 橋本「我が派も安泰ですよ」 森 「どうだ小泉君、今度の選挙もいけそうか」 小泉「任せてください。今回も圧勝しますよ。俺が何言っても支持しますからね、あいつらは」 野中「君もワルよのお。小泉君」 小泉「いえいえ。野中さんほどではありませんよ。フッフッフ」 青木「だわな」 一同「フッフッフッフ。アッハッハッハッハッハッハッハッ」
「らりるれろ」だと!!!!?
あぼーん
あぼーん
あぼーん
600 :
デフォルトの名無しさん :04/07/08 02:38
中国だからなぁ~ ACCS反応するかなぁ~? 誰か通報しろよ!
602 :
デフォルトの名無しさん :04/07/10 12:35
604 :
デフォルトの名無しさん :04/07/13 19:31
605 :
デフォルトの名無しさん :04/07/13 19:54
通販法も×
606 :
デフォルトの名無しさん :04/11/20 06:48:34
607 :
デフォルトの名無しさん :04/11/22 10:28:50
age
age
611 :
デフォルトの名無しさん :2005/04/23(土) 17:59:17
612 :
デフォルトの名無しさん :2005/09/02(金) 12:22:45
お前がやれば?
614 :
デフォルトの名無しさん :
2005/09/30(金) 23:05:57