- 1 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 10:38:31 ]
- Microsoft Foundation Classライブラリ専用スレです。
前スレ ■MFC相談室 mfc16d.dll■ pc8.2ch.net/test/read.cgi/tech/1146117893/
- 313 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 00:00:08 ]
- >>311
概ねOKじゃね? どっちかっていうとその役割よりドキュメントとビューがセットで1つになってること(ドキュメントテンプレートってのなかった?) 新規作成でできるもんがドキュメント+ビューを型にしたインスタンスであることって方が重要のような気がするがわかっているならOK。 そうすると自然にMDIのアプリは 1.メインフレーム(メニューとかくっついてる) 2.(ドキュメント+ビュー)X新規作成で生成された数分 3.その他のツールウィンドウやダイアログ で構成されることになる。 VCだと ・メインフレーム(メニューとかくっついてる) ・ソースコードエディターとかリソースエディター等など(新規作成からできる奴) ・ソリューションエクスプローラーとかアウトプットウィンドウとか・・・ にあたる。 強引に「こうやって作れよ!」っていう型なんで設計からしてこうやってなってないと駄目っちゃ駄目だなw
- 314 名前:311 [2007/01/14(日) 00:12:54 ]
- ありがとうございます
- 315 名前:スイ [2007/01/14(日) 00:22:26 BE:311467872-2BP(0)]
- えっと、すいません、↓で討論?みたいなのをしているんですけど、
jbbs.livedoor.jp/bbs/read.cgi/game/19692/1168442603/ 私は、真珠さんって少し変わった趣味を持った人だなー、とかは思いますけど、それだけで叩いたりするのってひどいと思いませんか? 私はあまりネットには詳しくないのでよくわからないんですが、なんかほなみんさんが2chとか言ってたので調べてみると見つかったので書き込んでみました。 このままだと真珠さんがかわいそうなんで、誰か真珠さん側についてほなみんさんを叩き返してくれませんか?私じゃ勝てそうにないので。
- 316 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 00:46:00 ]
- ↓ハイ、次の方どうぞ。
- 317 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 01:44:25 ]
- えっと、これ本番ですか?
- 318 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 06:58:08 ]
- >>313
なんで初心者に向かって何の前置きも無しに、あまりお目にかからないMDIのさらにレアな 複数のドキュメントタイプを持つアプリの解説を始めるのか、理解に苦しむよ。 VS2005でMFCアプリのデフォルトプロジェクトがMDIになったのは大失敗な気がする。 >>311 msdn2.microsoft.com/ja-jp/library/4x1xy43a(VS.80).aspx この解説が分かりやすいよ。
- 319 名前:デフォルトの名無しさん [2007/01/14(日) 08:06:10 ]
- >>318
ええ!? >>313のどこをどう読めばが複数ドキュメントの解説がメインになってるの? とんだ濡れ衣だ!勘違いなら謝ってよ!
- 320 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 08:06:57 ]
- X複数ドキュメント
○複数ドキュメントタイプ
- 321 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 09:00:21 ]
- >新規作成でできるもんがドキュメント+ビューを型にしたインスタンスであることって方が
>重要のような気がするがわかっているならOK。 SDIでは100%成り立たないし、単一のドキュメントタイプをもつMDIなら自明で重要性は感じられない。 これが重要な意味を持つのは複数のドキュメントタイプをもつMDIしかないように思った。 確信犯だと思ったんだが、気に障ったのなら謝るよ。漏れの知らない世界があるんだろうね。
- 322 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 10:00:53 ]
- >>321
え?じゃあ、君の勝手な妄想で俺につっかかってきたの? それとあきらかにその文章で複数ドキュメントタイプの説明なんて書いてないのにその態度はなんなの。 しかも、確信犯の使い方も間違ってるし。 こんなの業務でやったら大変だぜ。改めろよ。
- 323 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 10:23:18 ]
- いや、改めなくていいから一切社会活動を行なわないでください。
- 324 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 10:27:37 ]
- >VS2005でMFCアプリのデフォルトプロジェクトがMDIになったのは大失敗な気がする。
これ昔からだろ、2005ではじめて触ったのか
- 325 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 11:07:34 ]
- SDI MDI
MFC以前からある ドキュメント/ビュー MFC2.0で追加された
- 326 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 12:59:31 ]
- CFrameWndの派生クラスをドキュメントテンプレートから閉じるにはどうしたらいいでしょうか。
つまり class CHogeDocTemplate : public C[Single/Multi]DocTemplate の OpenDocumentFile で特定のフレームを閉じる様にしたいのですが、 閉じる時に CFrameWnd::DestroyWindow や OnCloseDocument を使うと OnClose が呼びだされないがこれで大丈夫なのか、 だめだとしたら正しい閉じ方はどうなのかを教えていただきたいのです。 よろしくお願いします。
- 327 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 13:14:37 ]
- 普通に閉じればいいじゃん
- 328 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 13:34:04 ]
- CFrameWnd::OnCloseからDestroyWindow呼んでるから
OnClose が呼びだされないのは当たり前
- 329 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 13:39:10 ]
- >>327
普通にとはどのようにでしょうか? >>328 その通りです。OnClose から閉じる方がドキュメントを閉じる等の処理も 正しく行われるように読めたので出来ればそうしたく質問しております。
- 330 名前:デフォルトの名無しさん mailto:sage [2007/01/14(日) 13:47:01 ]
- OnCloseからOnCloseDocument呼んでるから
OnCloseDocumentからOnClose が呼びだされないのは当たり前
- 331 名前:デフォルトの名無しさん mailto:sage [2007/01/15(月) 21:50:20 ]
- OnCloseはウィンドウを閉じる時
OnDocumentCloseはドキュメントを閉じる時 と考えれば何も問題ないべ
- 332 名前:デフォルトの名無しさん [2007/01/16(火) 04:24:49 ]
- CPUやメモリをあまり気にせずにプログラム書いてたら
起動しただけでCPU使用率50%という異常な状態になっていました。 このプログラム自体、起動と同時に行う処理はほとんどなく、 SDIのスケルトンと同じようなもののはずなんですが。。 処理がないのにCPU使用率が高いまま下がらないのは 原因としてどのようなことが考えられますか? もしくは原因を調べる方法とかってありますか?
- 333 名前:win32apiスレ17 mailto:sage [2007/01/16(火) 04:36:15 ]
- pc10.2ch.net/test/read.cgi/tech/1168708801/17
に最初書き込みましたが、こちらのが適切かなと思って移動してきました。 Acrobatのページサムネール表示、あるいはPowerPointのスライド一覧表示のように、 イメージのリストを表示し、かつ、その順番をマウスのドラッグで調整したいと思ってます。 ドラッグ中、イメージが挿入される場所にカーソルの様な縦線が出てきて欲しいなと思ってます。 こういうコントロールの既存の実装やコードのサンプルなど御存知でしたら御教示頂けないでしょうか? codeguru、codeprojectは廻ってみたものの、どうにもサムネールの表示どまりでして・・・
- 334 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 05:27:51 ]
- >>332
情報少なすぎでどうespしろと?
- 335 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 05:36:21 ]
- >>333
自分でエディタとか作ったことない?
- 336 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 08:03:52 ]
- >>332
プロファイルで
- 337 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 09:03:52 ]
- ある場所から突然malloc(255)がNULLになります。直前のmallocは必ず成功で、場所は一定
HEAP、スタックを2000000(2M)や20000000(20M)で試しましたが、タイミングや場所は変わらないようです お手上げです。解決策をお知りの方おりませんか?
- 338 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 09:15:52 ]
- 直前のmallocまでのすべての戻り値をここにさらしてごらん
- 339 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 09:42:17 ]
- 直前のmallocの戻り値でいいですか?
malloc(255);//必ず成功。 戻り値:0x00b72e68 WideCharToMultiByte MultiByteToWideChar malloc(255);//必ず失敗 こんな感じです
- 340 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 09:59:04 ]
- ヒープ壊してんじゃねえの
- 341 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 10:05:25 ]
- 解決しました!
MultiByteToWideCharを2度使いmallocのサイズを指定していたのですが、wchar単位でNULLが含まれていないため少なくなっていました 成功するほうをmalloc((len+1)*sizeof(wchar_t));で動きました。 ありがとうございました。
- 342 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 12:49:33 ]
- CStringWじゃ駄目なのか?
- 343 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 17:35:59 ]
- >>332です。
>>336 ありがとうございます。 プロファイルで調べたところOnIdle()のreturnが原因だったようです。 そのreturnのことで質問なのですが、 OnIdle内でのレンダリングによってCGアニメーションを表示するプログラムを書いているのですが、 return TRUE;だと前述のようにCPU使用率が高くなるのですが、 アニメーションは正常に表示されます。 return CWinApp::OnIdle(lCount);だとCPU使用率の問題は解消されるのですが OnIdle()が呼ばれる間隔が長くなるためか、アニメーションが滑らかに表示できません。 この2つを同時にクリアできる良い方法はありませんか? よろしくお願いします。
- 344 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:02:17 ]
- んー、、、目的の fps が取れてるなら Sleep(0)を呼ぶとかどうだろう、Sleep(1)でもいいが
- 345 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 19:27:01 ]
- ほっといてやれ
- 346 名前:デフォルトの名無しさん mailto:sage [2007/01/16(火) 21:57:57 ]
- >>344
ありがとうございます!! どうやらすごく基本的なことのようですね。。
- 347 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 21:52:58 ]
- マルチラインエディットボックスで
水平方向のスクロールバーの位置から 列の何文字目から表示している知りたいのですが どうすればいいのでしょうか? やりたいことはエディットボックスの中身を編集して かきかえても書き換える前と同じ位置を表示したいのです。 LineScrollを使用すれば垂直はうまくいくのですが、水平がうまくできません。 また、SetScrollPosを使用してもエディットボックス内が更新されないのでこまっています。
- 348 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 23:52:25 ]
- >>347
「書き換えても書き換える前と同じ位置」というのもよくわからないんだけど、 わざわざスクロールバーを使っているのはなぜ? 単純にGetSelでカーソル位置を取得しておいてSetSelで戻すだけじゃダメ? あと、エディットボックスの更新するにはUpdateData(FALSE)とUpdateWindow() じゃない? 質問がよくわかってないのではずしてるかも知れんけど。
- 349 名前:347 mailto:sage [2007/01/19(金) 14:44:11 ]
- >>348 さん
レスありがとうございます。 自己解決しました
- 350 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 16:13:48 ]
- CWnd* CWnd::GetDlgItem(int nID); で得られるCWndのインスタンスの解放は
誰に責任があるんでしょうか?ソースコードを少し追ってみると、独自のアロケータ でごにょごにょやってるような感じなんですが。
- 351 名前:350 mailto:sage [2007/01/19(金) 16:23:11 ]
- 自己解決しました。こういう一時的に作ったオブジェクトはMFCが勝手に
CWinApp::OnIdle() → CWnd::DeleteTempMap() あたりで解放するんですね。
- 352 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 16:23:37 ]
- ソース追うのもいいけど、ヘルプもみよう
- 353 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 16:34:29 ]
- いや、だってヘルプには「返されるポインタは、一時的なポインタです。後で使用するために保存しておくことはできません。
」としか書いてないから、誰がどこでいつ解放するか気になるじゃん?
- 354 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 16:39:54 ]
- 一時的なポインタを解放するのか?
- 355 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 17:09:59 ]
- そりゃ解放するでしょ。問題は誰がいつどこで開放するかであって、それに
よって「一時的なポインタ」とやらの有効範囲が決まってくるわけだから。
- 356 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 17:21:08 ]
- クラスがなんだかわかってないのでは?
- 357 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 18:22:15 ]
- あれ、FromHandle()あたりからDeleteTempMap()をたどって知ったんだったかな、、、
ヘルプだけで一時的なCWnd*がいつ消されるかも読んだ気がしたが・・・
- 358 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 18:27:04 ]
- >>357
それがヘルプに書いてあれば悩む必要がないのにね。
- 359 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:39:22 ]
- すいません。
自作でエクスプローラ風アプリケーションを作りたいのですが、 それ風なサンプルを説明しているサイトとか知りませんか? 全く、それ系のインターフェイス名も知らないんで、 ググれなく困っています。
- 360 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 19:00:58 ]
- せっかく教えても無駄になりそうだからやめておこう
- 361 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 20:54:50 ]
- >>359
えー!! そんな殺生なぁ
- 362 名前:361 mailto:sage [2007/01/22(月) 20:56:48 ]
- >>360
おねがいっす!!
- 363 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:03:34 ]
- 質問なんですけど
AppクラスからDocumentクラスのポインタの取得方法を教えてください よろしくお願いします。
- 364 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:12:52 ]
- 自分で持ってそうな気がするけど
- 365 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 11:13:20 ]
- Viewが一つだけなら
GetFirstDocTemplatePosition()、GetNextDocTemplate()、GetFirstDocPosition()、GetNextDoc() あたりで。
- 366 名前:363 mailto:sage [2007/01/23(火) 11:19:24 ]
- >365
GetFirstDocPosition()、GetNextDoc()で取得できました。 ありがとうございます。
- 367 名前:デフォルトの名無しさん [2007/01/25(木) 16:20:26 ]
- スライダについて質問です
slider.SetRange(0, 100, true); slider.SetTicFreq(10); slider.SetPos(0); このようなスライダを作り、スライダで設定した値をEditBoxに表示しています。 このとき、スライダのつまみをドラッグした場合には正しい値が得られますが クリックで設定しようとした場合が上手くいきません 例えば、70を設定しようと思って該当する目盛りのあたりをクリックすると、 70の位置には来ず、マウスボタンが押されるたびに60と80で切り替ってしまいます。 クリックでも値を設定できるようにするには、何か特殊な処理が必要なのでしょうか?
- 368 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 18:32:40 ]
- スライダの現在位置が0の時に70の位置をクリックしたら
0+GetPageSize()で得られる位置に移動するのがスライダ コントロールの仕様だと思うんですが。 仕様が気に入らないのであれば、自分で必要なイベントを拾ってSetPos()すれば良い。
- 369 名前:デフォルトの名無しさん [2007/01/26(金) 01:06:48 ]
- CEdit::SetFoces()に関する質問です。
任意のテキストフィールドをフォーカスさせたい場合は CEdit::SetFocus()を行うと実現できますが、 このとき、フォーカス対象のテキストフィールドに文字列が 入力されているとき、文字列全体を範囲選択した状態で フォーカス移動させるにはどのような手法があるでしょうか? イメージとしてはタブでフォーカス移動させたときのような感じです。 よろしくお願い致します。
- 370 名前:369 mailto:sage [2007/01/26(金) 01:14:49 ]
- ごめんなさい。自己解決しました。
CEdit::SetFocus(); CEdit::SetSel(0,-1); で実現できるようでした。
- 371 名前:デフォルトの名無しさん [2007/01/27(土) 01:54:56 ]
- ダイヤログベースのアプリです。
英語化について教えてほしいです。 タイトルアイコンをクリックした時のシステムメニューや、 AfxMessageBoxを表示させたときのキャンセルの表示など あらかじめ用意されている部分に日本語が表示されますが、 すべて、一切がっさいを英語にしたいと考えています。 どのような方法で英語かすることができるでしょうか?
- 372 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 02:56:08 ]
- >371
アプリケーションを実行するとき、デフォルトのコードページを英語に変更する。 でも、システムのバグをたたくこともあるからお勧めしない。
- 373 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 06:21:45 ]
- 英語環境でビルドしてあるやつでもそうなるから
OSの問題だろ
- 374 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 13:08:41 ]
- だから実行時指定
- 375 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:15:32 ]
- >>371
日本語関連を全くインストールしていない、設定も悉く日本にしていない端末で、実行する。
- 376 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:21:43 ]
- MFCは全くの初心者なのですが、MFCにもバージョンはあると思うのですが
Visuall C++(VC6)に付属のMFCのバージョンはいくらになりますか?
- 377 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 15:31:00 ]
- 6.0
- 378 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 17:48:04 ]
- WikipediaのMFCの項目、批判の所見てワロタ。
どこの知障だよ、書いたの。
- 379 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:41:44 ]
- >378
DelphiやJavaはライブラリらしい。しかも、C++はコンパイル時間が長いらしい。
- 380 名前:372 mailto:sage [2007/01/27(土) 19:01:12 ]
- >371
あと、afxMessageBoxにはユーザ拡張用の前呼び出し処理があるから、 それを横取りして自作のメッセージボックスを表示する。 とかかな。
- 381 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:01:26 ]
- コンパイル時間は長いとは思うけど、他のオブジェクト指向言語と
比べてどうなのかはわからんな。 ただ、「C++だから」ってより「色々インクルードするから」長いんだけど。
- 382 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:06:08 ]
- 実行時コンパイルの方が好感もたれるのか
- 383 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 19:52:07 ]
- すみませんMFCど素人です
ANSIの unsigned char foo[64] MFCではどの様に書いたらいいのでしょうか? コンパイラはVC6です
- 384 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 20:20:34 ]
- unsigned char foo[64]
- 385 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 20:47:58 ]
- ガベコレがないのが致命的欠点であるかどうかは検証不可能だから
これはもちろんWikipediaに書いてはいけない。 Delphiの方にもしょうもない書き込みしてるが、 群を抜いているのなら特定のソフトウェアをあげつらう必要はなかろうに。 「中立的な観点」を欠いてしまっているのが分らないのかね。
- 386 名前:デフォルトの名無しさん [2007/01/27(土) 23:24:57 ]
- 何で C# って使われてないの?
VC++ ネイティブのより多少計算とか遅いかもしれないけどさ、 開発が VB 並にめっちゃ楽だし、 文法は Java そっくりで習得も移行も容易だし、 全体的にスマートな印象を受けるじゃん いい加減 VC++ 信仰は止めて欲しいんだよね 一々 Windows と UNIX(Linux) 版を作りたくねーんだよ もうさ、時代は中間言語の時代だと思うね 頼むから、ネイティブ信仰は止めようぜ な
- 387 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 23:34:26 ]
- >>386
TPOで使い分けるでFAだろ。 まあその手の議論は実りがないから他でやったほうがいいな。
- 388 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 08:18:59 ]
- InitDialog中で、必要なファイルがあるかのチェックをして
なければSendMessage(WM_CLOSE);として終了するようにしているのですが 一瞬Windowが表示されてしまいます。。。 Windowを表示させずにそのまま終了する方法はないでしょうか?
- 389 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 08:37:30 ]
- ダイアログ出す前に調べる
- 390 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 10:07:30 ]
- >>388
モーダルならEndDialog、モードレスならDestroyWindow。
- 391 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 11:06:29 ]
- ほほぉ、それからそれから?
- 392 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:29:47 ]
- VC8のMFCではダイアログボックスに貼り付けるボタンやテキストボックスのサイズや
表示位置をそれぞれのプロパティから数値で詳細に設定できるのですが、VC6のMFCでは そのようなプロパティに項目が見当たりません、VC6で皆さんは位置決めやサイズを 何処で設定されているのでしょうか?
- 393 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:03:17 ]
- テキストエディタ
- 394 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:16:13 ]
- >>389、390
ありがとうございました!
- 395 名前:デフォルトの名無しさん [2007/01/28(日) 16:34:24 ]
- ダイアログベースのアプリです。
ウインドウサイズをマウスで自由に変更できるようにするには どのような設定、または処理を作れば良いでしょうか? SDI/MDIベースでないとできないですか?
- 396 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:48:03 ]
- いいえ。
- 397 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:04:26 ]
- サイズ可変のスタイル付ければダイアログ自体のサイズは変えられるようになるが
中のコントロールもそれにあわせて調整したければ、自分で書くしかない。
- 398 名前:デフォルトの名無しさん [2007/01/28(日) 17:17:53 ]
- >>397さん
お返事ありがとうございます。 サイズ可変のスタイルのつけ方は、具体的なコードイメージを教えていただけないでしょうか。 ダイアログ内部に設置したCEditのコントロールもあわせて変更するように実装します。
- 399 名前:396 mailto:sage [2007/01/28(日) 17:44:13 ]
- スルーされたから要点だけ突っ込み。
>サイズ可変のスタイルのつけ方は、具体的なコードイメージを教えていただけないでしょうか。 MSDN嫁。リソースで定義したダイアログならリソースエディタのプロパティの該当項目をチェックするだけ。 >ダイアログ内部に設置したCEditのコントロールもあわせて変更するように実装します。 サイズ変更のメッセージハンドラを書く必要がある(勿論そこでCEditのサイズを調整する)ので、 初心者向けの解説サイトでも探して解説を読め。
- 400 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 18:57:22 ]
- すいません。でも方法教えていただきありがとうございました。
これからはMSDNみてから質問します。 CEditのほうもありがとうございました。
- 401 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:19:27 ]
- >>392ですが、どうしたらいい?
- 402 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:38:35 ]
- >>401
VC6の場合画面の右下のステータスバーに座標とサイズが表示されてるから それを見ながら、マウスかキーボードで配置する。 [↑↓←→]で位置の変更、[Shift]+[↑↓←→]でサイズ変更。 もしくはリソーススクリプトを直接編集する。
- 403 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 05:11:45 ]
- ダイアログ上にコントロールを大量に貼り付けて等間隔に位置を合わせるtips。
1.テキストエディタで.rcファイルを開く。 2.DIALOG内のCONTROL行をcsvファイルとして保存する。 3.以下省略。
- 404 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 05:36:57 ]
- すごい大量のとき役立ちそうだなw
- 405 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 06:20:10 ]
- ダイアログエディタに位置そろえる機能ついてるけど
- 406 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 15:36:03 ]
- >>403の3.の部分はストリングテーブルを書くときに便利だな。
defineと日本語/英語の文字列が一気に書ける。同時に仕様書も作れて一挙両得。 defineの数値はドラッグすれば1づつ増やせるからバグもでない。
- 407 名前:デフォルトの名無しさん [2007/01/30(火) 23:29:19 ]
- フレームウィンドウとかの OnDestroy について質問です
通常 OnDestroy の中では親クラスの OnDestroy を呼んでいますが、 その親の OnDestroy の直前の部分でメモリ開放処理を行うのは良くないですか? リストに登録されているアイテムを開放したいのですが・・・
- 408 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 23:50:16 ]
- >>407
良くないと思う理由は? リストってリストボックスやリストビューコントロールのこと?
- 409 名前:デフォルトの名無しさん [2007/01/31(水) 00:00:58 ]
- >>408
CListCtrl のことです これに new で生成したオブジェクトを登録?しています そのまま終了するとメモリリークが発生してしまうので、 ウィンドウが破棄される直前に開放しようと思いました それで OnDestroy に追加することにしました 良くないと思った理由は、親クラスの OnDestroy を 呼んでいるところの下にデフォルトで「ここに追加」 的なコメントが入っているからです
- 410 名前:デフォルトの名無しさん [2007/01/31(水) 00:10:13 ]
- CListCtrlが消えるのいつなん?
プログラムが生成→消滅→生成→消滅→・・・ってやってるか 生成→表示→非表示→表示→非表示→・・・消滅ってやってるかでタイミング違ってくるじゃん。 生成したインスタンスを消したいタイミングはいつよ? 最終的に(それがいつだかはアプリにもよるが)インスタンスを確実に消滅さしときゃ問題ねーんだしよ。
- 411 名前:デフォルトの名無しさん [2007/01/31(水) 00:29:46 ]
- リストは起動時から終了時までずっと表示です
終了時に一覧情報を保存して破棄することにしています できるだけ綺麗な(オブジェクト指向的な)ソースコードを 書きたいので、親の OnDestroy の前が正解か後ろが正解か が気になります
- 412 名前:デフォルトの名無しさん mailto:sage [2007/01/31(水) 00:49:58 ]
- >>411
WM_DESTROYを処理してる間は、子ウィンドウは存在している。 ttp://msdn2.microsoft.com/en-us/library/ms632620.aspx リストビューアイテムに設定しているデータを削除するのは、LVN_DELETEITEM, LVN_DELETEALLITEMSでやるといい。
- 413 名前:デフォルトの名無しさん [2007/01/31(水) 00:51:06 ]
- >>412
ありがとうございます! やってみます!
|

|