[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/01 12:35 / Filesize : 186 KB / Number-of Response : 746
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

■MFC相談室 mfc19d.dll■



1 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:37:47 ]
Microsoft Foundation Classライブラリ専用スレです。

前スレ
■MFC相談室 mfc18d.dll■
pc11.2ch.net/test/read.cgi/tech/1185917008/

236 名前:デフォルトの名無しさん [2008/07/01(火) 14:16:59 ]
MFCのリッチエディット2.0について質問させていただきます。

MFCのダイアログベースでプロジェクトを作成

プロジェクトのプロパティで「マルチバイト文字セットを使用する」を「Unicode文字セットを使用する」に変更

エディットボックスとリッチエディット2.0を適当に配置

エディットボックスとリッチエディット2.0それぞれにコントロール変数を追加

InitInstance()内に AfxInitRichEdit2(); を追加

あとは適当なところでエディットボックスとリッチエディット2.0それぞれにGetWindowText関数を使って、記入内容を取得します。


すると、エディットボックスではUnicodeの文字を入れても文字化けしないのに対し、リッチエディット2.0では文字化けしてしまいます。
例えば“ÄÅÆ”を入力すると、エディットボックスではそのまま“ÄÅÆ”なのに、リッチエディット2.0では“AAA”になります。

※入力している段階では“ÄÅÆ”と表示されています。GetWindowText関数で取得すると“AAA”になってしまいます。


リッチエディット2.0からUnicode文字を正常に受け取れる方法はありませんでしょうか。

237 名前:236 mailto:sage [2008/07/01(火) 14:48:29 ]
書き忘れてました
環境は Visual Studio .NET 2003 です。

238 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 15:03:11 ]
設定フォントはUnicode表示できるの?

239 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 15:12:41 ]
>>238
できます。
それも含め、エディットボックスでならすべてうまくいっています。
ただ、リッチエディットだとうまくいかないんです・・・

240 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 15:58:18 ]
>>236の通りにやってみたが、すべて問題なく動作した。
VS2008だけど。2003もあるんでちょっとやってみる。

241 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 16:37:13 ]
ご苦労

242 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 16:55:07 ]
2003だとたしかにそうなるな。
文字エンコーディングの指定かとも思ったが、
ttp://oshiete1.goo.ne.jp/qa4140782.html
マルチみたいだからもうやめた。

243 名前:236 mailto:sage [2008/07/01(火) 17:06:44 ]
>>242
回答ありがとうございます。
やっぱり2003のリッチエディットはUnicodeに対応してないんですかねぇ・・・

あ、その添付のURLは私が上げた質問ですw
OKWaveで質問しても回答が得られなかったのでこっちに来た次第です。

244 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 17:25:21 ]
とりあえず、これやったらうまく取れた。
ちょっと変更必要だったけど、まあわかるっしょ。
ttp://d.hatena.ne.jp/halts/20030805



245 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 17:33:38 ]
よくやった

246 名前:236 mailto:sage [2008/07/01(火) 18:20:59 ]
>>244
ありがとうございます、さっそく試してみます。

247 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 18:54:28 ]
>>244さんの紹介ページの通りやってみたらうまくいきました。
・・・とはいっても、>ex と書くべきところを >ex と書いてあったり、TCHAR*型のポインタを渡すべきところにCString型変数を渡してたりと、なかなか誤字の多いページでしたけど。

248 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 18:56:28 ]
そこは const のTCHAR*渡すようにすれば CString のまま渡せるんだけどね。
オレはそこはLPCTSTRにした。

結局、コードページ1200にしてEM_GETTEXTEXが必要ってことみたいだな。

249 名前:247 mailto:sage [2008/07/01(火) 18:57:17 ]
あ、誤字ってる・・・

> とはいっても、>ex と書くべきところを >ex と書いてあったり
「&gtex」を半角で打つと「>ex」になってしまうようですね。前者の「>ex」は「&gtex」のつもりで書きました。

250 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 19:29:57 ]
MFCはマルチコアなど気にする必要は無いのでしょうか。
現在P4 2.8Gを使っているのですが、処理によってはCPU使用率が80%を超える場合があります。
もしC2Dなどのマルチコアで実行した場合、
何も気にせず組むと1つしか使っていない(=現状より処理が重い)という状況になるかと思ったのですがどうなのでしょうか。

251 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 19:54:07 ]
MFCじゃなくてスレッドの話だろ

252 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:03:33 ]
内容次第としか言いようがないな
今でもまともにマルチコアを使いこなしてるソフトなんて、エンコーダくらいしかないし

253 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:10:27 ]
コンパイルそのものは速くなるよ
複数のファイル平行してコンパイルするからね

254 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:13:11 ]
あと、C2Dの1コアだけで同クロックのPen4より
かなり速いぞ
クロックだけで判断しないほうがいい



255 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:15:04 ]
マルチコアって響きはプログラマとしてトキメクものがあるが
現状1つのアプリ内で有効に活用できる機会はあまり無いわな。

256 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 20:16:31 ]
というか複数アプリ起動時にパフォーマンスが高いから、もう十分

257 名前:250 mailto:sage [2008/07/01(火) 20:39:43 ]
レスありがとうございます。
特殊なことをしない限りMFCでマルチコア云々を特に考える必要は無いのですね。

258 名前:デフォルトの名無しさん [2008/07/02(水) 16:19:51 ]
いま、EXEにあるクラスのヘッダーをincludeしてDLLを作ろうとしてます。
構造体ならうまくいくのですが、クラスだと
fatal error LNK1120: 外部参照 1 が未解決です。
になってしまいます。解決方法ご存じでしょうか?

259 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 16:24:16 ]
何言ってるのかわかりにくいが、、、
その外部参照1の名前から推測できないの?

260 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:32:40 ]
__declspecをつけてないとか

261 名前:デフォルトの名無しさん [2008/07/02(水) 17:42:14 ]
__declspecも付けてみましたがうまくいきません。
error LNK2019: 未解決の外部シンボル "public: class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >
__thiscall CNode::getAll(void)" (?getAll@CNode@@QAE?AV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ) が関数
"public: virtual void __thiscall CMindPlug::LoadProperty(struct DataObj,class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >)"
(?LoadProperty@CMindPlug@@UAEXUDataObj@@V?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@Z) で参照されました。
というエラーが弊出します

262 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 17:48:29 ]
unicodeとか、シングルスレッド/マルチスレッドとかの設定は合ってるか?
最初に競合してるとかのエラーは出てない?

263 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 01:06:37 ]
そのクラスがDLLの外から呼び出せるようになってるか確認した?
あと、構造体ならうまくいくって、どううまくいくんだ?

264 名前:デフォルトの名無しさん [2008/07/05(土) 04:47:27 ]
いつも使っているUpdateData(FALSE);を
マルチスレッドで作った別スレッドの中で実行するとエラーが出るんですが、どういう問題が考えられますか?



265 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 10:04:58 ]
別スレッドの中で実行してるという問題が考えられる

266 名前:デフォルトの名無しさん [2008/07/05(土) 13:28:30 ]
やはりそうですか、別スレッドの中で実行するにはどうすればいいですか?

267 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:18:23 ]
だから別スレッドの中で実行したらだめ

268 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 16:21:58 ]
MFCやってて、マルチスレッドなんてプログレスバー処理やるときくらいだな

269 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 19:12:01 ]
↑あほ確定

270 名前:デフォルトの名無しさん mailto:sage [2008/07/05(土) 20:59:03 ]
うむ

271 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 00:22:36 ]
マルチスレッドって何ですか?

272 名前:デフォルトの名無しさん mailto:sage [2008/07/06(日) 00:35:35 ]
set.bbspink.com/test/read.cgi/leaf/1198723568/

273 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 10:50:58 ]
親子関係を持たないシングルウィンドウとダイアログについての質問です。
メインフレームをクリックするとダイアログも並び順はそのままで他のアプリケーションの上にウィンドウが来るように組もうとしています。
例えば以下のようにウィンドウが並んでいる場合
  デスクトップ)  ダイアログ1 ダイアログ2 メインフレーム 他のアプリケーション  (最前面
このメインフレームをクリックすると
  デスクトップ)  他のアプリケーション ダイアログ1 ダイアログ2 メインフレーム  (最前面
このように重なりを替えたいです。
しかしダイアログ1と2の前後関係が分からないため
  デスクトップ)  他のアプリケーション ダイアログ2 ダイアログ1 メインフレーム  (最前面
このようになってしまいます。
メインフレームを親にしてダイアログを生成するとダイアログの前面にメインフレームが持ってこれず躓きました。
重なり順をそのままに他のアプリケーションの前面に移動させるのは無理なのでしょうか。

274 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 03:55:36 ]
CPenで点を打つとき座標が必要ですが、コントロール上の座標を調べる方法はないんですか?
適当に座標を入れて、もう少し上だ、とかでずらしてコンパイルするしかないんですか?



275 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 14:41:53 ]
もう少し上、てのは何を基準に?
その基準を利用してみては。

見た目でなんとなく、というのならキミがやるしかないでしょ。

276 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 15:22:57 ]
マウス持ってけばわかるけど
ダイアログ上の座標は実行環境で可変だから
計算じゃなくて見た目で決めると実行時にずれる

277 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 16:03:04 ]
解決しました。付属のspyツールでマウスイベントのX,Y座標がとれました。

278 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 20:45:58 ]
座標関連のことやってるなら、PC用語ではないが黄金比くらいは知っておいた方がいい
役に立つかどうかは別だが

279 名前:デフォルトの名無しさん mailto:sage [2008/07/08(火) 21:25:24 ]
ダメな方法を教えてやったのに

280 名前:デフォルトの名無しさん [2008/07/13(日) 18:29:59 ]
ビットマップをピクチャコントロールの大きさに合わせて表示したり、
ボタンの横幅を文字数にあわせたりするのはどうしたら良いでしょうか?

281 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 18:47:52 ]
ピクチャコントロールの大きさを調べて合わせる
文字数から横幅を計算して合わせる

282 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:26:06 ]
文字数はDrawTextでパラメータにCALCっぽいやつつけろ

283 名前:デフォルトの名無しさん [2008/07/13(日) 23:32:56 ]
素人質問ですいません。
MFCでダイアログを表示させる時に作成したボタンを
クリックしている状態にするのにはどうすれば良いでしょうか?


284 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:50:13 ]
見た目だけでよかったらへこんだ状態にすればいい



285 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:52:59 ]
チェックボックスのボタンスタイルか?

286 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 01:07:13 ]
ダイアログエディタなら、チェックボックスを貼ってPushLikeをtrueに。
それ以外なら、、3ステートボタンとか2ステートボタンで探してみて

287 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 02:50:21 ]
ON_BN_CLICKED で ピクチャーコントロールの上をクリックされたときによばれるコールバックを設定したんだけど、
このとき、クリックされた座標が知りたい。どうすればいい?

288 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:50:52 ]
>>287
CPoint pt = GetMessagePos();

289 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:53:04 ]
GetCursorPos使えばいいよ

290 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 09:58:09 ]
STNじゃないの?
CLICKEDはボタンを押して離した後に来るからマウス座標の概念は無いかもな。
サブクラス化してLBUTTONDOWNやUPを見たほうがいいかも?

291 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:00:16 ]
GetCursorPos や GetMessagePos にはタイムラグあるんじゃない?
CLICKEDが最後のメッセージであると決まってればGetMessagePosでいいのかもしれん

292 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:04:48 ]
GetCursorPosはその瞬間のカーソル位置であって、
イベント発生時の座標はGetMessagePos。
ttp://msdn.microsoft.com/ja-jp/library/kt4by313(VS.80).aspx

293 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:52:42 ]
>>292
GetMessagePosも、
イベント発生時の座標=クリックされた座標では無いのが曲者だな

クリックされた座標を拾えるAPIは、もしかして無いんじゃね?


294 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 12:15:27 ]
実際にやってみて、ずれなきゃそれでいいしずれるなら自前で取るのがいいかもね。



295 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 23:06:45 ]
287 です。
みなさん、回答ありがとう。GetMessagePos() を使用して要望がかないました。
実際、実装したかったモノはCStaticにカラーグラデーションを配置して、簡易なカラーピッカを実現することでした。
実装してみるとクリック時よりもリリース時の座標の方が使い勝手がいいことが分かりましたが、
助言をヒントにこれも実現できそうです。

296 名前:デフォルトの名無しさん [2008/07/16(水) 13:01:17 ]
VC.netでUnicode環境の場合に、
char a[10]; CString s;
strcpy(a,s);
_tcscpy(a, s);
_tcscpy_s(a, s);
とか、CStringからcharへのコピーがうまくいきません。
誰かご教授くださいm(_._)m



297 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:29:26 ]
いったい何がやりたいのか理解できない

298 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:33:19 ]
>>296
char a[10]; CString s;
strcpy(a, CT2A(s));

とか

USES_CONVERSION;
char a[10]; CString s;
strcpy(a, T2A(s));

とやれば動くだろうけど、そもそもaがchar配列なのは何故?

299 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:45:16 ]
CStringA

300 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:55:01 ]
コピーじゃなくて変換なのか?

301 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:05:29 ]
Visual Studio 2005で、WindowsMobile6用のダイアログベースアプリを作っています。
ダイアログにメニューをつけたいのですが、やり方がわかりません。

下記URLのやり方をやってみようと思ったのですが、2箇所やり方がわからず、詰まってしまいました。
www.g-ishihara.com/mfc_me_01.htm

1.メニューのIDが設定できない
リソースの追加でMenuを作成したときに、リソースビューには「IDR_MENU1」というのができるのですが、
メニューのプロパティでは「IDの編集ができません」と書かれて、IDが編集できません(サブメニューは編集できました)。
でも、とりあえず、メニューリソースの作成方法はわかったつもりです。
また、下記2.で使うのは「IDR_MENU1」という名前だと考えたので、
ここでIDの編集ができないことは、メニューをつけられないこととは関係ないと思っています。

2.ダイアログにメニューを関連付けられない
>> ダイアログのプロパティで、「Menu」に作成したメニューのIDを指定
という手順で、ダイアログのプロパティに、「Menu」という項目がありませんでした。。。。
もしMenuという項目があれば、「IDR_MENU1」を記入すればよいと思っています。


ダイアログにメニューをつける方法を教えていただけませんでしょうか。
足りない情報があれば、ご指摘ください。
よろしくお願いいたします。

302 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:21:05 ]
>>301
1.リソースビューの「IDR_MENU1」をシングルクリック

2.リソースビューの該当ダイアログIDをダブルクリック

(※VS2003だけど)



303 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:22:25 ]
>>301
1. メニューの編集閉じてから、リソースビューからメニュー右クリックでプロパティ出してみ
2. でも、モバイルでダイアログにメニュー持たせられたっけ

304 名前:301 mailto:sage [2008/07/16(水) 18:35:44 ]
レスありがとうございます。

>>302
その通りにやってみましたが、ダイアログの編集が開くだけでした。
また、実行してみても、画面的に変化はありませんでした。


>>303
>> 1. メニューの編集閉じてから、リソースビューからメニュー右クリックでプロパティ出してみ
これはできました!リソースのプロパティでのIDの編集なのですね。

>> 2. でも、モバイルでダイアログにメニュー持たせられたっけ
ガーン。
もし無理ならばSDIで作り直して、メニューを編集することにします。
モバイルで可能かどうかって、何を調べればわかりますでしょうか?




305 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 18:54:01 ]
どうだろ、そういうアプリ見たこと無いしなぁ
やっぱMSDN探すしかないか?

306 名前:301 mailto:sage [2008/07/16(水) 18:54:25 ]
書き忘れました。。。

>>302
1.については、リソースのプロパティが表示され、IDが編集できました。
(303さんと同じ結果でした)


307 名前:301 mailto:sage [2008/07/16(水) 19:05:41 ]
>>305
MSDNでの探し方ってよくわからないんです。
モバイルで可能かどうかっていうのの情報が、どう書いてあるのかわからなくて。。。
.NET Compact Frameworkのどのバージョンに対応とか
そういうのは書いてある気がするんですけど、これはまた別の話ですよね?

# 当方MFCとかCompactFrameworkとかが何を指しているのかわかっていません。
 言葉の意味はわかるのですが、具体的に何を指しているのかわからないのです。。。
 たとえばCStringってクラスはMFCっぽい?とかそんなくらいの認識です。。。

308 名前:デフォルトの名無しさん [2008/07/16(水) 22:42:12 ]
>>284
>>285
>>286

返信遅くなりすみません。
無事解決しました。ありがとうございました。


309 名前:301 mailto:sage [2008/07/17(木) 13:07:04 ]
WindowsMobile用のスレを見つけたので、そっちで聞いてみます。
お邪魔しました。

310 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:00:15 ]
VC6、VC7.1ともにダイアログベースのスケルトンにボタン貼り付けて、
クリックしたらMessageBox表示するだけのアプリで、
何回かボタンクリックしてるとメモリ使用量が4K増えるんですけど、こういうもんなんですか?



311 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 23:09:05 ]
一応、そのボタンクリック時の関数の中身貼ってみて

312 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:38:13 ]
>>310
そんなもんだろう。
ページングがおこって4kが確保されたんだろうが、それ以上その動作で確保されることはない(とは断定できないが)。

313 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 05:34:53 ]
CFileDialogのファイル選択ダイアログのことなんですが
JPEG Files (*.jpg;*.jpeg)|*.jpg; *.jpeg|All Files (*.*)|*.*||
と設定していて最初はJPEG Filesの拡張子が表示されるんですがJPEG FilesからAll Filesに変えると何も表示されなくなります(JPEG Filesに戻しても表示されない)
あとXPですが左側にあるマイコンピュータを押してもCドライブなどが表示されず真っ白の状態(上と同じ)になります
これをちゃんと表示させる方法ありませんか?

314 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 06:56:50 ]
ほかのアプリで同様の現象が起きるなら、MFCは関係ないな。
再インストールでもした方が良い。



315 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 16:28:22 ]
VS2005でピクチャーボックスのサイズが知りたくてGetWindowRectを使おうと思ったんだけど
void C・・・Dlg::OnBnClickedButton1(){}
こんな形の場所だとhwndの指定がうまくできないんですがどうすればいいんですか?

316 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 16:44:21 ]
欲しいのはこれかね?
つGetDlgItem

317 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 16:59:32 ]
>>316
それ使いたいんですがGetWindowRectの引数が1個しか指定できなくて使えないんです

318 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 17:09:35 ]
RECT rc;
GetDlgItem(IDC_XX)->GetWindowRect(&rc);

こういう事?

319 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 17:18:40 ]
そんなやり方があったんですか
ずっとGetWindowRect(GetDlgItem(hwnd,IDC_XX),&rc);こんな感じでしかできないものと思ってました
どうもです

320 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 17:20:59 ]
>>319
GetWindowRect()は、this->GetWindowRect()
のthisが省略された書き方だと言う事を意識した方が良い

321 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 19:25:16 ]
Win32と入り混じってそうだな

322 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 19:39:36 ]
GetDlgItem(IDC_XX)->
これ一番最初の方で習うだろ
別のやり方もあるけど、MFCでその方法教えない本はないと思う

323 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 09:48:03 ]
>>322
MFCなら変数化して使うのが一般的じゃないかな。
IDを変数に置きなおして直感的に触れるようにするのがMFCの特徴の1つでもあるし。

324 名前:310 mailto:sage [2008/07/19(土) 14:11:23 ]
>>311
亀で申し訳ないです。
void CmessageboxDlg::OnBnClickedButton1()
{
  // TODO : ここにコントロール通知ハンドラ コードを追加します。
  MessageBox("Message", "Title", MB_OK | MB_ICONWARNING);
}

で、張り付けたボタン→メッセージボックスのボタン
の順にクリックし続けると何回かに1回4K増えます。

ボタンにフォーカス当ててエンター押しっぱなしだとより
顕著に増加します。

それ以外の部分はダイアログベースのスケルトンです。




325 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 21:07:10 ]
CWnd一時オブジェクトが増えるのが原因じゃないかなあ。
放っておけば適当な間隔で解放されるから、あまり気にしなくても良いと思うけど。

326 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 21:21:25 ]
だろうな
環境によって違うけど、ある程度時間を待てば解放されると思う

327 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:57:52 ]
まあ、多分聞きたいことはみなさんの環境でも同じことやって同じ現象おきませんか?
ってことだと思うけど俺は腰が重くてとても動く気になれないなw

328 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 08:36:39 ]
>>327
もしそうなら、同じOS・同じMFCバージョンでやらないと意味無いかもな。

さすがにメッセージボックス表示させるだけのコードなら大丈夫だと思うぜ。
MFCのバグの可能性を疑うのなら別だけど、それを言い出したらキリが無い。

329 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 09:51:32 ]
MFCもapi呼んでるだけだし、
呼んだ人のハンドル渡すぐらいのことしかやってないから
特にメモリ使ってるようには見えないな
メモリ使ってるとしたらapiだろ

330 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 09:59:07 ]
所詮CWnd::MessageBox()がAfxMessageBoxを呼んで、そいつがAPIのMessageBox呼んでるだけだよなw

331 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 07:32:41 ]
ちょいとスレ違いだけど
EmeditorってMFC使ってないらしいけど
どうやって作ってるんですか

332 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 08:51:20 ]
MFCを使わずに作ればいい

333 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 19:34:18 ]
MFCの仕組み分かってないのか・・・

334 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 17:24:12 ]
ウィンドウが作られる前はPreCreateWindowっぽいのですが、
ウィンドウが作られた後のイベントは何でしょうか?




335 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 17:49:44 ]
OnCreate の話?

336 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 20:01:25 ]
CHogeWnd::OnCreate()
{
  CWnd::OnCreate();
  // ここに書け

}






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<186KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef