■MFC相談室 mfc17d.dll■
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/21(火) 10:38:31前スレ
■MFC相談室 mfc16d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1146117893/
0455デフォルトの名無しさん
2007/02/12(月) 03:21:06ロゴの作成にリソースエディタってお前馬鹿じゃないのか?
0456デフォルトの名無しさん
2007/02/12(月) 08:22:500458デフォルトの名無しさん
2007/02/12(月) 10:22:31進行が進まないうちに早めに治療を受けたほうがいいよ
0459デフォルトの名無しさん
2007/02/12(月) 11:40:34教えるも何も、「画像を作る」って聞いたら藻前様は何を使うと仰るのですか?
#ふつー、画像編集ソフトを使うと思うのだが。
0460デフォルトの名無しさん
2007/02/12(月) 21:25:220461デフォルトの名無しさん
2007/02/13(火) 05:43:02やべぇw脳勃起してきたw
0462デフォルトの名無しさん
2007/02/15(木) 10:25:44検索するとSDI/MDIのプログラムばかりで途方に暮れています。
0463デフォルトの名無しさん
2007/02/15(木) 11:57:020464デフォルトの名無しさん
2007/02/15(木) 12:47:54http://msdn2.microsoft.com/ja-jp/library/edak6tf8(VS.80).aspx
0465デフォルトの名無しさん
2007/02/19(月) 13:44:300466465
2007/02/19(月) 14:17:230467デフォルトの名無しさん
2007/02/19(月) 14:54:280468デフォルトの名無しさん
2007/02/19(月) 20:27:550469デフォルトの名無しさん
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:59123→312ではどうなる?
0474デフォルトの名無しさん
2007/02/22(木) 15:53:060475470
2007/02/22(木) 16:19:39スタイルにLVS_OWNERDRAWFIXEDが指定されていました。
MFCのROWLIST サンプルを元に、変更を加えていったのですが、
CListViewExで、LVS_OWNERDRAWFIXEDが指定されておりました。
レスをしてくれた方がには、お礼申し上げます。
0476デフォルトの名無しさん
2007/02/22(木) 20:26:53ダイアログベースで表示したいのですが、
どんな方法があるでしょうか?
0477デフォルトの名無しさん
2007/02/22(木) 21:13:270478デフォルトの名無しさん
2007/02/22(木) 22:17:26できるだけ簡単にできる方法に合わせて仕様を決めようかと思って。
0479デフォルトの名無しさん
2007/02/22(木) 22:51:310480デフォルトの名無しさん
2007/02/23(金) 10:17:310481デフォルトの名無しさん
2007/02/23(金) 10:19:12共通のパレットダイアログを持つようなプログラムを作ろうと考えています。
MDIで生成すると、例えばファイル→開くを選択すると
ドキュメント以外にビューも生成されて、ビューが持っているパレットダイアログ(モードレス)
までが複数生成されてしまいますが、これを阻止するにはどのようにすればよいのでしょうか?
0482デフォルトの名無しさん
2007/02/23(金) 10:26:240483デフォルトの名無しさん
2007/02/23(金) 10:33:26確かにおっしゃるとおりです。
ウィンドウを切り替えたときにパレットの内容をアクティブなウィンドウの
情報に変えたいので、そのあたりの情報などを管理できる部分にまとめようと思うのですが
この場合、パレットを持たせるのはMainFrameでしょうか?
0484デフォルトの名無しさん
2007/02/23(金) 21:47:33VC++6.0です。
ツールバーのボタンに対してプロパティからプロンプトという項目を設定すると実行時にボタンの説明文が出せますよね。
あれをダイアログのボタンやエディットボックスにも出したいのですがどうすればいいでしょうか。
0485デフォルトの名無しさん
2007/02/23(金) 21:54:390486484
2007/02/23(金) 22:23:14調べてみます。
CDialogBar
0488デフォルトの名無しさん
2007/02/26(月) 18:13:00色々探したのですが、どうも自分自身のProductVersionを
読み出す方法が見つかりません。
自身の実行ファイルのフルパスを探し出し.... という方法は
見つけましたが、何だかなぁという感じで。
CString::LoadString のような感じで読み出す方法はないのでしょうか?
0489デフォルトの名無しさん
2007/02/26(月) 18:53:340490デフォルトの名無しさん
2007/02/26(月) 18:54:56キチガイの独り言はやめほしいな
0491デフォルトの名無しさん
2007/02/26(月) 19:18:29> ストリングテーブルになかったか?
ストリングテーブルには登録されてないよ。
0492デフォルトの名無しさん
2007/02/26(月) 19:19:07> なんだ質問者が答えてるじゃないか
> キチガイの独り言はやめほしいな
CString::LoadString で読み出せるのか?
IDは、何を設定するの?
0493デフォルトの名無しさん
2007/02/26(月) 19:43:480494デフォルトの名無しさん
2007/02/26(月) 19:53:290495デフォルトの名無しさん
2007/02/26(月) 20:02:23ttp://tgws.fromc.jp/prog/versioninfo/
0496デフォルトの名無しさん
2007/02/26(月) 20:04:240497483
2007/02/26(月) 21:52:54CDialogBarを利用してみました。ソースは以下の通りです。
(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:080499デフォルトの名無しさん
2007/02/26(月) 23:07:390500デフォルトの名無しさん
2007/02/27(火) 11:53:59うまくいきました!!
0501MDI今日始めます
2007/02/27(火) 18:18:27MDIのプログラム今日始めました。ウィザードでMDIのプロジェクトを作成後、
クラスビューでOnDraw(CDC* pDC)という関数を発見し、これで描画できると
思いましたが、子ウィンドウを新規作成するたびに同じ描画を繰り返すだけ。
子ウィンドウ毎に違う描画をしたいのですが、どうしたらいいんでしょう?
メインのソースたどろうにも、CWinApp::OnFileNewはライブラリになっていて
ソースの実体が無くどうしていいのかわかりません(ToT
0502デフォルトの名無しさん
2007/02/27(火) 18:40:27それによってOnDrawでの動作を変えりゃいいだろ
CView::OnDrawでCDocumentのインスタンスを識別してそれぞれで描画するようにしれ。
0504デフォルトの名無しさん
2007/02/28(水) 01:39:330505デフォルトの名無しさん
2007/02/28(水) 13:40:52MSDN読め
0506デフォルトの名無しさん
2007/02/28(水) 22:14:14VC++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:13MFCの問題っちゅーかプログラミング能力の問題じゃねぇの?それ。
まあ、問題の切り分けができないってのもわからないでもないが・・・
そういう機能はAとB2つに影響を与えることができるクラスに付けなきゃ駄目だよ。
AやBはその機能を呼ぶだけ。
>>203-205の問題と似てネーか?
0508デフォルトの名無しさん
2007/03/01(木) 09:30:44そもそも基本ができていない
やろうとしていることの前に、基本から勉強しなおせ
0509デフォルトの名無しさん
2007/03/01(木) 15:05:40VS2005でMFCアプリケーション(ダイアログベース)を作ったのですが。
新規にダイアログベースを作成してそのまま何も加工せずにセットアップ
ウィザードを使ってsetup.exeを作って他のPCでインストールしようとしたら
.NET framwork2.0をするように指示する画面がでました。
これは、VS2005で開発したものはframework2.0が必要?それとも
インストーラーがframework2.0が必要?なんですか?
frameworkが必要ないとおもってMFCにしたのですが、framework不要に
する設定ありますか?よろしくお願いします。
0510デフォルトの名無しさん
2007/03/01(木) 15:07:08x .NET framwork2.0をするように指示する画面がでました。
○ .NET framwork2.0をインストールするように指示する画面がでました。
0511デフォルトの名無しさん
2007/03/01(木) 15:45:020512デフォルトの名無しさん
2007/03/01(木) 17:30:440513デフォルトの名無しさん
2007/03/01(木) 18:51:13とりあえず、新規プロジェクトで何もしないでウィザードだけでできあがったダイアログで
試したらどうなる?
0514デフォルトの名無しさん
2007/03/01(木) 18:51:540515デフォルトの名無しさん
2007/03/01(木) 21:06:55という本を以前読んで、大変勉強になったのを覚えています。
無くしたので、他の本と一緒に買おうかと思うのですが、どうせならVC++.net
関連の本がいいと思っています。サンプルも欲しいです。
何かお勧めはありますでしょうか?
0516デフォルトの名無しさん
2007/03/01(木) 22:50:39やりたいことは簡単でポップアップメニューのサブメニュー(横に開いたやつ)を
状況(その時の変数値など)に応じてグレーアウト(Enable が FALSE の状態)したいだけです
OnUpdateXX(メニュー名) で pCmdUI->Enable(FALSE) することで
普通のポップアップメニューをグレーアウトすることはできました
しかし、ポップアップメニューのサブメニューに同じようなことをやってもうまくいくません
サブメニューを選択して初めて OnUpdateXX と OnXX が走っているようです
どうにかして同じようにサブメニューをグレーアウトさせることはできないでしょうか?
0517デフォルトの名無しさん
2007/03/01(木) 22:54:350518デフォルトの名無しさん
2007/03/01(木) 23:19:430519デフォルトの名無しさん
2007/03/02(金) 00:42:30ここはMFCスレ。.netやりたいならそういうスレで聞けば?MFCなら標準講座でいいだろうし。
0520デフォルトの名無しさん
2007/03/02(金) 09:27:140521デフォルトの名無しさん
2007/03/02(金) 12:20:53OnUpdate〜に頼らず、自分でグレーアウトさせる。
0522デフォルトの名無しさん
2007/03/02(金) 14:04:34MFCでAPIである
SetWindowText(hWnd ,"(@_@)");
を使いたいのですが、MFC上でこの関数を実行すると
ウィンドウハンドルの引数が省略されてしまい、コンパイルできません。
MFC上で、任意にウィンドウハンドルを指定してSetWindowText関数を
使う方法はありますでしょうか?
0523デフォルトの名無しさん
2007/03/02(金) 14:09:240524デフォルトの名無しさん
2007/03/02(金) 14:20:29C++ の基礎からやりなおせ
0525デフォルトの名無しさん
2007/03/02(金) 14:32:43>>524
ありがとうございます。
勉強しながらなので、
お教えいただいたヒントを元に
答えを探ってみたいと思います。
0526デフォルトの名無しさん
2007/03/02(金) 14:39:48>>524
どこに対してスコープを設定すればよいのか
見当もつかなかったので、試しに関数の頭にスコープ演算子だけつけてみたら
なぜかうまくいきました。
0527デフォルトの名無しさん
2007/03/02(金) 14:55:29>MFCでAPIである
WindowsのAPIなのかMFCクラスのメンバー関数なのかはっきりしる。
0528デフォルトの名無しさん
2007/03/02(金) 15:03:020529デフォルトの名無しさん
2007/03/04(日) 15:31:06TCHAR(LPCTSTRとか)になってますが
実行時にマルチバイトでCListBoxを使うか
UNICODEで使うかを選択することはできないものなんですか?
0530デフォルトの名無しさん
2007/03/04(日) 15:33:45マクロ使わないで使い分ければいい
0531529
2007/03/04(日) 15:45:56すいません。その辺知識不足なんですが、
Win32APIで例えるとANSI版とUNICODE版があって、
それを使い分けれるってことですか?
0532デフォルトの名無しさん
2007/03/05(月) 10:54:260533デフォルトの名無しさん
2007/03/05(月) 12:45:59MFCのソース見るだけ
0534デフォルトの名無しさん
2007/03/05(月) 13:15:400535529
2007/03/05(月) 21:33:00MBCS版とUNICODE版を同時に使える仕様にはなってない感じですが…。
よくわからんです。
とりあえず素直に別々にコンパイルして
本体を98系とNT系に分けて用意する方が楽っぽいですね。
0536デフォルトの名無しさん
2007/03/06(火) 10:23:290537デフォルトの名無しさん
2007/03/08(木) 19:12:36VS2005で作ったMFCプログラムを同様にVS2005のセットアップウィザードを作ったsetup.exe
で実行してFramework2.0をインストすれというメッセージが出たものです。
結論からいうと、このsetup.exeを使わないで~~~.exeだけをコピーして動作させたら動きました。
MFCはスタティックリンクしました。ということで容疑者はセットアップウィザードらしいことが
判明。まあ使わなければいいという短絡的な結論になりました。
0538デフォルトの名無しさん
2007/03/08(木) 21:00:41容疑者はおまえだよ
セットアッププロジェクトをきちんと作れば何の問題もない
0539デフォルトの名無しさん
2007/03/09(金) 00:20:07例えばCCOMBOBOXにSetItemDataPtr使ってある型を足してく場合とかに
をやってくれるようなtemplate関数とかが用意してあるやつとか
MFCのコントロールとtemplateを組み合わせるのって普通はしないものなんでしょうか?
上記のある型を設定した後にプログラムからSetItemDataptrで設定した型のある値を指定したら
SetCurSel あたりで指定した項目に対応するやつを選択状態にしてくれるようなやつとか
0540デフォルトの名無しさん
2007/03/09(金) 00:25:100541デフォルトの名無しさん
2007/03/09(金) 00:36:030542デフォルトの名無しさん
2007/03/09(金) 03:03:470543デフォルトの名無しさん
2007/03/10(土) 00:47:510544デフォルトの名無しさん
2007/03/10(土) 01:38:01(テキスト表示の右側に●とか矢印が出るウィンドウ)
それで、自分なり考えたのですが、
1. CEditView からビューを作成。
2. OnCreateで左側のマージンを空ける。
3. OnDrawとかで●とか矢印を書く。
でも、そもそもOnDrawが呼ばれません。
他のアプローチがあれば教えていただけないでしょうか?
ちなみに当方WindowsのGUIプログラミングはド素人です。
0545デフォルトの名無しさん
2007/03/10(土) 06:23:12位置調整に関係するのはCEditView::CalcWindowRectあたりか
0546デフォルトの名無しさん
2007/03/10(土) 10:52:35CEditView なんぞ使ったらだめ。
CView に全部自前で実装しろ。
どのみち、ど素人にできるテーマではない。
その前にいろいろ勉強してから出直して来い。
0547デフォルトの名無しさん
2007/03/10(土) 13:31:21とりあえず参考までに。
ttp://www.vcppclub.com/samples/vwdoc/p_leditor/leditor.html
0548544
2007/03/11(日) 00:45:00レスありがとうございます。
>>545
こんなメンバがあったのですね。しらなんだ orz
勉強になります。
>>546
ごめんなさい。今勉強中で行き詰まったので、ちょっと甘えてみました。
>>547
てか、行番号のところに●とか矢印描画したらやりたいことそのままではないですか!!
まだ、ちゃんとソース見られてませんが、これからじっくり追って行きたいと思います。
ありがとうございます。
良スレ発見!!
0549548
2007/03/17(土) 14:50:17,,、‐''"~ ̄  ̄``''‐、、
/ \
/ ヽ
/ ヽ
/ / ~~` '' ‐- 、、 ,,__ __ ,,..、、 -‐ '' "~~\ ヽ
| / __  ̄ __ ヽ |
.| { ´ ‐- ....__ __... -‐ ` } .|
.| 〉,,・^'' - .,, ~ i ~ __,,.- ^`・、.〈 |
./ ̄| /,/~ヽ、 `'' ‐--‐ ,.| 、‐-‐'' "~ _ノ~\,ヽ | ̄ヽ
| (` | / ヽ,,_____`‐-、_、..,,___ノ八ヽ___,,.._-‐_'"´___,, ノ ヽ .|'´) |
| }.| ./' \二二・二../ ヽ / ヽ、二・二二/ 'ヽ | { |
.| //| .| / | |. \ | |ヽヽ|
.| .| | .| / | |. \ | | | .|
|ヽ.| | / .| |. ヽ .| .|./ .|
| .| | / | | ヽ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ .| | / .| | ヽ | | / | 用件を
.ヽ.| | / '二〈___〉二` ヽ | |./ <
| | `-;-′ | | | 聞こうか…
iヽ|. ,,... -‐"`‐"`'‐- 、、 |/i \_________
| ヽ /...---‐‐‐‐‐----.ヽ / .|
| ヽ. ,, -‐ ''"~ ~"'' ‐- 、 / |
.| ヽ ! ./ .|
,,| ヽ. | ./ |、
|\. ヽ / /.|
.|. \. ヽ、____ ___/ / .|
' `  ̄ ̄ ´ '
0550デフォルトの名無しさん
2007/03/18(日) 01:58:13List Controlを利用しているのですが
カラムを初期化するタイミングはどれがよろしいのでしょうか?
CDialogの場合はOnInitDialogがあったんですが
CDialogBarには無いみたいで
0551デフォルトの名無しさん
2007/03/18(日) 10:07:39Create()の中で、CDialogBar::Create()呼び出し後にやってます
0552デフォルトの名無しさん
2007/03/19(月) 23:04:42各ページの上部ヘッダ部に画像付きのウィザードを作成しています。
Windows Vista上で、この方法で作成したウィザードを実行すると、
なぜか各ページの上部の画像が表示されなくなってしまいます。
(Windows XPでは問題なく表示されます)
これを回避する方法はありますでしょうか?
0553デフォルトの名無しさん
2007/03/20(火) 10:47:480554デフォルトの名無しさん
2007/03/21(水) 03:11:06■ このスレッドは過去ログ倉庫に格納されています