トップページ⇒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/
04294272007/02/03(土) 22:47:49
>>428
なるほど!
CToolBar::SetSizes()の中にやり方が書いてありました。
助かったよ!ありがとう!
0430デフォルトの名無しさん2007/02/04(日) 09:09:06
今、Visual C++ 6.0 を使ってるのだが、開発環境をバージョンアップしようとしたら
どれを導入すればいいのだろう?

無料で配布されている Visual C++ 2005 Express は MFC は入ってないんですよね?

それとも、あと少し待って次のバージョンが出たときのほうがいいんでしょうかね。
0431デフォルトの名無しさん2007/02/04(日) 09:26:03
>>430
そりゃおめ、vista上で動くモン買えや。
いま、XPでなにやら揃えるのは無駄でしょ?
0432デフォルトの名無しさん2007/02/04(日) 11:30:15
IEのメニューの用に画面に収まりきらないメニューがある場合は
「>>」を表示し、「>>」を押せば残りのメニューが表示されるようにしたいのですが、
そういったコントロールがあるのでしょうか?
どなたかヒントだけでもわかる方おられましたら教えてやって下さい。
0433デフォルトの名無しさん2007/02/04(日) 11:39:00
軍人や警官の袖に付いている山形の袖章のことをいうのだそうです(多分)。
0434デフォルトの名無しさん2007/02/04(日) 12:05:06
USECHEVRONあたりで探せば?
04354322007/02/04(日) 12:31:54
>>434
「>>」はChevronって言うんですか用語自体知りませんでした。
Chevronでぐぐればすぐにでてきました。
教えていただかなければ数日ははまるとこでした、
ありがとうございます。
0436デフォルトの名無しさん2007/02/04(日) 14:14:26
フランス車に詳しければ直ぐに判るんだがな。
0437デフォルトの名無しさん2007/02/04(日) 22:58:24
CFont::CreateFontとかCFont::CreateFontIndirectって
CFont オブジェクトを使い終わったら、最初にデバイス コンテキストからフォントを選択して、それから、CFont オブジェクトを削除します。
ってあるけどデストラクタで解放してくれないの?

解放しないままアプリ終了したらリソースリークするのかな?
0438デフォルトの名無しさん2007/02/04(日) 23:01:29
CClientDC::SelectObject
よばなきゃ問題ないのか???
よくわからん
0439デフォルトの名無しさん2007/02/04(日) 23:06:49
エディットボックス内のフォントを変更すのみで
DCで直接使用しない場合は問題ないのか???

MSさんさっぱりわかりませんorz
0440デフォルトの名無しさん2007/02/04(日) 23:19:29
SetFontで
0441デフォルトの名無しさん2007/02/05(月) 00:11:26
>>437
デバイスコンテキストに選択されたままだと解放されないと思った。
0442デフォルトの名無しさん2007/02/05(月) 17:27:27
CHtmlViewについてお聞きしたいのですが
http://www.microsoft.com/japan/msdn/columns/webteam/webteam02052001.aspx
ここを参考にしてタブではないブラウザを作成したのですがこの通りに記述しても
JAVAスクリプトで行っているブラウザのリサイズが正常に動きません。

テスト用に適当に選んだサイトですが
http://www3.ocn.ne.jp/~motiya/java/sample-4/window_choice1.htm
ここのsmall windowを押してもフレームのサイズが変更されません。
RecalcLayout等してもダメでした。メインフレームが正しくリサイズされる
方法をどなかた教えて頂けないでしょうか。

環境
VC6.0 WindowsXp SP2
0443デフォルトの名無しさん2007/02/05(月) 20:47:25
|あいう |^|
|えおか| | |
| | |
| | |
5| | |
| | |
| リッチエディット   | |
| | |
| | |
10| | |
| | |
| | |
| | |
| | |
15|--------------------------|↓|

スクロールバー

こんな感じの画面を作ることになったのですが
右のスクロールバーと左の行数のコントロール?(何でもいい)で
同期をとりたいのですがどのようにしたらよいのでしょうか?
なにかヒントでもありましたらご教授をお願いいたします。
環境:VC++2005 MFC
0444デフォルトの名無しさん2007/02/06(火) 01:38:15
すみません。CFileFind について、みなさんのお知恵を貸してください。
エディットボックスに入力したパスを CFileDialog で開く、という処理を作ってまして、
入力したパスの存在チェックを CFileFind で行っています。

ですが、C:\ や、\\hoge\ 等、ドライブのルートを指定した場合に存在を検出できず、
前回開いたフォルダがFileDialog で開かれてしまい、困っています。

どなたか良い方法をご存知でしたら、ご教授ください。
よろしくお願い致します。
0445デフォルトの名無しさん2007/02/06(火) 02:55:00
単独で現れる\記号の数をカウントすればいいんじゃないかい
"\\"はReplaceで別の記号に置き換えるとかして、
その後で"\"が1個だけならルート
0446デフォルトの名無しさん2007/02/06(火) 04:19:44
つか、そのまえになんでCFileFindってそんな厨仕様なの?
なんか意味あんじゃね?
0447デフォルトの名無しさん2007/02/06(火) 06:07:07
試してないけどCFileDialogで存在しないパスは指定できないような気がするけど
0448デフォルトの名無しさん2007/02/06(火) 06:14:37
ああそうか指定したパスをCFileDialogで開きたいのか
0449デフォルトの名無しさん2007/02/06(火) 06:39:44
>>444
ルートディレクトリが検出されないのは、内部で呼び出しているAPI側(FindFirstFile)の仕様。
CFileFindの仕様としては書かれてないかも。

FindFirstFileの説明にはルートディレクトリの属性を取得するにはGetFileAttributesを使えと書いてある。
0450デフォルトの名無しさん2007/02/06(火) 06:42:23
ところでみんなフルコントロールの拒否とかってどうやって判断してる?
0451デフォルトの名無しさん2007/02/08(木) 17:40:42
メニューをoffice風にするため調べたら
”ツールボックスからメニューをペタペタ”をすればいいらしい
しかし、MFCを使わなければならないことが判明

win32アプリにツールボックスからメニューをペタペタはできない
Wwindowsフォームで作るとできる
しかしForm.h、Form.resxとか変なファイルが中身見ると分けわかんなくなってるしWinmainがないぞ
C++とMFCは別物なのか!!


2005express
0452デフォルトの名無しさん2007/02/08(木) 18:10:06
>>451
それは.NET frameworkじゃね
0453デフォルトの名無しさん2007/02/08(木) 18:12:30
知らないうちにC++/CLIを使っている。いかんこれはゲイツの罠だ。
0454デフォルトの名無しさん2007/02/12(月) 00:31:01
初めて任されたツールが遂に完成シマスタ^^
予定では後一週間あるので連休明けはブラックボックステストと
ロゴの作成にかかりたいのですが、VC6 MFCのリソースエディータって
しょぼいですね(^^;フリーでお勧めのリソース編集ソフト知ってたら
教えてくださいオナガイシマス
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
すでに解決済
■ このスレッドは過去ログ倉庫に格納されています