■MFC相談室 mfc17d.dll■
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/21(火) 10:38:31前スレ
■MFC相談室 mfc16d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1146117893/
0758デフォルトの名無しさん
2007/05/26(土) 16:25:450759デフォルトの名無しさん
2007/05/26(土) 16:59:17小さい画像は1ドットずつじゃないの?
0760デフォルトの名無しさん
2007/05/26(土) 17:00:510761デフォルトの名無しさん
2007/05/26(土) 17:04:240762デフォルトの名無しさん
2007/05/26(土) 17:08:29BitBltとかいう関数ねぇ?
0763デフォルトの名無しさん
2007/05/26(土) 17:09:47みたとこアホの子なので問題の切り分けなんて無理でしょう
0764デフォルトの名無しさん
2007/05/26(土) 17:28:150765デフォルトの名無しさん
2007/05/26(土) 17:41:420766デフォルトの名無しさん
2007/05/26(土) 17:59:200767デフォルトの名無しさん
2007/05/26(土) 18:13:36∧_∧
( ・ω・) <俺にそんなこと言われてもね
( MFC )
./ つ
( / ̄∪
∧_∧
( ・ω・) <どっちかっていうと俺の出番じゃね?
( GDI+)
./ つ
( / ̄∪
∧_∧
( ・ω・) <いやいや俺だろ
(DirectX)
./ つ
( / ̄∪
0768印刷が遅いのですが
2007/05/26(土) 18:15:28そんなことを言ってる貴方たちも、本当は知らないのでしょう?
それとも印刷に関しては企業秘密かなんかですか?
自分が苦心して見つけた方法を、簡単に他人に話したくない気持ちはわかりますよ。
一緒に問題を解決しようという気持ちはないわけですか?
自分が知ってる方法が、最善だという確信があるわけですか?
BitBltを使う方法はもちろん知ってます。
ただ、それだと若干手順が増えますのでね。
0769デフォルトの名無しさん
2007/05/26(土) 18:22:16だから俺がBitBltって教えてやったじゃんw
0770デフォルトの名無しさん
2007/05/26(土) 18:22:160771デフォルトの名無しさん
2007/05/26(土) 18:25:19何様だよお前w
BitBlt抱えて空へ羽ばたけよw
0772デフォルトの名無しさん
2007/05/26(土) 18:26:18適材適所なので、あんたの求めるケースの適切解は内容が判らない限り説明しようが無い。
>それとも印刷に関しては企業秘密かなんかですか?
企業秘密にならない範囲でなら説明するに吝かではない。
>自分が苦心して見つけた方法を、簡単に他人に話したくない気持ちはわかりますよ。
勝手に判られても困る。寧ろ、それが判ると言い張るならもう少し言葉を選べ。
>一緒に問題を解決しようという気持ちはないわけですか?
ないな。
>自分が知ってる方法が、最善だという確信があるわけですか?
いいや、あくまでも適材適所。
>BitBltを使う方法はもちろん知ってます。
>ただ、それだと若干手順が増えますのでね。
増えるから何? 手順が増えてもそれが適切解なら選択すべきでは?
#適切解かどうかは知らんが。
0773印刷が遅いのですが
2007/05/26(土) 18:42:00>>ただ、それだと若干手順が増えますのでね。
>増えるから何? 手順が増えてもそれが適切解なら選択すべきでは?
そうですか。
だらだら、手順が増えていいなら、どんなこともできますよ。
一応、なるべく、簡潔なコードで、よりよい効果を期待してプログラムをしてるわけで、
コードの増えるBitBlt以外にも方法があるかどうか知りたかったのですが、
BitBltが最善なら、それで行くことにしますよ。
0774デフォルトの名無しさん
2007/05/26(土) 18:46:190775デフォルトの名無しさん
2007/05/26(土) 19:09:170776デフォルトの名無しさん
2007/05/26(土) 19:15:190777デフォルトの名無しさん
2007/05/26(土) 19:23:20おお、成長したじゃんw
1ドット書くのにFillSolidRect使ってたアホの言葉とは思えないねw
0778デフォルトの名無しさん
2007/05/26(土) 20:03:39http://sylphys.ddo.jp/upld2nd/manani2/src/1180177396812.jpg
0779デフォルトの名無しさん
2007/05/26(土) 23:43:50だから、ひとつひとつFillRectしたような実装や、大きいBitmapを小さく小分けしてBltしたりとか、
そりゃ小技を使ったよ。
それ、いまでも、ダメなのかな。
0780デフォルトの名無しさん
2007/05/27(日) 00:05:180781デフォルトの名無しさん
2007/05/27(日) 00:29:430782デフォルトの名無しさん
2007/05/30(水) 07:14:120783デフォルトの名無しさん
2007/05/30(水) 07:42:55君の心の中に・・・
0784デフォルトの名無しさん
2007/05/30(水) 09:22:51appmodul.cpp(19): // export WinMain to force linkage to this module
appmodul.cpp(21): extern int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
appmodul.cpp(25): _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
appmodul.cpp(28): // call shared/exported WinMain
appmodul.cpp(29): return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
appterm.cpp(27): // Standard cleanup called by WinMain and AfxAbort
makefile(402): $D\winmain.obj $D\barcore.obj $D\bartool.obj $D\bardlg.obj \
wincore.cpp(3553): // Standard init called by WinMain
winfrm.cpp(762): nCmdShow = pApp->m_nCmdShow; // use the parameter from WinMain
winmain.cpp(18): // Standard WinMain implementation
winmain.cpp(21): int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
alpha\mfc42.prf(961): ?AfxWinMain@@YAHPAUHINSTANCE__@@0PADH@Z
alpha\mfc42u.prf(761): ?AfxWinMain@@YAHPAUHINSTANCE__@@0PAGH@Z
intel\mfc42.def(1341): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z @ 1576 NONAME
intel\mfc42.prf(466): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z
intel\mfc42d.def(949): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PADH@Z @ 1190 NONAME
intel\mfc42u.def(1334): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z @ 1569 NONAME
intel\mfc42u.prf(321): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z
intel\mfc42ud.def(946): ?AfxWinMain@@YGHPAUHINSTANCE__@@0PAGH@Z @ 1187 NONAME
0785デフォルトの名無しさん
2007/06/02(土) 01:03:00VC6.で作ったデフォルトのmfcのプログラムで
メニューからファイルを開こうとすると異常に時間かかる(5秒くらい)
しかも時間かかるのは初回のみでデバッグの時だけ
exeファイル直接実行すると時間も時間もかからずすぐ開ける
エラーも警告も無し
理由がさっぱり解らない。助けて
0786デフォルトの名無しさん
2007/06/02(土) 01:38:020787デフォルトの名無しさん
2007/06/02(土) 09:26:380788デフォルトの名無しさん
2007/06/02(土) 09:49:360789デフォルトの名無しさん
2007/06/02(土) 11:35:540790デフォルトの名無しさん
2007/06/02(土) 13:40:38ソースはvcが生成した奴だから自分は一切
手を加えてない。
>>789
はい、ありがとうございます。
どー考えてもPC自体に原因があんだね。
症例だけを見て同じ人いたらと思いここに書いたが、ふう
なんか解決するにはめんどくさそうなので全部再インスコかな。
0791デフォルトの名無しさん
2007/06/02(土) 13:41:280792デフォルトの名無しさん
2007/06/02(土) 13:43:510793デフォルトの名無しさん
2007/06/02(土) 14:47:52出力ウィンドウに何か出てないか聞いている
0794デフォルトの名無しさん
2007/06/02(土) 16:26:090795デフォルトの名無しさん
2007/06/02(土) 16:27:060796デフォルトの名無しさん
2007/06/02(土) 18:16:08ごめん、出力ウインドウってなんの事?
0797デフォルトの名無しさん
2007/06/02(土) 18:32:580798デフォルトの名無しさん
2007/06/02(土) 18:38:32VS2005なら、メニューの 表示-出力 で表示されるウィンドウの事。
デバッグ時に読み込んだDLLとか、TRACEの出力とか表示されているだろ。
0799デフォルトの名無しさん
2007/06/02(土) 18:53:300800デフォルトの名無しさん
2007/06/02(土) 19:53:43DLL読み込むのに時間がかかったんだよ多分(笑)
でもデバッグしないなら問題ないじゃん、原因や理由を考えるレベルじゃないんだからさ
好きなだけ再インストールでもなんでもしてればぁ
0801デフォルトの名無しさん
2007/06/02(土) 23:55:56出力ってこの下のウインドウの事か。何かって言われても
まあ確かにDLLを沢山ロードしましたって出てる
それくらいで後は
スレッド 0xEE4 終了、終了コード 0 (0x0)。
こんなの。
0802デフォルトの名無しさん
2007/06/03(日) 00:53:24気になったんで動かしてみたら
俺のPCの場合はVC6でこさえてなんもいじってないMFCのプログラム動かしてたらOSごと落ちたw
なんだっけ?これ
なんかアクロバット絡みのファイルオープンダイアログのバグってなかったっけ?
なんか初期化関数おいてやらないと落ちる奴
違うかなぁ・・・なんかあった気がするのは覚えてるんだけど・・・うーん
0803デフォルトの名無しさん
2007/06/03(日) 00:55:25違う症状なので同じ原因かはわからんけど
他のもんもちょっとみてみようかな
いつからこんなんなったんだろう・・・
0804デフォルトの名無しさん
2007/06/03(日) 12:53:50OSごと落ちたんすか、キてますね・・・
アクロバットってあのreaderの事?
確かにあのダイアログ開く時に最初の一回だけだから
コンストラクタのどこかかなとは思ったけど
0805デフォルトの名無しさん
2007/06/03(日) 14:52:26動いてない?
0806デフォルトの名無しさん
2007/06/03(日) 15:30:55コモンダイアログがハングアップします。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200611/06110018.txt
0807デフォルトの名無しさん
2007/06/03(日) 19:29:42そこに載ってるリンク先
http://www.bea.hi-ho.ne.jp/cgi-bin/user/byoko/bnews?f=b&p=32610
がすげー気になるんですけど。
結局何が問題なの…
0808デフォルトの名無しさん
2007/06/03(日) 19:51:56あ、俺(>>802)のはこれだった
なんでハングアップするんだw
0809デフォルトの名無しさん
2007/06/03(日) 21:02:070810デフォルトの名無しさん
2007/06/04(月) 07:49:56アプリのGUIスレッドで例外が発生したら、プログラム全体を出来るだけ
安全に終了させたいと考えております。
いくつかスレッドが動いていて、今現在何個のスレッドを動作させているか
直接は変数等に控えていない状態で、MFC・Win32APIを用いて、全スレッドを
列挙後、強制終了させたいのですが、この列挙する関数が見つかりません。
このような用途に使えそうな関数はあるのでしょうか?
WinXP SP2
VS2005
C++
0811デフォルトの名無しさん
2007/06/04(月) 07:54:330812デフォルトの名無しさん
2007/06/04(月) 08:11:55自分でグローバルな変数にでも保存しておくのがいいんでない?
0813デフォルトの名無しさん
2007/06/04(月) 10:31:16列挙して強制終了がTerminateThreadの事だったら
何もせずシステムに殺してもらうのと大して変わらんと思うぞ
0814デフォルトの名無しさん
2007/06/10(日) 20:25:44そのファイルが削除されるタイミングを検知できれば、
ファイルハンドルを解放しようと思います。
その方法を知っている方いますか?
0815デフォルトの名無しさん
2007/06/10(日) 21:16:180816sage
2007/06/10(日) 22:05:05MFCでないかなぁと思って。
0817814
2007/06/10(日) 23:05:250818デフォルトの名無しさん
2007/06/13(水) 17:31:16UNICODEビルドのdllからMBCSビルドのdllの関数を呼び出す時の
CString型の変換なんですが、MBCSビルド側のDLLに
・名前を設定する関数
・名前を参照する関数
があるとして
名前を設定する場合は
USES_CONVERSION;
CString strName = _T("名前");
mbcsdll->SetName(W2A(strName));
としてNameをANSIに変換して設定できています。
Nameを参照する際にはCString*を渡す必要があるんですが
CString Name;
mbcsdll->GetName(&Name);
この時のNameへのポインタはどのように型変換して渡すんでしょうか?
このままだと参照できませんでした。
変換をどうやったらいいのか解らず弱っています。
0819デフォルトの名無しさん
2007/06/13(水) 17:43:31CStringA NameA;
mbcsdll->GetName(&NameA);
Name = NameA;
でどう?
0820デフォルトの名無しさん
2007/06/13(水) 17:57:22ただCStringAはVC7からのATLではないですか?
自分VC6なんです(=TェT=)
VC6での型変換方法をご存知ないでしょうか
0821デフォルトの名無しさん
2007/06/13(水) 19:11:457だと
typedef ATL::CStringT< wchar_t, StrTraitMFC< wchar_t > > CStringW;
typedef ATL::CStringT< char, StrTraitMFC< char > > CStringA;
typedef ATL::CStringT< TCHAR, StrTraitMFC< TCHAR > > CString;
だからCStringAと書いたんだけど、6のCStringはどういう定義なんだろう。
それのTCHARをcharに置き換えて変数作ればいいと思う。
>818の後、A2W(Name.GetBuffer())はよくないよね。
0822デフォルトの名無しさん
2007/06/13(水) 19:26:17そこんとこ分かってるのかな?
0823デフォルトの名無しさん
2007/06/13(水) 20:30:12う、「MFCオブジェクト」の意識ありませんでした。すいません。
そういえば自分がやるならインターフェースはプリミティブなものにしちゃうなぁ。
0824デフォルトの名無しさん
2007/06/14(木) 23:10:56FindWindowなどで取得した特定の種類のコントロールのウィンドウハンドルを、
それに対応するMFCの「C〜」クラスに割り当てて、
「C〜」クラスの機能関数を使うことはできるのでしょうか?
もしできるようでしたらやり方を教えて欲しいです。
よろしくお願い致します。
0825デフォルトの名無しさん
2007/06/14(木) 23:19:26ウインドウを扱うクラスといったらあれしかないだろ
0826デフォルトの名無しさん
2007/06/15(金) 00:25:25attachとか見てみて
0827デフォルトの名無しさん
2007/06/17(日) 17:46:25ツリーコントロールにイメージリストを設定。
あるタイミングでツリーのフォントサイズを変更するとき
イメージのサイズも変更したい考え、
一度イメージリストをDeleteImageList()で削除し、
再度Createする際にサイズを変更し設定したんですけど
イメージが消えてしまいました。
なにかいい方法はありましたらご教授をお願いします。
0828デフォルトの名無しさん
2007/06/17(日) 18:36:370829デフォルトの名無しさん
2007/06/20(水) 09:13:52最初にサイズ別にCImageList を2つ作って切り替えたいときにCTreeCtrlにSetImageListする。
0830デフォルトの名無しさん
2007/06/20(水) 12:31:24ダイアログ終了後も値を内部で持っておくために、
ダイアログオブジェクトをグローバルで一つだけ持ち続けて、
いろんな箇所からモーダル表示させたいんですけど、
DoModal()の前に親を再指定できる箇所が見当たらないんです。
0831デフォルトの名無しさん
2007/06/20(水) 12:37:280832デフォルトの名無しさん
2007/06/20(水) 17:46:37CWndから派生してるから親はどうとでもなるが
親を変える必然性が解らん
デフォで出来るAboutAppのダイアログにEditBoxとその値用変数を一個追加
ダイアログをグローバル変数にしてMainFrameとAppから呼ぶようにしてみたが普通に動いたし
変数の変は常に保持されていた。デフォなので親はNULL
メッセージを送るなら送りたい相手のハンドルが入手できれば良いわけだし
モーダルだからWindowが残ることもないし
0833デフォルトの名無しさん
2007/06/20(水) 18:55:57メーラのように子のフレームウィンドウを何個も表示するアプリなので、
ダイアログの親をNULLにしたままだと、メインウィンドウの上に出てきてしまうんです。
ダイアログ側からもGetParentFrame()を使って
DoModal()をコールしたフレームウィンドウにアクセスしたいので、
できればダイアログの親をDoModal()時に変更できればと思ってます。
0834デフォルトの名無しさん
2007/06/20(水) 20:07:440835デフォルトの名無しさん
2007/06/20(水) 20:33:28別々のウインドウからDoModalしたらぶつかるんじゃないか?
0836デフォルトの名無しさん
2007/06/20(水) 21:07:40前回指定された情報をそのまま次回も再表示したいので、
ダイアログオブジェクトをグローバルにしておけば
ダイアログ内のメンバをそのまま使い回せると思ったのですが、
おとなしく毎回ダイアログから値を取って別の場所に残しておき、
次の表示時に一つずつ入れ直してしまうべきなのですかね。
>>835
もちろん、モーダル表示中は他のウィンドウも操作不可にしています。
0837デフォルトの名無しさん
2007/06/20(水) 21:27:09マウスを右クリックしたタイミングで特定のプログラム(実装)を
右クリックメニューに追加したいのですがどうしたらできますか?
0838デフォルトの名無しさん
2007/06/20(水) 22:47:33もっと具体的に
0839デフォルトの名無しさん
2007/06/21(木) 11:57:34>マウスを右クリック
どこでだよ。
シェル拡張の話か?
0840デフォルトの名無しさん
2007/06/21(木) 13:48:050841デフォルトの名無しさん
2007/06/21(木) 13:56:050842デフォルトの名無しさん
2007/06/21(木) 15:39:160843デフォルトの名無しさん
2007/06/24(日) 09:10:40AppendMenu, InsertMenu
0844デフォルトの名無しさん
2007/06/27(水) 02:10:10CToolbarを2つ作成し、CFrameWndの右と下に
ドッキングさせると、
┌───────────┬┐
│ ││
│ ││
│ ││
│ ││
│ ││
├───────────┴┤
└────────────┘
のように、下のツールバーが右のツールバーに
かぶさるようにドッキングされますが、
┌───────────┬┐
│ ││
│ ││
│ ││
│ ││
│ ││
├───────────┤│
└───────────┴┘
のように、右のツールバーが下のツールバーの上に
かぶさるようにドッキングすることって可能でしょうか?
0845デフォルトの名無しさん
2007/06/27(水) 05:52:410847デフォルトの名無しさん
2007/06/28(木) 02:01:19↓\→+P
0848デフォルトの名無しさん
2007/06/28(木) 11:53:300849デフォルトの名無しさん
2007/06/28(木) 12:33:130850デフォルトの名無しさん
2007/07/01(日) 05:04:01自分、初級PG(MFC使ったこと無い)ですが
最近入ってきた中途の人が
「MFCは楽、簡単」
って言ってる人が居るんだけどそうなんですか?
MFCって要するに巨大な関数群、ライブラリな訳ですよね?
使い易い関数や便利な関数は沢山あれど
結局はそれをどう使うかですよね?
それは結局標準的なC言語の関数をどう使っていかに組むか
っていうのと変わらないと思うんですけど・・・
それとも自分の知らないMFCの機能が有って
楽で簡単になるんですか?それってC言語の仕様が変わったりするって事ですか?
誰か分かり易く教えてください。
0851デフォルトの名無しさん
2007/07/01(日) 05:31:05いいえ
0852デフォルトの名無しさん
2007/07/01(日) 05:35:59関数群でもクラスライブラリでもない。
何か勘違いしてると思うのでMSDN調べるといい。
0853デフォルトの名無しさん
2007/07/01(日) 06:19:09楽するためにウィザードがついている
VCからMFCを取ったらほとんど何の価値もないから
無償版として提供されている。
0854デフォルトの名無しさん
2007/07/01(日) 08:26:09C言語の標準関数で、文字列の末尾から5文字を取得する関数を書いてみろ
MFCなら簡単にできるぞ
0855デフォルトの名無しさん
2007/07/01(日) 08:39:22sprintf(buf, "%.5s", strlen(str) < 5 ? str : str + strlen(str) - 5);
// MFCはC++なんだから較べるならstd::stringじゃね?
0856デフォルトの名無しさん
2007/07/01(日) 10:06:03文字列を扱う目的だけでMFC使うやつはあんまりいないと思う
■ このスレッドは過去ログ倉庫に格納されています