■MFC相談室 mfc17d.dll■

このエントリーをはてなブックマークに追加
946デフォルトの名無しさん:2007/07/13(金) 15:10:21
つーか、>>939で解決、、、元質問者の勘違いでFAなのでは
947936:2007/07/13(金) 16:15:39
CEdit::LineLengthがMBCSならばバイト数が返り、UNICODEなら文字数が返るのが普通なのは分かったんですが、
それでもなぜうちだとMBCSにも関わらず文字数が返るのかが分からなかったんです。
いろいろ調べたら、どうやらXPスタイルに問題があるようでした。
XPのSP2(もしかしたら他も)でビジュアルスタイルを適用していると、エディットボックスの挙動が変わるらしいです。
ビジュアルスタイルを外してテストしたらちゃんとバイト数が返ってきました。
でも古臭いのはイヤなので、改行コードやらなにやら自分で取得して一行単位の処理したいと思います。
一日中悩みました。
948936:2007/07/13(金) 16:20:41
>>945
ソースまで見てくれてありがとうございました。
僕も見ましたが随分簡単なソースだったんですね。
949デフォルトの名無しさん:2007/07/13(金) 16:42:27
Editコントロールは行単位で読み書きすると時間かかるから
読みたい行数が多い時はGetLine使わない方がいい
だからGetLine使わずに行処理する方法も考えることになる
950デフォルトの名無しさん:2007/07/13(金) 16:48:07
だけどGetLineは行の正確なバイト数は知らなくてもいいだろ
バッファは大目に用意しとけばいいし
エディットコントロールの最大を超えることはないし
951デフォルトの名無しさん:2007/07/13(金) 17:13:03
その発想はないわw
952デフォルトの名無しさん:2007/07/14(土) 19:57:23
すいませんが質問です
CDialogBar内のコンボボックスでリターンキーを押下したときに
イベントを発生させたいのですが、
どうやってCDialogBar内のコンボボックスのリターンキー押下の
メッセージ拾えばいいですか?
953デフォルトの名無しさん:2007/07/14(土) 20:30:20
>>952は自決しました
PreTranslateMessageでできました
スレ汚しスマソ
954デフォルトの名無しさん:2007/07/15(日) 00:58:02
スレが血塗れに!
955デフォルトの名無しさん:2007/07/17(火) 10:44:55
侍だな
956デフォルトの名無しさん:2007/07/20(金) 18:04:45
今までMFCでダイアログベースのプログラムしか組んだことがありません
この度MDIのプログラムを作りたいのですが、SDIやMDIの場合リソースファイルを
自分で書かないといけないものなのですか?
ダイアログベースの場合はツールボックスからD&Dして作っていて簡単だったんですが
不便ですよね
957デフォルトの名無しさん:2007/07/20(金) 18:34:55
MDIで何を作りたいの?
FormViewとか知らんの?
958デフォルトの名無しさん:2007/07/20(金) 18:45:23
お恥ずかしい限りです、会社ではシリアル関係の実装ばかりやっていて
およそSDIやMDIは知らなくても出来たのでFormViewとか全くの無知です
やりたい事はMDIベースのダイアログからボタンを押したら
グラフのダイアログ(ビューかな?)やテキスト入力の出来るダイアログを出すことです
959デフォルトの名無しさん:2007/07/20(金) 19:51:41
掲示板で聞かないとわからないようなことじゃないし
普通に勉強すればいいよ
960デフォルトの名無しさん:2007/07/20(金) 19:57:09
>>959
サンクス
>>958の書込み読んでFormViewを検索して、SDIでもMDIでも新しいプロジェクトの作成から
基底クラスを良く考えて選べば出来そうですね余りにも同じようなプログラムばかり
組んだり改造しているんで世間知らずでしたww、よってこの質問は取り下げます
961デフォルトの名無しさん:2007/07/21(土) 06:25:55
しね
もうくるな
962デフォルトの名無しさん:2007/07/22(日) 01:38:55
そんな初心者追っ払うほどの話かなぁ・・・
MDIの話でもドキュメントテンプレートの理解までもってってくれる
入門書はみたことないしドキュメントテンプレート理解できないと結構ハマルと思うんだ、俺。
963デフォルトの名無しさん:2007/07/22(日) 03:23:14
MDIってアプリの余白部分が無駄食ってしょうがないと思ってるの漏れだけ?
SDIやダイアログonlyのアプリで複数インスタンス立ち上げ可能な創りの方が合理的だろ
964デフォルトの名無しさん:2007/07/22(日) 13:37:32
何で自分だけと思うんだろう・・・
965初代スレの>>1:2007/07/23(月) 22:18:45
このスレまだあったのかw

俺はとっくの昔にMFCなんてクズライブラリは見限って
C#とオブジェクト指向で楽チンなプログラミングライフを
送っているというのにお前らときたら大変だなw

同情を禁じ得ない。
966デフォルトの名無しさん:2007/07/23(月) 22:41:14
いや、昔からの人は今はほとんど同じようなもんじゃない?
このスレにいるのは回答側にまわってるだけさ。
967デフォルトの名無しさん:2007/07/24(火) 00:40:15
独自のDDVとDDXを定義するにはどうしたらよいのでしょうか?

CEditとかはWizardだとCStringとかにしか定義できません。

参考ページとかでもよいので教えてください。
968デフォルトの名無しさん:2007/07/24(火) 01:00:20
すいませんほかにも

UpdateDataではすべてが更新されてしまいますが
コントロールを指定して一つ一つValidateするにはどうしたらよいでしょうか?

Failを呼び出すとメッセージボックスが出てきてしまいますが
これを独自のエラー表示とするにはどうしたらよいでしょうか?
(たとえばToolTipとかLavelに表示)
969デフォルトの名無しさん:2007/07/24(火) 08:34:41
UpdateDataのソース読んだらわかりそうなものだけど、MSDNの解説読んだ?

>DDX_ プロシージャと DDV_ プロシージャの書き方、
>ClassWizard を拡張して独自のルーチンを使う方法についても説明します。
970デフォルトの名無しさん:2007/07/26(木) 03:19:30
MFCってもう終わりなの?
VC6.0使いつづけて6年・・・
統合環境の中では軽い方だし最高なのに
971デフォルトの名無しさん:2007/07/26(木) 20:59:33
MFCはともかく、VC6.0は終わりでいいと思う。
972デフォルトの名無しさん:2007/07/26(木) 22:01:28
秀丸作者がVC5使ってるんじゃなかったっけ?
973デフォルトの名無しさん:2007/07/26(木) 22:51:16
おれも
974デフォルトの名無しさん:2007/07/26(木) 23:00:28
VC2002がすげー糞だったから、VC6.0を使い続けている人が多そうだな
俺的にはVC2005が割と良かったからそろそろバージョンアップしてもいいと思うが
975デフォルトの名無しさん:2007/07/26(木) 23:41:03
2005 Expressと.NET Frameworkでいい気がしてきた
976デフォルトの名無しさん:2007/07/27(金) 05:33:38
.NET使うならC#でいいだろ
どう考えても
977デフォルトの名無しさん:2007/07/29(日) 21:50:54
VS2005MFCでダイアログベースのプログアムです、メインのダイアログのボタンを押すと、
別のダイアログが現れますそのダイアログにはリストボックス、OKボタン、キャンセルボタンが張り付けてあります、
そのリストボックスに、継承関係の無い別クラスから、ファイルを読み出しながら
SendMessage関数でデータを送出してリストボックスに表示させたいのですが可能でしょうか?
978デフォルトの名無しさん:2007/07/29(日) 22:00:09
日本語でおk

非同期で処理するなら、別スレッドでファイルを読みつつ、
ダイアログ側はタイマーで随時その内容を取り込むって感じだな。
979デフォルトの名無しさん:2007/07/29(日) 22:13:08
>>978サンクスです
非同期で行うとデータの取りこぼしとか起きないでしょうか?
SendMessage関数のならデータを投げて戻り値も見てるから大丈夫なのかな?
980デフォルトの名無しさん:2007/07/29(日) 22:25:11
何がわからなくて質問してるかわっぱりわからん
たまたま思いついた方法が可能かどうかということ?
漠然と思いついたこと書かれてもイメージつかめない
981デフォルトの名無しさん:2007/07/29(日) 22:33:46
MFCでSendMessage使うことなんかある?
apiを直に呼ぶ場合は別ね
982デフォルトの名無しさん:2007/07/29(日) 22:35:06
>>980
すみません曖昧で、データを投げるダイアログのハンドルの取得方法が
分かんなくて困っています、あとその上に貼っているリストボックスのハンドルの
取得方法も教えていただけないでしょうか、宜しくお願いします
983デフォルトの名無しさん:2007/07/29(日) 22:44:51
>>981
MFCではSendMessageは使わないものなの、となると
MFCでは一般的にはどんな風に行うのでしょうか?
984デフォルトの名無しさん:2007/07/29(日) 23:46:50 0
>>981
お前どしろうとだな
985デフォルトの名無しさん:2007/07/30(月) 00:10:26
>>982
>データを投げるダイアログのハンドルの取得方法
メインダイアログに問い合わせる
(全く他所からなら AfxGetMainWnd()->SendMessage()とかで )

>その上に貼っているリストボックスのハンドルの取得方法
リストボックス貼っているダイアログに、これまたSendMessageで問い合わせる
986デフォルトの名無しさん:2007/07/30(月) 05:49:47
32bit vistaのVS2005 stdで組んでいます。
OnNewDocument()でメッセージを表示したいのですが、コンパイル時に定義がない旨の
エラーが出てます。何が悪いのでしょうか。

該当部分は、こんなコードです。
CHogeDoc::OnNewDocument(){
if (中略
AfxMessageBox("ここでファイルを読み込みます"); //定義がどうこう言われてエラーが出る。
return TRUE;
}

表示されるエラーです。
hogedoc.cpp(42): error C2665: 'AfxMessageBox' : 2 オーバーロードのどれも、すべての引数の型を変換できませんでした
afxwin.h(5031): 'int AfxMessageBox(LPCTSTR,UINT,UINT)' の可能性があります。
afxwin.h(5033):または 'int AfxMessageBox(UINT,UINT,UINT)'

ちなみに、AfxMessageBox("ここでファイルを読み込みます",MB_OK)もダメでした。
987デフォルトの名無しさん:2007/07/30(月) 08:20:04
TEXTマクロかL使えば?
988デフォルトの名無しさん:2007/07/30(月) 08:31:42
>983
普通はCDialogとCListBox 使うと思う
989デフォルトの名無しさん:2007/07/30(月) 20:49:33
そういう話ではない
990デフォルトの名無しさん:2007/07/31(火) 01:38:15
CBitmapについての質問です。
VC2005、WinXPProを使用しています。

BITMAP stBitmap;
::ZeroMemory(&stBitmap, sizeof(stBitmap));
stBitmap.bmBits = pBuf;    //ビットマップデータ(これはあってることを確認してます。)
stBitmap.bmBitsPixel = 24;
stBitmap.bmPlanes = 24;
stBitmap.bmWidth = nWidth;
stBitmap.bmHeight = nHeight;

CBitmap* pBitmap = new CBitmap();
VERIFY(pBitmap->CreateBitmapIndirect(&stBitmap));
return pBitmap;

ってな感じの関数を作って動かしているのですが、VERIFYのところで、とまってしまいます。
つまり、CreateBitmapIndirectが失敗しているらしいのです。
どうして、失敗しているのか確認する手段はないでしょうか?

よろしくお願いします。
991986:2007/07/31(火) 06:09:36
>>987 サンクス
992デフォルトの名無しさん:2007/07/31(火) 06:19:23
>>990
>http://www.umekkii.jp/data/computer/file_format/bitmap.cgi
プレーン数とかなんで24にしてるの?常に1だよ
あんまり関係ないかもしれんがw
993デフォルトの名無しさん:2007/07/31(火) 10:24:28
あれっ?

麻雀格闘倶楽部のスレじゃないの?
994デフォルトの名無しさん:2007/07/31(火) 10:31:29
plane=24はすげーな。
16色の時はbppが1でplaneが4のやつがあったなあ・・・
995デフォルトの名無しさん
今更だがCControlBar派生のカスタムコントロールバーができたヽ(´∀`)ノ
なんでも入るしマウスでサイズ変更も自在うひょ
.・・・やっぱ.NETのが楽だな、重いけど(゚д゚)