トップページ⇒tech
1001コメント335KB

■MFC相談室 mfc17d.dll■

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/21(火) 10:38:31
Microsoft Foundation Classライブラリ専用スレです。

前スレ
■MFC相談室 mfc16d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1146117893/
0455デフォルトの名無しさん2007/02/12(月) 03:21:06
>>454
ロゴの作成にリソースエディタってお前馬鹿じゃないのか?
0456デフォルトの名無しさん2007/02/12(月) 08:22:50
いるんだよ、ソースコードもロゴ画像もIDEで編集しないと気がすまない馬鹿って奴が。
0457松井康明2007/02/12(月) 10:05:18
>>456
バカバカ言ってないで教えてやれよ
0458デフォルトの名無しさん2007/02/12(月) 10:22:31
ロゴの作成をMFCスレで質問するのは脳に異常があるんだろうな
進行が進まないうちに早めに治療を受けたほうがいいよ
0459デフォルトの名無しさん2007/02/12(月) 11:40:34
>>457
教えるも何も、「画像を作る」って聞いたら藻前様は何を使うと仰るのですか?
#ふつー、画像編集ソフトを使うと思うのだが。
0460デフォルトの名無しさん2007/02/12(月) 21:25:22
別にいいんじゃね、リソースエディタでも。センスがあれば。
0461デフォルトの名無しさん2007/02/13(火) 05:43:02
>リソースエディタでロゴ作成業務 8H
やべぇw脳勃起してきたw
0462デフォルトの名無しさん2007/02/15(木) 10:25:44
印刷プレビューをダイアログベースのプログラム(VC6.0)で実現するにはどうすればよいのでしょうか?
検索するとSDI/MDIのプログラムばかりで途方に暮れています。
0463デフォルトの名無しさん2007/02/15(木) 11:57:02
MFCのソース見れ
0464デフォルトの名無しさん2007/02/15(木) 12:47:54
印刷プレビューのアーキテクチャ
http://msdn2.microsoft.com/ja-jp/library/edak6tf8(VS.80).aspx
0465デフォルトの名無しさん2007/02/19(月) 13:44:30
りえ子、結婚してくれ
04664652007/02/19(月) 14:17:23
自己解決しました
0467デフォルトの名無しさん2007/02/19(月) 14:54:28
おめでとう
0468デフォルトの名無しさん2007/02/19(月) 20:27:55
いや、うまくいったら、自己解決とは言わない気が…。
0469デフォルトの名無しさん2007/02/19(月) 22:17:09
自己解決 = 脳内解決
だな
0470デフォルトの名無しさん2007/02/22(木) 14:48:31
誰か、知っている方、教えてもらえませんか。
リストの表示で、拡張スタイルにLVS_EX_HEADERDRAGDROPを指定し
仮想リストビューでアイテムの表示を行っております。
そして、カラムのドラッグ&ドロップで順番を入れ替える事が出来るのですが、
順番を入れ替えると、カラムのアイテム表示が、新しい表示と古い表示の両方が
出てしまいます。なぜでしょう?
------------------------
Colum1 | Colum2 | Colum3
------------------------
1 | 2 | 3
1 | 2 | 3

カラムの順番を入れ替えて、幅を広げると
古い表示が出てくる。
------------------------
Colum1 | Colum3 | Colum2
------------------------
1 | 3 2 | 2
1 | 3 2 | 2


VS.2005でMFCをスタティックでリンクに設定しております。

0471デフォルトの名無しさん2007/02/22(木) 15:02:59
123→132は判った。
123→312ではどうなる?
04724702007/02/22(木) 15:20:09
>>471
312ではColum3の表示が"3 1 2"となりました。
04734702007/02/22(木) 15:21:42
>>471
あ、言葉が足りませんでした。
Colum3のアイテム表示が"3 1 2"です。
0474デフォルトの名無しさん2007/02/22(木) 15:53:06
なんとなく、メモリ管理が失敗している悪寒。
04754702007/02/22(木) 16:19:39
原因が判りました。
スタイルにLVS_OWNERDRAWFIXEDが指定されていました。
MFCのROWLIST サンプルを元に、変更を加えていったのですが、
CListViewExで、LVS_OWNERDRAWFIXEDが指定されておりました。
レスをしてくれた方がには、お礼申し上げます。
0476デフォルトの名無しさん2007/02/22(木) 20:26:53
MFCを使って、できるだけ簡単にHTMLメールを
ダイアログベースで表示したいのですが、
どんな方法があるでしょうか?

0477デフォルトの名無しさん2007/02/22(木) 21:13:27
もうちょっと仕様検討してから来てください
0478デフォルトの名無しさん2007/02/22(木) 22:17:26
>>477
できるだけ簡単にできる方法に合わせて仕様を決めようかと思って。
0479デフォルトの名無しさん2007/02/22(木) 22:51:31
メールを表示するソフトなんて聞いたことがない
0480デフォルトの名無しさん2007/02/23(金) 10:17:31
HTMLを表示(レンダリング)するコントロールを探せ
0481デフォルトの名無しさん2007/02/23(金) 10:19:12
よくあるペイントソフトのような複数の画像表示ウィンドウに
共通のパレットダイアログを持つようなプログラムを作ろうと考えています。
MDIで生成すると、例えばファイル→開くを選択すると
ドキュメント以外にビューも生成されて、ビューが持っているパレットダイアログ(モードレス)
までが複数生成されてしまいますが、これを阻止するにはどのようにすればよいのでしょうか?
0482デフォルトの名無しさん2007/02/23(金) 10:26:24
パレットをビューに持たせてるのが間違い。
0483デフォルトの名無しさん2007/02/23(金) 10:33:26
>>482
確かにおっしゃるとおりです。
ウィンドウを切り替えたときにパレットの内容をアクティブなウィンドウの
情報に変えたいので、そのあたりの情報などを管理できる部分にまとめようと思うのですが
この場合、パレットを持たせるのはMainFrameでしょうか?
0484デフォルトの名無しさん2007/02/23(金) 21:47:33
すいません教えてください。
VC++6.0です。
ツールバーのボタンに対してプロパティからプロンプトという項目を設定すると実行時にボタンの説明文が出せますよね。
あれをダイアログのボタンやエディットボックスにも出したいのですがどうすればいいでしょうか。
0485デフォルトの名無しさん2007/02/23(金) 21:54:39
つ CToolTipCtrl
04864842007/02/23(金) 22:23:14
即レスありがとうございます。
調べてみます。
0487デフォルトの名無しさんNGNG?2BP(222)
>>483
CDialogBar
0488デフォルトの名無しさん2007/02/26(月) 18:13:00
自分自身のProductVersion の読み出し方法は?

色々探したのですが、どうも自分自身のProductVersionを
読み出す方法が見つかりません。

自身の実行ファイルのフルパスを探し出し.... という方法は
見つけましたが、何だかなぁという感じで。

CString::LoadString のような感じで読み出す方法はないのでしょうか?
0489デフォルトの名無しさん2007/02/26(月) 18:53:34
ストリングテーブルになかったか?
0490デフォルトの名無しさん2007/02/26(月) 18:54:56
なんだ質問者が答えてるじゃないか
キチガイの独り言はやめほしいな
0491デフォルトの名無しさん2007/02/26(月) 19:18:29
>>489
> ストリングテーブルになかったか?

ストリングテーブルには登録されてないよ。
0492デフォルトの名無しさん2007/02/26(月) 19:19:07
>>490
> なんだ質問者が答えてるじゃないか
> キチガイの独り言はやめほしいな

CString::LoadString で読み出せるのか?
IDは、何を設定するの?
0493デフォルトの名無しさん2007/02/26(月) 19:43:48
何だかなぁ
0494デフォルトの名無しさん2007/02/26(月) 19:53:29
わざわざ教えてやっても何だかなぁと言われたら馬鹿だし
0495デフォルトの名無しさん2007/02/26(月) 20:02:23
>>488
ttp://tgws.fromc.jp/prog/versioninfo/
0496デフォルトの名無しさん2007/02/26(月) 20:04:24
FindResourceから始めれば出来なくは無いな。
04974832007/02/26(月) 21:52:54
>>487
CDialogBarを利用してみました。ソースは以下の通りです。

(MainFrm.cpp)
if (!m_wndDlgBar.Create(this, IDD_DIALOG_HOGE,
CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR)){
TRACE0("ダイアログバーの作成に失敗しました。\n");
return -1;
}

しかし、ダイアログを移動するとダイアログのあった場所が再描画されません。
CBRS_ALIGN_TOPを指定しているせいでしょうか?
また、サイズがリソースで作成したものと変わっていたり(横いっぱいに広がっている。ALIGN_TOPの影響?)
しています。

ttp://www.alpha-net.ne.jp/users2/uk413/vc/VCT_DlgBar.html
このようなドッキングされた状態の作成方法はいろいろ紹介されているのを確認しましたが、
通常のモーダレスダイアログのような振る舞いをさせる方法が分かりません。(任意の座標に表示させるとか)
どういった方法をそればいいのでしょうか?
0498デフォルトの名無しさん2007/02/26(月) 22:02:08
ダイアログバーのサンプルならMSDNについてる
0499デフォルトの名無しさん2007/02/26(月) 23:07:39
ウインドウの動かしかたも知らんのか
0500デフォルトの名無しさん2007/02/27(火) 11:53:59
こうですか?
うまくいきました!!
0501MDI今日始めます2007/02/27(火) 18:18:27
すみません。ど素人ですm(__)m

MDIのプログラム今日始めました。ウィザードでMDIのプロジェクトを作成後、
クラスビューでOnDraw(CDC* pDC)という関数を発見し、これで描画できると
思いましたが、子ウィンドウを新規作成するたびに同じ描画を繰り返すだけ。
子ウィンドウ毎に違う描画をしたいのですが、どうしたらいいんでしょう?

メインのソースたどろうにも、CWinApp::OnFileNewはライブラリになっていて
ソースの実体が無くどうしていいのかわかりません(ToT
0502デフォルトの名無しさん2007/02/27(火) 18:40:27
その違う描画、は何を持って違うことになるのか
それによってOnDrawでの動作を変えりゃいいだろ
0503デフォルトの名無しさんNGNG?2BP(222)
同じ描画になるのは同じ描画しかしないコードを書いているから。
CView::OnDrawでCDocumentのインスタンスを識別してそれぞれで描画するようにしれ。
0504デフォルトの名無しさん2007/02/28(水) 01:39:33
ListViewの初期化方法、削除方法を教えてください。
0505デフォルトの名無しさん2007/02/28(水) 13:40:52
>>504
MSDN読め
0506デフォルトの名無しさん2007/02/28(水) 22:14:14
教えてください。
VC++6.0でMDIです。
MDIの子ウィンドウとしてCFormViewを継承したクラスが2つあります。
このクラスを仮にA,Bとします。
Aのウィンドウのボタンが押されたときにBのウィンドウの
エディットボックスの内容を更新したいのですがどうすればよいでしょうか。
MDIGetActiveとGetNextWindowをつかってウィンドウをたどっていき
if(pWnd->IsKindOf(RUNTIME_CLASS(B)))で判定すればBのウィンドウの
ポインタが取れると思ったのですが、このif文がなぜか真になりません。
何がまずいのでしょうか。
0507デフォルトの名無しさん2007/02/28(水) 23:27:13
>>506
MFCの問題っちゅーかプログラミング能力の問題じゃねぇの?それ。
まあ、問題の切り分けができないってのもわからないでもないが・・・
そういう機能はAとB2つに影響を与えることができるクラスに付けなきゃ駄目だよ。
AやBはその機能を呼ぶだけ。
>>203-205の問題と似てネーか?
0508デフォルトの名無しさん2007/03/01(木) 09:30:44
>>506

そもそも基本ができていない
やろうとしていることの前に、基本から勉強しなおせ
0509デフォルトの名無しさん2007/03/01(木) 15:05:40
基本的な質問なのです、よろしくお願いします。
VS2005でMFCアプリケーション(ダイアログベース)を作ったのですが。
新規にダイアログベースを作成してそのまま何も加工せずにセットアップ
ウィザードを使ってsetup.exeを作って他のPCでインストールしようとしたら
.NET framwork2.0をするように指示する画面がでました。
これは、VS2005で開発したものはframework2.0が必要?それとも
インストーラーがframework2.0が必要?なんですか?
frameworkが必要ないとおもってMFCにしたのですが、framework不要に
する設定ありますか?よろしくお願いします。
0510デフォルトの名無しさん2007/03/01(木) 15:07:08
訂正です。
x  .NET framwork2.0をするように指示する画面がでました。
○ .NET framwork2.0をインストールするように指示する画面がでました。
0511デフォルトの名無しさん2007/03/01(木) 15:45:02
CHtmlDialog使ってる?
0512デフォルトの名無しさん2007/03/01(木) 17:30:44
それはじめてききましたので意識的にはつかってないかと
0513デフォルトの名無しさん2007/03/01(木) 18:51:13
んー、普通に作ればいらんけどな。
とりあえず、新規プロジェクトで何もしないでウィザードだけでできあがったダイアログで
試したらどうなる?
0514デフォルトの名無しさん2007/03/01(木) 18:51:54
セットアップがあやしいな
0515デフォルトの名無しさん2007/03/01(木) 21:06:55
『標準講座MFC6.0―Visual C++による効率的なWindowsプログラミング』
という本を以前読んで、大変勉強になったのを覚えています。
無くしたので、他の本と一緒に買おうかと思うのですが、どうせならVC++.net
関連の本がいいと思っています。サンプルも欲しいです。
何かお勧めはありますでしょうか?

0516デフォルトの名無しさん2007/03/01(木) 22:50:39
VC++2003 のリソースエディタで作成したポップアップメニューについて質問です

やりたいことは簡単でポップアップメニューのサブメニュー(横に開いたやつ)を
状況(その時の変数値など)に応じてグレーアウト(Enable が FALSE の状態)したいだけです

OnUpdateXX(メニュー名) で pCmdUI->Enable(FALSE) することで
普通のポップアップメニューをグレーアウトすることはできました
しかし、ポップアップメニューのサブメニューに同じようなことをやってもうまくいくません
サブメニューを選択して初めて OnUpdateXX と OnXX が走っているようです
どうにかして同じようにサブメニューをグレーアウトさせることはできないでしょうか?
0517デフォルトの名無しさん2007/03/01(木) 22:54:35
スレ違い。書籍スレへどうぞ。
0518デフォルトの名無しさん2007/03/01(木) 23:19:43
そんなことおっしゃらずに教えて頂けないでしょうか?
0519デフォルトの名無しさん2007/03/02(金) 00:42:30
>518
ここはMFCスレ。.netやりたいならそういうスレで聞けば?MFCなら標準講座でいいだろうし。
0520デフォルトの名無しさん2007/03/02(金) 09:27:14
なんで.NETだと思うんだ?
0521デフォルトの名無しさん2007/03/02(金) 12:20:53
>>516
OnUpdate〜に頼らず、自分でグレーアウトさせる。
0522デフォルトの名無しさん2007/03/02(金) 14:04:34
VC++6.0使っています。
MFCでAPIである
SetWindowText(hWnd ,"(@_@)");
を使いたいのですが、MFC上でこの関数を実行すると
ウィンドウハンドルの引数が省略されてしまい、コンパイルできません。
MFC上で、任意にウィンドウハンドルを指定してSetWindowText関数を
使う方法はありますでしょうか?

0523デフォルトの名無しさん2007/03/02(金) 14:09:24
スコープ演算子
0524デフォルトの名無しさん2007/03/02(金) 14:20:29
>>522

C++ の基礎からやりなおせ
0525デフォルトの名無しさん2007/03/02(金) 14:32:43
>>523
>>524
ありがとうございます。
勉強しながらなので、
お教えいただいたヒントを元に
答えを探ってみたいと思います。
0526デフォルトの名無しさん2007/03/02(金) 14:39:48
>>523
>>524
どこに対してスコープを設定すればよいのか
見当もつかなかったので、試しに関数の頭にスコープ演算子だけつけてみたら
なぜかうまくいきました。
0527デフォルトの名無しさん2007/03/02(金) 14:55:29
>>522
>MFCでAPIである 
WindowsのAPIなのかMFCクラスのメンバー関数なのかはっきりしる。
0528デフォルトの名無しさん2007/03/02(金) 15:03:02
すでに解決済
0529デフォルトの名無しさん2007/03/04(日) 15:31:06
CListBoxなどのコントロールでの文字列の扱いは
TCHAR(LPCTSTRとか)になってますが
実行時にマルチバイトでCListBoxを使うか
UNICODEで使うかを選択することはできないものなんですか?
0530デフォルトの名無しさん2007/03/04(日) 15:33:45
マクロはコンパイル時に展開されるから
マクロ使わないで使い分ければいい
05315292007/03/04(日) 15:45:56
>>530
すいません。その辺知識不足なんですが、
Win32APIで例えるとANSI版とUNICODE版があって、
それを使い分けれるってことですか?
0532デフォルトの名無しさん2007/03/05(月) 10:54:26
いいえ、MBCS版とUNICODE版です。
0533デフォルトの名無しさん2007/03/05(月) 12:45:59
知識はいらない
MFCのソース見るだけ
0534デフォルトの名無しさん2007/03/05(月) 13:15:40
ライブラリが違うな
05355292007/03/05(月) 21:33:00
ソース見たところ、
MBCS版とUNICODE版を同時に使える仕様にはなってない感じですが…。
よくわからんです。

とりあえず素直に別々にコンパイルして
本体を98系とNT系に分けて用意する方が楽っぽいですね。
0536デフォルトの名無しさん2007/03/06(火) 10:23:29
実行時に切り替える必要はない
0537デフォルトの名無しさん2007/03/08(木) 19:12:36
>>509 の人です。
VS2005で作ったMFCプログラムを同様にVS2005のセットアップウィザードを作ったsetup.exe
で実行してFramework2.0をインストすれというメッセージが出たものです。
結論からいうと、このsetup.exeを使わないで~~~.exeだけをコピーして動作させたら動きました。
MFCはスタティックリンクしました。ということで容疑者はセットアップウィザードらしいことが
判明。まあ使わなければいいという短絡的な結論になりました。
0538デフォルトの名無しさん2007/03/08(木) 21:00:41
あほか
容疑者はおまえだよ
セットアッププロジェクトをきちんと作れば何の問題もない

0539デフォルトの名無しさん2007/03/09(金) 00:20:07
MFC にtemplateを組み合わせたフレームワーックってあります?

例えばCCOMBOBOXにSetItemDataPtr使ってある型を足してく場合とかに
をやってくれるようなtemplate関数とかが用意してあるやつとか

MFCのコントロールとtemplateを組み合わせるのって普通はしないものなんでしょうか?
上記のある型を設定した後にプログラムからSetItemDataptrで設定した型のある値を指定したら
SetCurSel あたりで指定した項目に対応するやつを選択状態にしてくれるようなやつとか

0540デフォルトの名無しさん2007/03/09(金) 00:25:10
ダイアログ以外だとポトぺタってできないんですか?
0541デフォルトの名無しさん2007/03/09(金) 00:36:03
ポトペタしたいなら.NETの方がいいよ
0542デフォルトの名無しさん2007/03/09(金) 03:03:47
VB6の間違いだろ
0543デフォルトの名無しさん2007/03/10(土) 00:47:51
FormViewは?
0544デフォルトの名無しさん2007/03/10(土) 01:38:01
VC++のエディタのようなウィンドウを作ろうとしています。
(テキスト表示の右側に●とか矢印が出るウィンドウ)
それで、自分なり考えたのですが、

1. CEditView からビューを作成。
2. OnCreateで左側のマージンを空ける。
3. OnDrawとかで●とか矢印を書く。

でも、そもそもOnDrawが呼ばれません。
他のアプローチがあれば教えていただけないでしょうか?
ちなみに当方WindowsのGUIプログラミングはド素人です。
0545デフォルトの名無しさん2007/03/10(土) 06:23:12
CEditViewの中はCviewにeditコントロールを貼り付けてあるだけで
位置調整に関係するのはCEditView::CalcWindowRectあたりか
0546デフォルトの名無しさん2007/03/10(土) 10:52:35
>>544
CEditView なんぞ使ったらだめ。
CView に全部自前で実装しろ。
どのみち、ど素人にできるテーマではない。
その前にいろいろ勉強してから出直して来い。

0547デフォルトの名無しさん2007/03/10(土) 13:31:21
>>544
とりあえず参考までに。
ttp://www.vcppclub.com/samples/vwdoc/p_leditor/leditor.html
05485442007/03/11(日) 00:45:00
>>545-547
レスありがとうございます。
>>545
こんなメンバがあったのですね。しらなんだ orz
勉強になります。
>>546
ごめんなさい。今勉強中で行き詰まったので、ちょっと甘えてみました。
>>547
てか、行番号のところに●とか矢印描画したらやりたいことそのままではないですか!!
まだ、ちゃんとソース見られてませんが、これからじっくり追って行きたいと思います。
ありがとうございます。

良スレ発見!!
05495482007/03/17(土) 14:50:17
            __,,..、、- - - .、、...,,___
       ,,、‐''"~ ̄            ̄``''‐、、
     /                      \
    /                         ヽ
   /                           ヽ
   /  / ~~` '' ‐- 、、 ,,__   __ ,,..、、 -‐ '' "~~\  ヽ
   |  /    __           ̄       __   ヽ  |
  .|  {  ´   ‐- ....__    __... -‐   `   } .|
  .|  〉,,・^'' - .,,      ~  i ~    __,,.- ^`・、.〈  |
./ ̄|  /,/~ヽ、  `'' ‐--‐ ,.| 、‐-‐'' "~   _ノ~\,ヽ | ̄ヽ
| (` | / ヽ,,_____`‐-、_、..,,___ノ八ヽ___,,.._-‐_'"´___,, ノ ヽ .|'´) |
| }.| ./'   \二二・二../ ヽ  / ヽ、二・二二/  'ヽ | { |
.| //| .|          / |  |. \         | |ヽヽ|
.| .| | .|        /    |  |.    \       | | | .|
|ヽ.| |      /     .|  |.     ヽ      .| .|./ .|
 |  .| |     /      |  |        ヽ     |  | /   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ヽ .| |    /       .|  |       ヽ    |  | /  |  用件を
  .ヽ.| |    /     '二〈___〉二`       ヽ   |  |./  <
    | |          `-;-′         |  |     |  聞こうか…
     iヽ|.      ,,... -‐"`‐"`'‐- 、、     |/i       \_________
     |  ヽ     /...---‐‐‐‐‐----.ヽ    /  .|
     |   ヽ.    ,, -‐ ''"~ ~"'' ‐- 、    /   |
    .|    ヽ         !          ./   .|
    ,,|     ヽ.         |        ./     |、
    |\.     ヽ            /     /.|
   .|.  \.      ヽ、____   ___/    /   .|
   '     `            ̄ ̄       ´     '
0550デフォルトの名無しさん2007/03/18(日) 01:58:13
CDialogBarのダイアログで
List Controlを利用しているのですが
カラムを初期化するタイミングはどれがよろしいのでしょうか?

CDialogの場合はOnInitDialogがあったんですが
CDialogBarには無いみたいで
0551デフォルトの名無しさん2007/03/18(日) 10:07:39
>>550
Create()の中で、CDialogBar::Create()呼び出し後にやってます
0552デフォルトの名無しさん2007/03/19(月) 23:04:42
CPropertySheetEx/CPropertyPageEx(PSH_WIZARD97)を利用して、
各ページの上部ヘッダ部に画像付きのウィザードを作成しています。

Windows Vista上で、この方法で作成したウィザードを実行すると、
なぜか各ページの上部の画像が表示されなくなってしまいます。
(Windows XPでは問題なく表示されます)

これを回避する方法はありますでしょうか?
0553デフォルトの名無しさん2007/03/20(火) 10:47:48
Vistaを見捨てる
0554デフォルトの名無しさん2007/03/21(水) 03:11:06
Vistaの互換性の問題なのか、>>552のプログラムがトンチキなのか
■ このスレッドは過去ログ倉庫に格納されています