違法コピーソフト屋を晒すスレ

このエントリーをはてなブックマークに追加
1 
違法コピー販売をしている悪徳店、露天商を晒し
社会からの鉄槌を下そう。
顔写真画像付きならなお良し!
2名無しさん@お腹いっぱい。:02/11/17 16:14 ID:nIBmKzFl
>>1
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  .||             ||
6名無しさん@お腹いっぱい。:02/11/18 18:51 ID:TOcyABRv
7あげ:02/11/23 17:03 ID:Xwali17L
 
8名無しさん@お腹いっぱい。:02/11/23 18:01 ID:9mp/4JFt
質問
CD-Rに焼く前に、焼くアプリはどこから入手するんだろ?
9名無しさん@お腹いっぱい。:02/11/23 18:09 ID:0sWYU+un
>>8
うわ・・・
10名無しさんに接続中…:02/11/23 18:25 ID:9TTZWAoB
>>8
板違いです。DL板で質問して下さい。
11名無しさん@お腹いっぱい。:02/11/24 10:06 ID:tq7UBOQd
>>8
つーか、CD-Rドライブあるなら、ライティングソフトもついてきてるはずだろ。
12111:02/11/25 16:25 ID:f4us5HTp
秋葉原のどこで売ってる?
13名無しさん@お腹いっぱい。:02/11/26 02:08 ID:AfiCJaf6
通販ショップに個人情報売られた。
14名無しさん@お腹いっぱい。:02/11/26 23:16 ID:Xn61fYBz
違法コピーを扱ってるサイト情報求む!!!
15オペラ信者 ◆Opera7X3Eo :02/11/27 00:31 ID:P0dSCN4j
セキュリティー板でどうぞ
16名無しさん@お腹いっぱい。:02/12/04 15:29 ID:6LrkLFjF
age
17名無しさん@お腹いっぱい。:02/12/04 18:27 ID:JvGJRtfe
大挙して、「違法コピーは(・A・)イクナイ!」とか言いに行くオフでもやる?

まあ、新宿オフ並みに集まらないと返り討ちにあうだろうが。(w
18名無しさん@お腹いっぱい。:02/12/04 21:34 ID:9j4xlzH/
日本橋にMAMEROM売ってる店がある。
19名無しさん@お腹いっぱい。:02/12/05 01:33 ID:Ub6fIEWy
>>18
古コンプで\1000くらいなら買っうけどな。
20名無しさん@お腹いっぱい。:02/12/06 00:06 ID:S51F8+7T
秋葉は逮捕騒動があってからキャッチセールスになったが相場が高くなったからあまり相手に
されていない。この間もしつこくついてきたがあまりに高いので断った。
どうやら彼ら(三国人系)は高速常時回線+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回目なら警告だけで見逃すそうです。
25IP記録実験:03/01/08 22:03 ID:LJHdGXzj
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を提出することがある。
26名無しさん@お腹いっぱい。:03/01/09 01:31 ID:vz2+C1wv
いや、あんまし導入しないで。思い。
27IP記録実験:03/01/09 02:13 ID:B/uAIntc
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を提出することがある。
28名無しさん@お腹いっぱい。:03/01/09 02:17 ID:XVG0FUTN
僕の肛門もIP記録実験です
29名無しさん@お腹いっぱい。:03/01/09 03:36 ID:9gywov48
記録されてみるテスト。
30名無しさん@お腹いっぱい。:03/01/09 12:25 ID:88+VeFzp
>>126 アウチ!
31名無しさん@お腹いっぱい。:03/01/10 10:33 ID:NRyZMeZN
さぁ・・・
32名無しさん@お腹いっぱい。:03/01/10 12:21 ID:NRyZMeZN
これどこのスレ?
33名無しさん@お腹いっぱい。:03/01/10 17:36 ID:wMJcaXHN
この騒ぎで埼玉県警が捜査令状を持ってはるばる東京の赤羽を訪れるわけだが。
34名無しさん@お腹いっぱい。:03/01/11 17:37 ID:K9jCmIDR
うそをうそと
35名無しさん@お腹いっぱい。:03/01/12 01:26 ID:/5nJnLh+
「年内に」だったけどどうしたんだろうね。

【2ch】2chがオークションサイト立ち上げ?
http://news2.2ch.net/test/read.cgi/newsplus/1036941670/
36名無しさん@お腹いっぱい。:03/01/12 01:51 ID:9pu8hRDM
「年内に」だったけどどうしたんだろうね。

【2ch】2chがオークションサイト立ち上げ?
http://news2.2ch.net/test/read.cgi/newsplus/1036941670/
37名無しさん@お腹いっぱい。:03/01/12 04:57 ID:D4MuNmwb
2003/1/10

なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが
面倒なので、全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。


実にさらっとひろゆきらしいでつ。。。
38名無しさん@お腹いっぱい。:03/01/12 11:55 ID:OOr0dJSb
これから毎日集団下校になるのかな
39名無しさん@お腹いっぱい。:03/01/12 23:00 ID:l+OIV2MZ
コピペ?

40名無しさん@お腹いっぱい。:03/01/14 00:16 ID:2maFxSvH
DHCぐらいしか知らん
41山崎渉:03/01/23 02:55 ID:dWLmh9fP
(^^)
42名無しさん@お腹いっぱい。:03/01/24 13:59 ID:AQuuwlIm
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
43名無しさん@お腹いっぱい。:03/01/25 02:53 ID:8umkp/5F
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
44名無しさん@お腹いっぱい。:03/01/27 18:59 ID:JVGWZtNS
======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
bobzap2005
http://user.auctions.yahoo.co.jp/jp/user/bobzap2005?
http://page2.auctions.yahoo.co.jp/jp/auction/b31991267
http://page4.auctions.yahoo.co.jp/jp/auction/d26826176
http://page5.auctions.yahoo.co.jp/jp/auction/e21388240
http://page4.auctions.yahoo.co.jp/jp/auction/d26914307
http://page2.auctions.yahoo.co.jp/jp/auction/b32078376
http://page4.auctions.yahoo.co.jp/jp/auction/d26914067
http://page2.auctions.yahoo.co.jp/jp/auction/b31991393
http://page2.auctions.yahoo.co.jp/jp/auction/b32078659
http://page2.auctions.yahoo.co.jp/jp/auction/b31991365
http://page5.auctions.yahoo.co.jp/jp/auction/e21388176
http://page5.auctions.yahoo.co.jp/jp/auction/e21388191
http://page4.auctions.yahoo.co.jp/jp/auction/d26914247
http://page4.auctions.yahoo.co.jp/jp/auction/d26914287
http://page3.auctions.yahoo.co.jp/jp/auction/c30516002
http://page2.auctions.yahoo.co.jp/jp/auction/b32079031
http://page2.auctions.yahoo.co.jp/jp/auction/b32078405
http://page3.auctions.yahoo.co.jp/jp/auction/c30515710
http://page2.auctions.yahoo.co.jp/jp/auction/b31949377
http://page4.auctions.yahoo.co.jp/jp/auction/d26913981
http://page2.auctions.yahoo.co.jp/jp/auction/b32078538
http://page2.auctions.yahoo.co.jp/jp/auction/b32078561
http://page3.auctions.yahoo.co.jp/jp/auction/c30393061
http://page2.auctions.yahoo.co.jp/jp/auction/b32078970

コイツほど悪質な違法コピーソフト屋はいないだろう。
昔からIDを変えまくってピーコソフトを売りまくっています。
コイツと比べると他の違法出品者が霞んでみえてしまう。
安く見積もっても1日50000円は稼いでいるようだ。
ヤフーは何故コイツを追放しないのか?
違法出品でも金さえ入ってくれば、それで良いのか?
4664:03/07/10 00:01
誤爆すいません
(゚Д゚,,)
(゚Д゚,,)
(゚Д゚,,) (漏れはBカップのが…)
50デフォルトの名無しさん:03/07/10 09:22
(゚Д゚,,)
51VisuaiC++が欲しい!:03/07/10 10:49
 VisuaiC++が必要なのです。98のアプリがあるのですが、販売終了ということで
入手ができませぬ。どこか手に入るところを教えてくださーい。仕事が終わんない
んで、オマンマがぁ・・・販売終了ならコピーを許可にしろ>マイクロソフト 

 すまん、スレ違いかもしれぬ。
>>79
中古屋でも探すべし。
>>79
VS.net MSDN Deluxe 買ってMSDNからダウンロード。
VS.net ProfessionalならProfessional版の
VS6、VS5英語版、Visual C++ 1.52英語版、Visual C++ 4.2英語版
がダウンロードできる。
5481:03/07/10 19:48
訂正
Visual C++ 4.2 (English)はEnterprise Editionだった。
55デフォルトの名無しさん:03/07/11 09:48
ActiveXコントロールに貼り付けた各ボタンにツールチップつけたいのですが
以下を参考にしても全体にしかツールチップが表示されません。
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q141/8/71.asp&NoWebContent=1
MediaPlayerのように
各ボタンでツールチップを表示させるにはどうしたらいいのでしょうか。
>>83
マウスの位置によって表示する文字を変えてやる。
57デフォルトの名無しさん:03/07/11 12:53
>>84
ボタンにフォーカスが移るとメッセージが来ないんですよー。
それで悩んでます。
緊急レベルきたよー

MS03-023 : Windows の重要な更新
HTML コンバータのバッファ オーバーランにより、コードが実行される (823559)
http://www.microsoft.com/japan/security/security_bulletins/MS03-023e.asp
>>85
ボタンにフォーカスが移ったら親にフォーカス移せば?
ボタンのMOUSEMOVEから親ウィンドウのチップ表示関数呼ぶとかはできんの?
61デフォルトの名無しさん:03/07/11 22:44
DLLの作成を頼まれました。それはいいのですが、なぜかソースの拡張子はcppではなく
全てcにするよう言われました。それで早速、MFCAppWizard(dll)で新規プロジェクトを作り
生成されたソースファイルを全てcに直して、改めてワークスペースに追加してコンパイルを
試みました。が、なぜかエラーが出ます。
これはなぜでしょうか?それと拡張子をcにすることにどんな意味があるのでしょうか?
エラーの内容を書かないのなんでだろう〜♪なんでだろ〜♪
6389:03/07/12 01:33
>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です。
6489:03/07/12 01:35
ちょっと訂正です。

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に直して

いや、依頼者が頼んだのは、そういうことではないと思うぞ、、
>>94
静岡県民の方ですか?
6989:03/07/12 08:34
レスありがとうございます

>93
説明不足ですいません。Debugフォルダを削除してコンパイルした結果が
上のエラーなのです。

>95
うーん。何回も確認したのでたぶん間違いないはずです。

とりあえず、今はcppで作業を進めています。
/TPをコンパイルオプションに足せば問題なくできるはずだが、、
>>89
ソースファイルを右クリック→名前の変更。
カーソルを最後に持っていき、Delキーを2回、でEnter。
72デフォルトの名無しさん:03/07/12 09:51
みなさん、どうもありがとうございます。

>98
/TPはコマンドラインでコンパイルする時使うものですか?Developer Studioで利用する時は
どうすればいいのでしょうか?

>99
すいません。2行目を詳しくお願いします。
73_:03/07/12 10:08
プロジェクトの設定のC/C++の、プロジェクト オプションのところに
足せば君の望むものにはなるだろうが、、、
なんでCで作れって言われてるのにMFCのウィザード使ってるんだろう
俺も思った。
DocumentクラスからCMainFrameのポインタを得たいんですが、どうすればいいのでしょうか(´・ω・`)
因みにSDIです。
>>105
AfxGetApp()->m_pMainWnd;

(´・ω・`) ← 最近これ流行ってるの?激しくウザイんだが。
((CMainFrame*)AfxGetMainWnd())
どうやらできますた。ありがとー>>106
(´・ω・`)に関しては100%個人の感覚の問題なのでお気になさらずに。
>>107
それもアリっすか。
まあ手に馴染む方で頑張っていく方向で(´・ω・`)
ああもう挫折しそうだMFC………
8285:03/07/14 11:02
>>87
それだ!
それやってみます。
83デフォルトの名無しさん:03/07/14 16:54
ウィザードでCDocument, CFormViewのMDIフォームを作りました。

通常ですと「新規作成」のメニューをクリックすれば、
勝手に子ウィンドウが出てきて、コーディングは不要ですよね。
しかし新たに追加したメニューから、子ウィンドウを出したいのですが、
どうしたらいいか分かりません。
どうぞご教示下さい(´・ω・`)
>>111
CMyAppでメニューイベントを受け取ってOnFileNewにリダイレクト

しかし
> 勝手に子ウィンドウが出てきて、コーディングは不要
だから便利なんだけど、そうやって続けてると理解が深まらなくて後で困る

MFCのソース読んだりステップ実行して処理の流れを把握しとくと効率上がるよ
85111:03/07/14 17:20
>>112
即レスありがとうございます。
解決しました。

>だから便利なんだけど、そうやって続けてると理解が深まらなくて後で困る
ですね(^_^;




Studyなしでいきなり実戦だもんで、すぐあわあわしてしまいます。
またすぐ質問しにくるかも…。
86デフォルトの名無しさん:03/07/15 01:08
コンボボックス内のリストを選択したら、(ボタン関数は使わずに) エディットボックス内に文字を表示する、というようなことをしたいのですが、
どうすればよいのでしょうか?
87山崎 渉:03/07/15 09:35

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
>>114
CBN_SELENDOK
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
★オマンコは地球を救う★
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
スタティック使わないで直接描画かCStaticの派生クラスを自作
SDIだとWM_CTLCOLORを受信して変更できないのか?
CFormViewならWM_CTLCOLOR受け取れたはずだが。
ドキュメントビュー使ってないならしらん。
96デフォルトの名無しさん:03/07/15 17:41
>121 >122 >123

ヒントありがとうございます。
もしかして、ClassWizardからWM_CTLCOLORが見えないだけかもと思い
手書きで追加してみたら各コントロールを描画する度に、
WM_CTLCOLORが受信されていました。
引き続きやってみます。
97119:03/07/15 18:02
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でスタイルは変更しているのですが・・・
その部分のコードをどうして晒さないかな〜
101127:03/07/16 07:13
>>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
>>128
ありがとうございました。できました。
107117:03/07/16 18:52
>>118
レスありがとうございました。
不可視にしてもダメだったので、OnWindowPosChangingをいじって解決しました。
>>135
DoModal()だと結局 ShowWindow(SW_SHOWNORMAL) が呼ばれるので「モードレス
ダイアログにする」が正解だった...かな?
109小心者:03/07/17 01:49
オンラインのMFCチュートリアルを探しています。
どなたかマイクソロフトのライブラリ以外で
御存知でしたら教えて下さい。
英語版でもいいです。
111_:03/07/17 01:57
112131:03/07/17 01:59
>>131
自分のアプリが使用しているDLLを知ったり、
必要なスタティックライブラリを知るにはどうしたらよいのですか?
すいませんが、教えてください。かなりなやみこんでます(泣
113?:03/07/17 02:03
11485:03/07/17 11:18
>>140
プロジェクトの設定を見れば?
>>140
DependencyWalker
>>140
ProcessViewer
117デフォルトの名無しさん:03/07/17 18:05
AppendMenu等でメニューに項目を追加しました。
OnCmdMsgで CN_COMMANDが来たときにある処理したいので IDを割り当てたんですけど、
nIDの値の制限ってあるのでしょうか?

if(uID & 0x80000000){
// 処理
}

こうやろうと思ったんですけど、全然入ってきませんでした。
118145:03/07/17 18:12
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)
というアサーションが出てしまいます。
このアサーションの原因がわからなくて困っています。
どのようにすれば解決できるのか教えてください。
122145:03/07/18 13:27
>>147 >>148
レスどもです。

やはり16Bitでしたか。(´・ω・`)

何がやりたいかというと、動的にメニュー項目が沢山作られると予想できるので、
OnCmdMsgが来たときにnIDのどのBitが立っているかをチェックして処理したかったんです。
すると16Bitじゃ情報が足りなくなるのでUINTのサイズを期待していたんですが…。

何かいい方法はありませんでしょうか?

ちなみに手元にMSDNのCDがないので、DYNAMENUサンプルがどういうものだか
分からないんですが、これってヒントになりますか?

123デフォルトの名無しさん:03/07/18 13:57
>>149
ひとつのメソッドを10ページも20ぺーじも書く人?
>>150
ビットじゃなくて値で判定すればOK。
125145:03/07/18 16:07
>>152
16Bitじゃ足りないんですよ。まじで。
126145:03/07/18 16:12
メニューの数が65536以上ありうるんです。
65535個もアイテムのあるメニューから適切なものを選び出すのは生身の人間には実質不可能なので大丈夫
nID以外で判断しろ。
どんなメニューだ、それは・・・
65535までは仕様なのでWM_COMMAND飛ばす標準のメニューでやるなら無理。
それぞれのメニューアイテムをユニークにするのでなく、
サブメニューや呼び出された場面などから16ビット以上の値を再計算するようにするしかない。
でも、設計やり直した方が早くね?
130145:03/07/18 16:30
>>155
可能性の問題なんで、実際にはないかも。

>>156
それを教えてくれ…

>>157
>設計やり直した方が早くね?
TreeViewでも使った方がいいんじゃないかとは思ってたんですけどね。
一応もらった仕様通りで挑戦したんですが、結論から言うと、無理って事ですかね。
項目にデータを関連づけ出来ればなぁ…。
>>158
表示されているメニュー項目にだけ動的にIDを割り当てればいいんじゃねーの?
必要も無いところにこだわって、肝心なとろろに気が回ってない
ダメプログラマの典型ですな。
133145:03/07/18 16:50
>>159
あ、それで出来るかも…。
ありがとう。

>>160
別にこだわってないけど、たしかにとろろには気が回ってないよ。
可能かどうかを知るのに質問しちゃ駄目なのか?
とっくにMFCの質問じゃ無くなっていることには気付よな。
そもそもメニューの数に制限を無くしたならどんなことしたってIDは足りなくなるだろ
>>145
一体どんなの作ってるの?www
>>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から直接呼ばないのだろうか
147172:03/07/20 18:12
>>173
モーダルがいいんだよう。ラブ。

>>174
A(View)がB(Dialog)の親分で、
Aのクラスのメンバを見たりいじったりできないんで、
仕方なくいったんAに処理を委ねる、というまどろっこしーことに。

 A →B 見える、触れる、やりたいほーだい、セクハラ
 A ×←B なんにもできん、なすがまま

モーダルダイアログを常時浮かべて、そっからメインのビューを
ガシガシ使役しているアプリってどうやっているんだろうか。
すまん、2年弱MFC使っててこの程度。
( ゚Д゚)ポカーン
全部のメンバの前に public: を付けろ
>>175
2年目?C++の基礎からやったほうがいいんでない?



っと10ヶ月の漏れがいってみる。
なんか、「自転車を修理に出す」という当たり前の解決策を思いつかずに
チェーンを全自動でかけ直す装置を作っちゃった科学者のエピソードみたいでほほえましい

ワケネーヨ
152172:03/07/21 02:22
あー、当然の失笑を買っちゃったなー。
なんていうか、自分でも釣りとしか思えないような大発見を
ちょうど今、成し遂げたとこなんだよ。
もういろんな意味でヤバい。
基本をおろそかどころかないがしろにしててもある程度組めてしまうのは恐いね。
MFC以前。
ふりだしに返るわ。ありがと。
>モーダルダイアログを常時浮かべて、そっからメインのビューを
>ガシガシ使役しているアプリってどうやっているんだろうか。
そんなアプリ、ないと思う……。
モーダルの意味わかってんのかな。
まぁメインにユーザ定義メッセージでも投げてそのハンドラで処理すればいいだけなんだけどな
>>182
ひらめいたのはそれか?wwww


10ヶ月の漏れがいうのもなんだが
ポインタを使えよ。
156デフォルトの名無しさん:03/07/21 14:11
VC++6.0でCFormViewを基本クラスにしたSDKのアプリを作っています。
ボタンのプロパティにある「標準のボタン」を動的に変更したいのですが、

m_mybutton.SetButtonStyle(BS_DEFPUSHBUTTON,TRUE);

のように書いても他のコントロールにフォーカスが移ると、
元に戻ってしまいます。
これは、どうやるものでしょうか?
>>183
どこにメンバ変数って書いてんだよ
>>184
変更前のボタンにBS_DEFPUSHBUTTONが残ってるんじゃないか?
そいつを外したらどう?
159デフォルトの名無しさん:03/07/21 14:45
>>186
レスありがとうございます。
う〜む。他に標準のボタンが無くてもダメでした。
しかし、
複数ボタンがあって、最後に押したボタンが標準のボタンになるように
しようと思っているので、ボタンが押されたときに、SetButtonStyleを
実行していたのですが、
他のハンドラ(他のコントロールにフォーカスが移ったときとか)で実行すると
うまく動きました。
どうも、ボタンのクリックで自分自身を変えるときだとダメっぽいです。
なんででしょう?
160184:03/07/21 14:49
あれれ。ボタンを押すと、
リソースエディタのプロパティで設定してある状態に戻ってしまうだけみたいです。
その前に、SetButtonStyleで変更したものがすべて元に戻るようです...
161186:03/07/21 15:12
>>187-188
ダイアログベースのときにはCDialog::SetDefID()やDM_SETDEFIDというのがあるが…
CFormViewではどうかなぁ。
DM_SETDEFIDを投げてやればいいのだが
MFCでどうやるのかは知らん
>>183
久々にワラタw
164184:03/07/21 15:56
>>189-190
ありがとうございます。
::SendMessage(this->GetSafeHwnd(), DM_SETDEFID, IDC_MYBUTTON, 0L);
のような感じでうまくいくみたいです。
>>183
10ヶ月たってやっとポインタを覚えたのでポインタ言いたいだけちゃうんかと
166183:03/07/21 16:27
>>185
ダイアログとビューでやりとりするんだから
メンバ変数にウィンドウのハンドル・ポインタでも保持しないと無理だろうが。
ビューとダイアログが1対1で対応してるとは限らんだろ。
それともお前はグローバル変数を使うのか?www

>>191
わからないなら黙ってろ。
>>194
ポカーン・・・・・・だからそのハンドル使って>>182すれって言ってんだろ。
それにViewへのポインタならAfxGetMainWnd()->GetActiveView()で取れるからダイアログにわざわざViewのポインタを渡さなくても良い。

おまえに説明すると二度手間ってことがわかった。さすが10ヶ月。
>>183
おまえ>>172と同レベルだな。
基本からやり直して来い。
169183:03/07/21 16:42
>>195
>AfxGetMainWnd()->GetActiveView()

複数のフレームウィンドウがある場合を考慮に入れないのか?
っちうか、汎用性の高いビュークラスを作ったことないんだろうね。
いずれにしてもビューのポインタを渡した方が安全。
>>172より
>メインとなるウィンドウA(MFC, SDI)からモーダルダイアログBを作成。

どこに複数あるのか問いたい。
ハンドル渡してメッセージ飛ばした方が安全。
安全って・・・w
>>197
独自Viewのポインタ変数をダイアログに持たせるどこが汎用的なんだ?
思いっきりビューの型に依存してるな
>>197
おまえ10ヶ月たってやっと汎用性って言葉覚えたから汎用性って言いたいだけちゃうんかと
176183:03/07/21 17:07
>>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やってたころは「俺はできる」と思ってたんだろ?
187江東支店:03/07/21 20:13
188183:03/07/21 20:34
>>214
誰もVC++使い出して10ヶ月なんて言ってないだろ。
MFCを使い出してから10ヶ月って事だよ。
VC++なら5年くらい前からやってんだよ。バーヤ、バーヤ。
汎用性意識するならメッセージだな。マルチスレッド化も楽だし。
>>216
それじゃなおさらヤバイだろ。
ワロタ
たしかにw
193デフォルトの名無しさん:03/07/21 21:38
>>213
ありがとうございました。できました!
>>216
アハハ・・・(´▽`;)
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
>>227
荒らしか。つぎ!!
一部の書籍ってどれよ?
もしかしてシステムがタイマ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を渡しても大丈夫と言う事実には目をつむれと・・・
>>238
明日、ちり紙交換屋が大繁盛(w
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
>>245
0が返ってきたら失敗。
>>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);
}
で宜しいか?
>>254
よろしいってば。
228デフォルトの名無しさん:03/07/22 00:01
結局、みんな想像でしか言っていない(w
動いてるのは偶然と言うかたまたまということだ。
>>256
おまえさっきから茶々入ればかりだな
よろしくないよ
SetTimer( 1,...);
ってことはCWnd::SetTimerだと思うが、
このメソッドはHWNDを渡すから戻り値はタイマーIDじゃない
231デフォルトの名無しさん:03/07/22 00:05
>>254
でも、なんか釈然としないよな。
SetTimer()の戻値が必ずしも1と言うことでなければ、
最初から1なんて指定しないで、システムに勝手にIDふってくれ、
戻値であとで殺すから、という使い方にしたい。
だったら0のほうが俺は好き。
>>258
・・・・え?何言ってんの?
233デフォルトの名無しさん:03/07/22 00:07
>>258
関数が成功すると、新しいタイマー ID が返ります。関数がタイマーの作成に失敗すると、0 が返ります。

って書いてあるよ。
234デフォルトの名無しさん:03/07/22 00:08
私が試してみると、
CWnd::SetTimer(1,1000,NULL);
の戻値は1でした。タイマーIDがそのまま返ってきた・・・
235258:03/07/22 00:09
俺なんかずれてた?

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の説明かと。
239258:03/07/22 00:14
>>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 が返ります。」の正確な意味が知りたい。
241183(本物):03/07/22 00:15
>>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);

となっている。
>>271
放置よろしこ
>>269
おい、汎用性はどこ行った?(苦笑
247183(本物):03/07/22 00:23
>>271
>>195嫁。
誰かインシデントを消費してSetTimerの動作を問い詰めてくれる神はいないのか?
249デフォルトの名無しさん:03/07/22 00:24
結論出そうに無いから、
UINT m_TimerID=SetTimer(1, ...);
if(m_TimerID)
{
  KillTimer(m_TimerID);
}
でいっとくかな・・・
テスト十分にして問題なければ、これでいいでしょ。
>>275
その前に>>183を説明してみ。
>>276
オレもそう思った(w
>>276
インシデントを消費するに値する問題かどうか悩む〜。
253デフォルトの名無しさん:03/07/22 00:29
>>277
誰か背中を押してやれ(w
>>269
おまえ・・・自分でPostMessageでもSendMessageでもすればいいと言いながら
「メッセージ投げればいい」と言う相手に対して「ひらめいたのはそれか?」って・・・
頭大丈夫かよ
255183(本物):03/07/22 00:30
>>278
182は「メインにユーザ定義メッセージを飛ばす」って
書いてますが。ダイアログを使って一意のビューとやりとりをするなら
ビューのポインタを渡してビューにメッセージを送るべき。

以上。
>>200
スレッド境界かな。
なんせモーダルダイアログだから、何があっておかしくないよ。
>>277
ドキュメントによればそれで問題ない、としか言えないよな。
>>283
汎用性はぁ〜?
SetTimer( hValidWnd, 0, 〜

のときは「ID=0の」タイマが作成されるみたいね。
実際、飛んでくる WM_TIMER もIDが0となってる。

よってIDに0を指定すればID=0のタイマができるが、その成功を
伝えるために戻り値は0以外となり、矛盾が生じるので0は指定
しないでねってことだな。
>>285
よし、決めた。
と言うことで、みなさんありがと。
>>283
ハンドルを使うとフレームだろうがビューだろうがダイアログだろうが渡せて汎用性が高いですよ(ニヤニヤ
262デフォルトの名無しさん:03/07/22 00:35
>>287
マジ?
目からうろこ。
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)で失敗するね。
266_:03/07/22 00:43
267結論:03/07/22 00:43
>>223
そんな書籍は窓から投げ捨てろ
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
>>299
see >>232
>>300
うぉ、マジだ。
ずっといたつもりが見落としてた・・・
みんなもうお疲れのようだ。今日はこのスレがんばったよ。
SetTimer()か。身近にこんな罠があったとはね。みなさんおやすみ。
277デフォルトの名無しさん:03/07/22 00:56
>>302
訳者は気を利かせたつもりが、その矛盾に気が付かなかったと言うことか。
278_:03/07/22 00:58
279183(本物):03/07/22 01:22
>>292
いや、ここは「MFC限定」スレだ。だからハンドルがMFCのクラスで隠蔽されている場合には
極力ハンドルを使わないように回答するのが正解。
だからポインタを使用すべき。
>>307
CWndポインタはスレッドをまたげないしCWnd::FromHandleなんか使って渡されてしまったら突然消滅してクラッシュもあり得る。
>極力ハンドルを使わないように回答するのが正解。
は正解ではない罠
282183(本物) ◆bYdanalJ2c :03/07/22 01:31
>>216 == 307 だろ?
騙り必死だな。だが漏れは age てない。
騙りかよ
わかった。みんなでポインタ使えばいい。もう寝よう。
>>183
ポインタの勉強が終わったら、マルチスレッドの勉強でもするといい。
ポインタは安全でもない(ぬるぽ->SendMessage()とか)し、万能でもな
い(CWndポインタはスレッドには渡せないとか)のが良く分かるであろう。
286216 = 307:03/07/22 01:46
SendMessage()のLPARAMでポインタを渡す。
これで丸く治まるよね。
ああ、香ばしいニオイが……
↓次の電波ドゾーw
289デフォルトの名無しさん:03/07/24 01:46
MFCを学習する前にATLをやったほうが効率がいいよな。
ATLをやったらMFCにはもどれねー
スレ違い
MFCさえあればAPIなんかイラネ
↑すごい電波を発見しました隊長!
294体長:03/07/24 09:29
    /\___/ヽ   ヽ
   /    ::::::::::::::::\ つ
  . |  ,,-‐‐   ‐‐-、 .:::| わ
  |  、_(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
303327:03/07/26 17:48
>>328
「私には分かりませんのでご自分でお調べになられてはどうでしょうか」と受け取りました。

>>329
MSは過去のものはあっさりと切り捨てるので怖いです。
「ダメ」というのは、何がダメなんですか?

>>330
人違いです。
ググってみましたが、ヒットしません。


いきなりMFCが捨てられるということはないですよね?
誤解のないように言っておくと、漏れはMFCを支持してるんですよ。
もういいって。
305327:03/07/26 17:57
>>331は私ではありません。
306327==331!=333:03/07/26 18:03
普通に聞いただけなのに...
このスレ見てなかったんだけど、前にこんな荒らしでもあったのか?

なんというか、さすが2chという反応。
もういいでつ。
307333:03/07/26 18:12
>>334さん、勝手に変な事書かないで下さい。
308327:03/07/26 18:46
>>335
では、>>333 の名前が何で327?
そっちこそ、紛らわしいこと書かないで下さい。
君全然おもしろくないよ
310183 ◆bYdanalJ2c :03/07/26 21:07
このスレには騙りが常駐してるからな。
トリップをつけることをお勧めする。
>>338
トリップつけるほど大したこと書いてないくせに (´゚c_,゚` ) プッ
どうせ電波がいないとレスが進まないわけだし
しばらくは183ネタで逝こうよ > ALL
騙り煽りはJava&Del厨だろ?放置しろよ。
314デフォルトの名無しさん:03/07/28 02:25
CFtpConnection や CFtpFileFind あたりを使ってftpサーバーに
アクセスするアプリを作っているのですが、
あるサーバーのパス内になるファイル数を取得する方法があれば
教えてください。
ちなみに今は、
CFtpFileFind のFindNextFileで探して数えていますが、ロスタイム
大きいです
よろしくお願いします
315デフォルトの名無しさん:03/07/28 03:04
Visual C++ .NET Standard 2003
http://shop.microsoft.com/Referral/Productinfo.asp?siteID=11511

初心者ですし金もない学生なので↑をかって間違いないよな?
だれかアドバイスください。
316_:03/07/28 03:05
317343:03/07/28 03:06
それにしても、VC++にはstd.版しかないのか。
じゃあ一般的に言われてるPro.ってのはVS .NETのことなんだよな?
っていうか、VS .NETはVC++の10倍くらい高い。とても手が出ない。
>>345
学生ならstdで十分じゃない?
商品名 Visual C++.NET 2003 Standard アカデミック版
標準価格 オープンプライス
販売価格 7,580 円 
http://www.ascii-store.com/catalog.cgi?id=43997

商品名 Visual Studio .NET 2003 Professional アカデミック版
標準価格 オープンプライス
販売価格 21,980 円 
http://www.ascii-store.com/catalog.cgi?id=43990
320346:03/07/28 03:16
でいうか、アカデミック版買えば?
321346:03/07/28 03:18
>>347
ウフォッ いい男
322デフォルトの名無しさん:03/07/28 03:19
↑うわぁーやすっ!
こんなのがあるんだ。アカデミックだと質が劣ったりしない?
323デフォルトの名無しさん:03/07/28 03:40
Visual Studio .NET Academic - $99
http://msdn.microsoft.com/vstudio/productinfo/overview/academic/pricing/default.aspx

検索してみて↑が一番価格がよかったんだけど、大丈夫でしょうか?
パソコンは英語版なので、英語版のヤツを探してみました。
324デフォルトの名無しさん:03/07/28 04:04
ってか、>>347のリンクではProfessionalのアカデミック版としてるのに、
http://msdn.microsoft.com/vstudio/productinfo/overview/default.aspx
では、アカデミックとプロフェッショナルはそれぞれ別のバージョンとして
紹介されてるんだけど、どういうことだ?

間違いなければ、
http://msdn.microsoft.com/vstudio/productinfo/overview/default.aspx
↑のVisual Studio .NET 2003 Academic
http://msdn.microsoft.com/vstudio/productinfo/overview/academic/overview/default.aspx
ってやつに決定しようと思うんだが。

だれか教えてくれ
ttp://www.microsoft.com/japan/msdn/vstudio/productinfo/overview/default.asp
日本のサイトにはアカデミックの記述がないな。

ところでここは MFC限定スレ なんだが……
↓で聞くべきではないのか?

VisualStudio.NET(MSDN Deluxe) Part10
ttp://pc2.2ch.net/test/read.cgi/tech/1053500463/l50
アカデミック版だけ悪血ベーションがあるというのは本当でつか?
>>354
マジ
328デフォルトの名無しさん:03/07/29 02:23
というわけで、仕切り直しで
さっさと342の質問に答えてやろうぜ
>>356
じゃあ自分が答えろよ
>>356
鯖にdirコマンド送れば一発だろうよ。
331356:03/07/29 03:45
すいません、素直に言います。ボク342です
直後に激しくスレ違いの学生クンに入られて災難です(^^;

>>358
それしか方法なさそうですか?
具体的にどうすればよいのですか?
CFtpConnection 、 CFtpFileFind あたりを駆使して可能ですか?

 
332343:03/07/29 04:09
>直後に激しくスレ違いの学生クンに入られて災難です(^^;
すまそ、わるかったな。w
>>359
(゚∀゚)
334デフォルトの名無しさん:03/07/29 07:22
>>359
CSocketはどうか?
335_:03/07/29 07:29
336 :03/07/29 08:24
>>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はアセンブラでしたね!
>>367
ハァ?
こやつには使えないに一票。
つーかそれ以前の問題だよな…
342356:03/07/29 19:22
>>364
ありがとうございます
CInternetFile::ReadString() する前にOpenFile()する必要があると
思うのですが、その際の指定ってどうすればよいのですか?

343デフォルトの名無しさん:03/07/29 19:24
キキキタタタタ━━━((゜(゜∀゜)゜))━━━!!!!PART1
http://link.iclub.to/adalt/
http://link.iclub.to/amazon/
http://link.iclub.to/docomo/
http://link.iclub.to/google/
344 :03/07/29 19:32
>>370
Open しない。
>>370
MSのftpだとdirで取れるが、telnetで試したら
無理だったのでやっぱFindFileしないとだめかもしれん。
質問失礼します。

VC++6.0 MFC にて、MDIのドット打ちツールを作成しています。
画像の変更をGUIにて実現したいのですが、diblookサンプル以外のやり方ってないでしょうか?
CPenを使って1ドットづつ描いてみたりもしたのですが、遅すぎてダメでした。
diblookサンプルの様に、小難しくなく、イメージとパレットを触りたいのですが。。。
347 :03/07/30 15:24
>>373
dir がダメなら ls で良いと思うけど。でも確かにそこらを隠蔽してるのが
FindFile だからそっち使うのが良いような気もする。
348デフォルトの名無しさん:03/07/30 21:51
VS .netで、ダイアログにhtmlのselectタグみたいなものをつけたいな、と思って、
CComboBoxでつけてみました。
しかし、選択肢が2つあったとしても、プルダウンリスト(?)の高さが1行しかなく、もう一つの選択肢
を選ぶには、リストの右側にあるスクロールバーを押して、スクロールしないといけない状態です。
このリストで表示される行数を変えるにはどうすればいいでしょうか?
リソースエディタ上でコンボボックスの↓ボタン押せ
>>376
エディタ上でコンボボックスの矢印の部分をクリックするとプルダウン幅の設定ができる。
351378:03/07/30 21:58
>>378
ありがとうございます。
全然気付かなかったです(涙
その質問て意外と初心者がはまるFAQなんだよな
MFC で,新しく作ったスレッド(別のクラスのオブジェクト)に
メインスレッドのCStringオブジェクトを渡したいのですが,うまくいきません.
特別なことをする必要があるのでしょうか?
超能力者募集中
355名無し@沢村:03/07/31 13:23
>>382
おまいの能力を超えてはいると思う
>>382
381はマルチなので放置よろ
>>381
つまり、マルチスレッドで質問だったんだ!
今回俺たちは全く無力だった… _| ̄|○
今日もマルチたんで抜きます
359デフォルトの名無しさん:03/08/01 19:28
MFCはVSやVCなどのMS製品でしか使えませんか?
360デフォルトの名無しさん:03/08/01 20:29
vc6です

CTabCtrlの派生クラスでToolTIPを使いたいです。

作成時にTCS_TOOLTIPSを指定するところまではわかったのですが、
そのあと、TTN_GETDISPINFO を処理するハンドらを書くらしいのですが、
このハンドラをどのように宣言すればいいのでしょうか?

お願いします。
361 :03/08/01 23:35
>>388

OnNotify で

LPNMTTDISPINFO lpnmtdi = (LPNMTTDISPINFO) lParam;
if (lpnmtdi->hdr.code == TTN_GETDISPINFO) {
 ...
}
てな感じか?
362388:03/08/02 00:58
>389

ありがとうございます。以下のようにしてできました。
ON_NOTIFY_EX(TTN_NEEDTEXTA, 0, OnToolTipNotify)
ON_NOTIFY_EX(TTN_NEEDTEXTW, 0, OnToolTipNotify)
363山崎 渉:03/08/02 02:03
(^^)
364デフォルトの名無しさん:03/08/03 00:59

VC6です。

 CSplitterWndで静的分割されているウインドウの、片方のペインの幅(縦2分割の場合)を固定に
したい場合、どのようにすれば良いのでしょうか?
シリアルくれ・・・・・ボソ
366515:03/08/03 03:12
割れ厨でごめんなさい。。。
367515:03/08/03 03:13
マルチしてごめんなさい。。。
http://pc2.2ch.net/test/read.cgi/tech/1058815576/515n
>>387
C++Builderでも使えると思う。
インストール時にMFC関連の項目があるし。
俺はVCLとWin32APIで足りてるのでMFC使ったこと無いけど。
369デフォルトの名無しさん:03/08/03 05:35

デスマーチなんてほんと昔の昭和初期の製糸工場並みの労働しています。
それをおかしいと思わないなんて一般知識や社会を知らない無能者の集まりではないでしょうか?
パソコンしか勉強していないんじゃないですか?
だから最下層の労働するはめになるんです。
頭良い人は家庭も仕事も充実しています。
370_:03/08/03 05:42
371デフォルトの名無しさん:03/08/03 06:05
XPスタイルのタブコントロールってグラデーションがかかってますよね。
チェックやラジオを表示するとそこだけ色が違って汚く見えます。
あれを解消する方法はあるんでしょうか?
372_:03/08/03 06:12
MSDOSプロンプトの画面に表示されている内容を取得する方法はありますでしょうか?
例えばDOSプロンプト画面に
C:\WINDOWS\PROGRA~1\CDeX
と表示されているとして、
C:\WINDOWS\PROGRA~1\CDeX
という文字列を取得することは出来るのでしょうか?
>>396
貴重な情報ありがとう。
>>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
それぐらいパッパと答えられないの?
380_:03/08/03 15:01
8000yen
厨房出現
383405:03/08/03 19:42
>>409さんありがとうございます。
最高は6.0ですよね?
384_:03/08/03 19:43
385378:03/08/03 19:47
>>411
Visual studio .NetにVCも含まれてます。そっちが最新
378って嘘(汗
387_:03/08/03 19:49
388デフォルトの名無しさん:03/08/04 04:18
visual c++で書いたプログラムの中に
perlスクリプトを組み込みこむにはどうすれば良いのでしょう?
389_:03/08/04 04:42
390_:03/08/04 04:42
>>416
Perl.net 使へ
>>413
VS.Net買えばVCをwin98にインスコできるの?
>>420
自分で調べるという事は知らない人ですか?
しょうがないから自分で調べてやったぞ。
VS言語製品の登録ユーザーになれば無料でダウソできるというわけだ。

ところで、登録ユーザーにはどのようにすればなれますか?
おまいら早く俺に答えないと俺がボーランド製品買うぞ。
>>423
買えば?
買えばだって。
もっとシャレの効いたレス返せねーのか? 藁藁
398デフォルトの名無しさん:03/08/05 01:09

VisualC++.NETでは、コメントデリミタの機能って無くなったんですか?
//{{AFX_MSG (ClassName)
//}}AFX_MSG      とかいうやつですが・・・
無いならそれに変わる様な機能ってありますか?
教えてください。
CListCtrlでアイテムをソートなしで表示させてます。
この表示されたアイテムをドラッグアンドドロップで並んでいる場所を
入れ替えたいのですが、ドロップしたときのメッセージが見つかりません。
LVN_BEGINDRAGの対になるようなメッセージをとるにはどうしたら良いですか?
HDN_ENDDRAGはヘッダー関係らしくて駄目でした
400427:03/08/05 01:47
あ、アプリ全体としてはSDIでViewクラスの基本クラスはFormViewを選択しました。
それで出来上がったViewクラスでWM_LBUTTONUPを受け取ろうとしてみましたが
CListCtrlの上でマウスのボタンを離してもメッセージは来ませんでした・・・
>>427
OLE使った方が楽だよ
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
で、何をしたいんだ、と。
リードオンリーを外してみたのか、と。
404430:03/08/05 12:37
>431
電波な質問をしてすみませんでした。

× CSVファイルがリードオンリーになっている
○ CSVファイルがリードオンリーでopenされている (らしい)

です。
CRecordset::openの引数を
(CRecordset::dynaset,NULL,CRecordset::none);
としてみましたがこれでもAddNewとEditの後にUpdateを掛けると
エラーメッセージが出力されてしまいます。
405_:03/08/05 12:40
406430:03/08/05 14:55
レコードを更新するとき
CanUpdateではエラーなし
Edit後、値を編集してUpdateを呼び出すと
「構文エラーまたはアクセス違反です。」と表示され失敗

レコードを削除するとき
Deleteにおいて
「更新または削除に失敗しました。」と表示され失敗

m_nDefaultType は snapshotになっています。
レコードの追加(AddNew)については成功していました。
どなたか解決法ご存知ではないでしょうか?
407_:03/08/05 15:26
ダイアログボックスにパラメータを与えて
設定して、モーダル表示するプログラムを作っているのですが、


CTestDlgdlg;
dlg.SetParam(10,"test");//内部メンバ変数にコピーを取っている。
dlg.DoModal();
( このあと、OnInitDialog内部で、コピーを取った値を利用して初期化。
ここでないと、内部のコントロールクラスメンバを操作することができないから。)

という流れを、

dlg.DoModal(10,"test");
みたいな感じで記述したいのですが、

流れとしては、
・コントロールクラスメンバを全部適応(アタッチ)させる。
・各コントロールの初期化
・内部のデータの初期化(上記のコピー用のデータにあらず)
・モーダル表示

1メソッド内(または、1静的関数でもいいです。)で行いたいのです。

なにか、いい方法は、ありませんか?
>>436
意味不明だが(質問をよく理解してないので聞き流してちょ)
コンストラクタで渡してしまうとか?
DoModalをオーバーロードするとか?

結局コントロール変数を使うのなら
OnInitDialog()のオーバーライドは必要になりそうだが・・・
内部でDoModalした後に設定が必要なのだから

「無理」

が答えと思われ。
411 :03/08/05 20:44
ウィザードでメンバ変数にマッピングして、普通にコンストラクタで
初期化すれば DDX が勝手にやってくれるよ>>436

コントロールで特殊な初期化処理が必要なら、DDX をカスタマイズすれば良いし。
>>436
なんかよく分からんけど、最初モードレスでダイアログ作って、後でモーダル化
すれば、初期化のタイミングとか表示のタイミングとか自分の好きにできるよ。

  this->EnableWindow(FALSE);
  dlg.RunModalLoop(MLF_SHOWONIDLE );
  this->EnableWindow(TRUE);
モーダル化はこんな感じで。ヒントにならんかな?
413440:03/08/05 21:15
初期化のためだけにメンバ変数用意したくないって、やつかな?

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なのも一緒に出ることがあります。
これマイナスだとどこかで問題が起きているとかそういうことはあるんですか?
417436:03/08/06 09:13
>>440,441さん
>初期化のためだけにメンバ変数用意したくないって、やつかな?
そんな感じです。
なんとか、できそうです。
ありがとうございます。
418436:03/08/06 11:41
試してみました。
気持ちいいぐらいに、初期化→表示ができました。(*゚∀゚)=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で無効にする
420436:03/08/06 12:23
>>447
それでいけました。ありがとうございます。

[解決]
421 :03/08/06 12:47
CSplitterWnd で アクティブなPaneが
移り変わった時を検出する方法ないですか?
>>449
逆に中の人から知らせてあげてはどうか?
423449:03/08/06 19:38
といいますと?

メインのフレームの中に
CSplitterWndと、それに分割された2つのPane
CAWndとCBWnd(CWnd派生クラス)があったとします。

CAWndでアクティブになったことを検地する方法がある
ということですよね?どうすれば?
424_:03/08/06 19:45
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とかでもやっぱり変更できませんが・・・
429 :03/08/06 22:00
WM_SETCURSOR のハンドラを書け。
自分のアプリだったらウィンドウクラスにはNULLを入れといて、
WM_SETCURSORのハンドラでSetCursorするんでないの。
431449:03/08/06 22:08
>>453 やってみまつ
432456:03/08/07 00:51
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なの?
434456:03/08/07 01:22
私もよくわかりませんが、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です。
>ツールバーのスタイル変更ボタン
のハンドラはどうした?
440466:03/08/07 02:46
>>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のどちらでも
スタイルが変えられるのに。
444466:03/08/07 15:16
>>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
と言っているだろ? それでいいではないか。
447466:03/08/07 17:50
>>474
まぁそうなんですが、気持ち悪いので、

.net2002で生成したソースを2003に持っていってビルド、実行しても不具合ありだったので、
2002と2003で生成されたソースを比較してみました。

変更箇所がポツポツと、
そのなかで一箇所、2003のCListView、OnStyleChanged内で、Default();がコールされてる。
2002にも追加してみました、問題なく動く・・・

とりあえず解決、皆様、お手数かけました。


それにしても、ウィザードのバグじゃないかこれ?

448456:03/08/07 23:48
>>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);

としてみましたが動いてくれません。
どこがおかしいのか教えてください。
453478:03/08/12 10:18
>>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()で選択されているペンの色を変えるわけではない
457484:03/08/12 17:20
>  penCol.CreatePen(PS_SOLID,1,RGB(i,j,0));
この行、いらない
> for(i=0;i=255;i++){
> for(j=0;j=255;j++){

これは突っ込まんのか?(w
というか、突っ込めない部分がほとんど無いわけで。
>>486
GoodJob!
>>480
動かないときは、どう動かないのか書こうね。
461デフォルトの名無しさん:03/08/12 23:50
MDIでフレームウィンドウのクライアント領域を取得したいのですが、
GetClientRect()だとツールバーなどの部分も含まれてしまいます。
実際の表示領域(子ウィンドウの表示領域)だけを取得しているような
サンプルやメソッドはありませんか?
>>489
MDIフレームウィンドウのクライアント領域は
常にMDICLIENTクラスのウィンドウで覆われてるから
それ(m_hWndMDIClient)の位置を調べればいい。
463489:03/08/13 01:21
>>490
ありがとう。明日以降に試してみます。
ウインドウを常に最前面にするにはどーすればいいですか?
465デフォルトの名無しさん:03/08/13 02:17
CWnd::ShowWindow()
466名無し@沢村:03/08/13 02:19
>>492
SetWindowPos()
467あぼーん:あぼーん
あぼーん
468デフォルトの名無しさん:03/08/13 08:51
>>483
ありがd
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);
>>507
サンクス!!
早速調べてみまつ
481デフォルトの名無しさん:03/08/14 11:22
SDIで最初のウィザードで印刷サポートさせていなくて、
後から印刷と印刷プレビューを付けたそうと思い、
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
をviewのメッセージマップに付け足したんですけど、
実行してみると、
プレビュー選択で「コマンドの実行に失敗しました」
印刷選択で「印刷ジョブは開始できませんでした」
と出てきます。
メッセージマップだけじゃだめですか?
どうしてそういうエラーになるのか、デバッガで追えよ。
483504:03/08/14 13:08
>>505
あ、ありがとうございます。
そっか、それなら
SetWindowLong(m_hWnd,GWL_EXSTYLE,style);
もいらないっぽい事に気付きました。
勉強になりました。
484デフォルトの名無しさん:03/08/14 18:20
ふと思ったのですが、MFCの関数群(Afxなになに)って
どんなネームスペースで宣言されているのですか?
もしかしてグローバル?
だとしたらなんでAfx名前空間とかで宣言しないんでしょ。
>512
ネームスペースというものが無かった頃のなごりでしょ
486512:03/08/14 21:09
>>513
なるほど
487デフォルトの名無しさん:03/08/14 22:35
質問です。
VC++5.0(MFC)で開発しています。

ある処理中は、アクセラレータキーを無効にしたいと考えております。
関連付けたIDが、メニューアイテムであればそのアイテムをEnable(False)
にする事で、アクセラレータも無効になるのですが、
関連付けたIDが、メニューアイテム以外の場合は、どのように、
無効にしたら良いか教えて下さい。
>>515
フラグで
489山崎 渉:03/08/15 15:20
    (⌒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
コーポレイトソフトウェアていうサポセンの馬鹿が
PGに喧嘩売ってます。

http://money.2ch.net/test/read.cgi/haken/1057486349/287

腹立ちました。
みんなでやっつけにいこう。
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製作できるのでしょうか?
なんか中途半端な感じなんですけどね・・・。
>>526
やってみ。
500うふふのふ:03/08/17 16:46
>>524
どうもー。丁寧なレスありがとう。そんな方法があったとは!!!
>>527
やってみたんですが、どうもハイパーリンクつけたり
画像をインポートしたりとかそういった機能がないような
気がしたので・・・
502518:03/08/17 23:57
>>519
いや、あくまでも"監視"する方法をとりたいのです。
つまりコントロールを追加するだけでOKなように作りたかったのですが・・・
他も検索してみましたが、そういうのは無さそうでしたので諦めることにします。

ども、ありがとうございました。
>>530
かなり遅れて メッセージフック というキーワードを晒してみる
>>530
オレも昔やってみようと思ったことがあったが、

正直_
505 :03/08/19 08:06
>>530

親ウィンドウをサブクラスしちゃうのが常套手段だと思うけど。。。
506 :03/08/19 20:52
MFCでダイアログベースのアプリを作っています。
ウィザードで出来上がったダイアログには、お決まりの
「OK」「キャンセル」のボタンのみのものになってますが、
このボタンを削除した場合、InitInstance()にある
以下のコードは削除してかまわないのでしょうか?

if (nResponse == IDOK)
{
// TODO: ダイアログが <OK> で消された時のコードを
// 記述してください。
}
else if (nResponse == IDCANCEL)
{
// TODO: ダイアログが <キャンセル> で消された時のコードを
// 記述してください。
}

// ダイアログが閉じられてからアプリケーションのメッセージ ポンプを開始するよりは、
// アプリケーションを終了するために FALSE を返してください
>>534
単にOK、キャンセルを無効化したいって事ならOnOKとOnCancelをオーバーライドすれ
MFC と コマンドプロンプトをデバッグ文字列表示のため、
同時に使いたいのですが、何か方法はありませんか?
509536:03/08/19 23:16
エントリポイントシンボルいじったらできました。thx
510デフォルトの名無しさん:03/08/20 03:19
GetDlgItem()で取得したコントロールへのハンドルって
ヘルプには一時的なものと書いてあるけど、どこまで一時的なの?
GetDlgItemを呼んだ関数から出ると、もう使えないのかな。
試しに別の関数で試してみても同じだけど単なる偶然?
511_:03/08/20 03:27
ハンドルじゃなくてポインタだベ。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
ダイアログに貼り付けたピクチャボックスより大きい画像を表示するために、
ピクチャボックスにスクロールバーを付けたいのですがどうしたらいいのでしょうか
521546:03/08/20 19:50
>>547
フォームビューから派生したSDIのViewなんですが、これはViewをメインウィンドウ
にしてることになりますか。一応インクルードエラーは回避できました。それで
CMyAppView *pView=(CMyAppView*)(
                  (CFrameWnd*)(AfxGetApp()->mpMainWnd)
                       )->GetActiveView();
としてこのpViewを使ってSendMessageをしてもやはりPreTrancelateMessage
では他のパラメータが0になってしまいます。
522546:03/08/20 20:03
あ、長ったらしく書かなくても
CMyView* pView = (CMyView*)AfxGetMainWnd()->GetActiveView();
で良いのね・・・
>>548
スクロールバーを貼り付けて自分で制御
>>549

自分のスレッド内のウィンドウに対するSendMessageは、直接
ウィンドウプロシージャの呼び出しになるのでPreTranslateMessageは
呼ばれていないはず。
525546:03/08/21 00:14
>>552
なるほど。確かにツリーコントロールなどにアイテムを追加したりするだけで
WM_USERのメッセージが飛んできてたりしましたが、受け取ったメッセージが
自分でSendしたものという訳では無かったのですね。

元ネタの疑問はわざわざメッセージを使わないでも、Viewクラスのポインタを
得られたのだから既に解決してましたね。逝ってきます。
526デフォルトの名無しさん:03/08/21 01:41
Visual C++ 2003でlibファイルのプロジェクトの項目がなくなったようなのですが
どうやったら作れるのでしょうか?
527554:03/08/21 05:16
プロジェクトのプロパティから変更できました。
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()


529556:03/08/21 10:51
追記
GetBaseDispatchMapはサンプルにはなく、MSDNにも載ってませんでした。
>>556
使ってるのがどのパッケージだか知らないけど、CHtmlViewだけじゃなくてCEditViewもないってんならなんか壊れてるな。
ていうか、BEGIN_DISPATCHなんとかも要らないし、CViewを書き換えだけでもコンパイル通るぞ。

まあ、HTMLパーサに(MS?)WebBrowserは必要ないし、
WebBrowser使うのにCHtmlView使う必要も無いわけだが
531556:03/08/21 15:10
VCはエンタープライズなんですが、一回再インストールしてみます。

あと最終的にやりたいこととしては、クライアント領域をDHTMLでデザインしてロジック部分をVCで、ということなんです。
クリックとかドラッグした部分をHTMLパーサで解析して動作を決める、と。
CHtmlViewのイベントだとリンクタグしか取れないみたいなので。
他に簡単な方法があったらお願いします。
パーサを作るというからには自前でやるんじゃないのか?
533:03/08/21 22:46
GDIオブジェクトの開放忘れを発見するツールって、
ないんでしょうか?
プロセス毎のGDIオブジェクト数がタスクマネージャで見れるということは
その詳細を見れるツールや方法があるのかな、と考えてるんですが、、、
>>561
MFCのクラスだと自動的に解放されない?
スタティックコントロールにスクロールバーをつけていろいろするにはどうしたらいいのでしょうか?
ShowScrollBarやSetWindowLongで表示はできたのですが、
サブクラス化してもWM_HSCROLなどが取得できません。たすけて。゚(゚´Д`゚)゚。
>>562
newしたやつはdeleteしないといかんでそ。
537563:03/08/22 03:12
CWndの継承クラスつくってスタティックと同じ位置に貼り付けちゃった。
>>561
タスクマネージャで観察しながら、何回も再描画させて「検出」は一応
できるけどね...
どこでリークしてるか「特定」できないか?っていう質問をAPIスレで
したけど、回答なかった。
BoundsChecker
>>562
だめでそ。
541561:03/08/23 02:08
やっぱ、売り物のソフトしかないですか、、
タスクマネージャで個数がわかるってことは、
システムは、プロセス毎に取得・開放カウンタのみを持ってるって事なんでしょうか??
どの種類(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リソースハンドルから実際の
中身を取り出す、という話があったような気がするが、詳しくは
忘れてしまった。
547566:03/08/25 13:14
>>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使いませんか?
552577:03/08/25 17:40
afxtempl.hを見たところテンプレートになってるんで大丈夫そうですね。

STLも覚えたいけど今の実力でこれ以上手を広げると自滅しそう・・・
VC7以降ならSTLでもいいんじゃない
STLって難しそうなイメージがあって駄目ん・・・
>>582
俺もあったけど
使い慣れたらどうってことないってことが分かるよ


使え
STLはvectorとlistとmapとpairとstring位しか使ってない希ガス。
557579:03/08/25 21:28
>>583にはげどー。
漏れもできるだけSTLを使うようにしてるよ。
STLって入門書とかあるんかな?
一応俺の入門書は
「STL標準講座」
今でもパラパラめくる
後は
「Effective STL」
を読むべし

これだけで十分使えるようになる
>>587
サンクス、探してみんべ。
561デフォルトの名無しさん:03/08/26 00:46
むしろCArrayとかつかうよりもSTLのほうが断然いいよ。
アルゴリズムも使えるし
バインドとか関数オブジェクトとかその辺は使わんなぁ
ってなんかスレ違いになりつつある。。。

まぁなにはともあれVC++で心置きなくSTL使えよと
563デフォルトの名無しさん:03/08/26 01:56
エクスプローラタイプのプロジェクト作ったらListViewのスタイルが変更されない。
(ツールバーで変更する時ね)
VC6では出来るのに。何故????
564デフォルトの名無しさん:03/08/26 02:17
>>591
過去ログ
なんか削除するような発言あったっけ?
レス番号ずれるし透明あぼーんには不向きだったと思うが > 削除人
何かスレタイかわってねーか?
>>566
datが途中まで書き換えられてるみたいだな。
管理側が管理に失敗したか、ハクられたか。
このまんまなんかな…
>>46 あたりが変だ。
新スレ立てないか?
>管理側が管理に失敗
それ正解
http://qb.2ch.net/test/read.cgi/operate/1052510878/535
2chブラウザで見てたから気づかんかったけど
スレタイが大変なことになっとる!

ちなみにかちゅから取った正式なタイトルとURLを貼っときます。

■ VisualC++(MFC限定)相談室 MFC8.dll■
http://pc2.2ch.net/test/read.cgi/tech/1056584836/
久しぶりに来たらスレタイが何やら妙なことになってますね。
本当にここでいいのかわからんですが、とりあえず質問。

チェックボックスつきのツリーコントロールで、親階層のチェックがオンオフされたら
子のチェックを全てオンオフするということをしたいんですが、
ツリーアイテムのチェックイベントが、どうも見当たりません。
イベントとして受け取る方法はありますか?

前の状態を持っておいて、クリックかスペース押下イベントで状態変化をテストするようなこと
しないとダメなんでしょうかね?
574563:03/08/26 18:08
過去ログ見たけど解決されてないのかな?

Spyでみたがスタイルは変わってるようだ。
(見た目は変わっていない)
再描画してみてもダメ。
575563:03/08/26 18:15
すまん。解決してたみたい。
何みてたんだか。
576デフォルトの名無しさん:03/08/26 22:05
ViewクラスのメンバであるCTreeCtrlに、アイテムを追加しながら
そのアイテムに関連するデータを処理したいのですが、追加する
アイテムが大量になると、アプリそのものの反応が無くなってしまいます。
そこでマルチスレッドにしようかと思うのですが、Viewクラスと連携を
とりながら処理する方法がわかりません。

ヘルプを見たところハンドルをスレッド用関数に渡せばよいことが
わかりました。実際Viewクラス内のコントロールについては
ハンドルを構造体に格納し、その構造体へのポインタをスレッド関数
に渡して動作することが確認できました。しかしそのコントロールを
制御する関数や変数がViewクラス内にあるため、どうすることも
できません。Viewクラス内の関数や変数にアクセスするには
どのようにしたらよいでしょうか?
変数へのハンドルなんてないですよね・・・
つか、スレ建て直しますか?
過去ログ一覧のURLが載ってる
テンプレどこかありませんか?
>>576
スレッドにViewクラスのポインタ渡して処理
579576?604?:03/08/27 00:14
>>606
あ、こんな簡単なことで出来たんですね。うっかり「this->m_hWnd」とか
アホなものをスレッドに渡す構造体にセットしてはまってました(滝汗
ありがとうございますた
以前その関連の話題が出てきたが結論はハンドルを
渡してsendmessageスレということらしい。
datがあれば復旧してくれそうだが、誰か持ってる?
もしいなければ、次スレ(MFC9)立てて、前スレはこのスレってことでよろしく。
582デフォルトの名無しさん:03/08/27 05:29
俺のソフト違法コピーされたことあるよ
どうだスゲーだろ
583デフォルトの名無しさん:03/08/27 05:32
俺が作った課題のプログラムを勝手にコピーされて提出されたことがあるよ。違法コピーだよな。
584テンプレ案:03/08/27 06:44
Microsoft Foundation Classライブラリ専用スレです。

スレタイ壊れいるけど前スレ
■ VisualC++(MFC限定)相談室 MFC8.dll■
http://pc2.2ch.net/test/read.cgi/tech/1056584836/

関連リンクは >>2-10 の辺り。


----
↓修正よろしこ。
>>584
てをぬくな。

過去スレ
■ VisualC++(MFC限定)相談室 MFC8.dll■ (スレタイ壊れているけど前スレ)
http://pc2.2ch.net/test/read.cgi/tech/1056584836/
■ VisualC++(MFC限定)相談室 MFC7.dll■
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
■ VisualC++(MFC限定)相談室 MFC6.dll■
http://pc2.2ch.net/test/read.cgi/tech/1039607377/
■ VisualC++(MFC限定)相談室 5■
http://pc3.2ch.net/tech/kako/1028/10285/1028553308.html
■ VisualC++(MFC限定)相談室 4■
http://pc3.2ch.net/tech/kako/1021/10216/1021620974.html
■ VisualC++(MFC限定)相談室 3■
http://pc.2ch.net/tech/kako/1014/10140/1014057520.html
■ VisualC++(MFC限定)相談室 2■
http://pc.2ch.net/tech/kako/1008/10080/1008031675.html
■ VisualC++(MFC限定)相談室 ■
http://pc.2ch.net/tech/kako/989/989902845.html
590くらいまでのdatならある。。。ぞぬのやつだけど
ttp://qb.2ch.net/test/read.cgi/operate/1061887706/1-2
スクリプト削除誤爆らしい。
で、>>573わかる人いないですか。
ちなみに現在の逃げ
・スペースキー押下イベント・クリックイベントでユーザ定義メッセージを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
ヒットテストしたあと単に辿ってるだけのような。だるいのでこれ以上調べる気にならん。
新スレ立てちゃったんで順次移動よろしこ。
■ VisualC++(MFC限定)相談室 MFC9.dll■
http://pc2.2ch.net/test/read.cgi/tech/1062098350/l50

>>584-585
594 :03/09/05 17:23
220 名前:騙されるなよお前ら[] 投稿日:03/09/04 23:25 ID:hzXt6OGR
小泉「しかし、あれですな。改革改革と言ってれば阿呆な国民は支持してくれるんだから楽なもんですよ」
亀井「親小泉と抵抗勢力の対決構図を煽った甲斐があったってもんだよな」
青木「そうだわな」
古賀「単純な奴らですよね」
野中「私と青木君が対立してるなんてマスコミの報道は笑っちゃうよ。あとは粛々と詰めの作業を行うだけだな」
小泉「そうですね。あともう少しですよ」
江藤「ここまで来るのに苦労したが、これで我が党は安泰だな」
橋本「我が派も安泰ですよ」
森 「どうだ小泉君、今度の選挙もいけそうか」
小泉「任せてください。今回も圧勝しますよ。俺が何言っても支持しますからね、あいつらは」
野中「君もワルよのお。小泉君」
小泉「いえいえ。野中さんほどではありませんよ。フッフッフ」
青木「だわな」
一同「フッフッフッフ。アッハッハッハッハッハッハッハッ」
「らりるれろ」だと!!!!?
このスレにピッタリだな

「所詮タダだろ」フリーウェアを家電店が勝手に販売
http://pc2.2ch.net/test/read.cgi/software/1077291400/
597あぼーん:あぼーん
あぼーん
598あぼーん:あぼーん
あぼーん
599あぼーん:あぼーん
あぼーん
600デフォルトの名無しさん:04/07/08 02:38
スクープ!中国の公立学校がWAREZまみれ
http://tmp4.2ch.net/test/read.cgi/asia/1089220361/l50

ITに力を入れる立派な中学校
http://www.cnzyzz.com/jwt/

その裏の顔は・・・・。
http://www.cnzyzz.com/soft/1.%b3%a3%d3%c3%c8%ed%bc%fe/

Adobeに通報しないといけませんね。

内容把握には中国語WEB翻訳を使いましょう
http://www.excite.co.jp/world/chinese/web/

一応、証拠画像つくっておきました。
http://img.2chan.net/9/src/1089219141893.jpg
中国だからなぁ〜
ACCS反応するかなぁ〜?
誰か通報しろよ!
602デフォルトの名無しさん:04/07/10 12:35
スクープ!中国の公立学校がWAREZまみれ
http://tmp4.2ch.net/test/read.cgi/asia/1089220361/l50

■緊急事態! 南京でAdobe大虐殺■
http://tmp4.2ch.net/test/read.cgi/download/1089425991/l50

中国の公立学校HPで堂々と高額ソフト違法配布
http://pc5.2ch.net/test/read.cgi/pcnews/1089257113
http://openuser5.auctions.yahoo.co.jp/jp/user/nash9bridges?
アドバイス入りまくりで、毎回新規IDで出品、売り逃げを決め込む確信犯!
604デフォルトの名無しさん:04/07/13 19:31
http://www.66zone.com/
↑こいつ。通報して
605デフォルトの名無しさん:04/07/13 19:54
通販法も×
606デフォルトの名無しさん:04/11/20 06:48:34
607デフォルトの名無しさん:04/11/22 10:28:50
age
608デフォルトの名無しさん:05/02/05 10:34:52
age
609( ´Д`)y━・~~:2005/04/10(日) 21:04:32
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
http://openuser2.auctions.yahoo.co.jp/jp/show/auctions?userID=sunrise4402
俺のHDD満タン2万5000円で買え!!
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
610デフォルトの名無しさん:2005/04/22(金) 15:36:16
らぐろだ
http://soukutu.zive.net/~koba/cgi-bin/upload/upload.php

ここに動くkoreありますよ〜
611デフォルトの名無しさん:2005/04/23(土) 17:59:17
612デフォルトの名無しさん:2005/09/02(金) 12:22:45
613デフォルトの名無しさん:2005/09/02(金) 13:06:41
お前がやれば?
614デフォルトの名無しさん