■MFC相談室 mfc17d.dll■
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/21(火) 10:38:31前スレ
■MFC相談室 mfc16d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1146117893/
0413デフォルトの名無しさん
2007/01/31(水) 00:51:06ありがとうございます!
やってみます!
0414デフォルトの名無しさん
2007/01/31(水) 00:52:14だったらOnDestroyは関係ないんじゃない?
つか、親のOnDestroy後にCListCtrlにアクセスされたら(するのか?)死ぬじゃない。
親のデストラクタでdeleteしとけばいいんじゃね?やってみ、やってみ。やってみたら結果報告ヨロ
0415デフォルトの名無しさん
2007/01/31(水) 00:53:07個人的には、Documentで扱っているデータなら
CHogeDocument::OnCloseDocument() or OnSaveDocument()
ViewのみでやってるならCHogeView::PostNcDestroy()でやると思う。
CMainFrameにCListCtrlのデータ持たせるとViewからデータへの
アクセスが面倒じゃない?
0416デフォルトの名無しさん
2007/01/31(水) 01:08:09ありがとうございます!
いろいろと試してみます!
0417デフォルトの名無しさん
2007/01/31(水) 08:40:38closeしたらウインドウ関係ないから心配いらん
>綺麗な(オブジェクト指向的な)ソースコード
普通はデストラクタで解放
0418デフォルトの名無しさん
2007/02/01(木) 00:21:49クリック時とダブルクリック時とで処理を分けたいと思っています
しかし、ダブルクリック時には先に必ずクリックイベントが
発生してしまってうまくいきません
NM_DBLCLK の直前に NM_CLICK が発生するのを
防ぐことはできませんか?
0419デフォルトの名無しさん
2007/02/01(木) 00:53:14コントロールの身になって考えれば、ユーザーのクリックがシングルなのかダブルの1発目
なのかの判断はできない。
シングルクリック時の処理開始をしばらく待ってみる以外手はないと思う。
0420デフォルトの名無しさん
2007/02/01(木) 01:11:47レスありがとうございます
つまり、NM_DBLCLK 前には NM_CLICK が
絶対に発生してしまうということですね
何か良い手はないですかね・・・
0421デフォルトの名無しさん
2007/02/01(木) 01:20:02シングルの処理。来たらダブルの処理するだけ。
VBのサンプルではタイマー使ってるみたい。
http://support.microsoft.com/kb/109865/ja
0422デフォルトの名無しさん
2007/02/01(木) 09:45:30のショートカットだから、シングルクリックのあとにダブルクリックがきても
何も困らないんだけどな。
ダブルクリックを変なことに使おうとするからこうなる
0423デフォルトの名無しさん
2007/02/03(土) 19:33:32書籍の「標準講座MFC」って今でも役に立つでしょうか?
MFC6.0ってちょっと古いみたいですが、最新のバージョン(MFC8.0?)と
大きく違うところってあるのでしょうか
0424デフォルトの名無しさん
2007/02/03(土) 20:20:00でなければ止めとけ。
0425デフォルトの名無しさん
2007/02/03(土) 20:42:57新しいUI関連のクラスがいくつか無いだけで、基本はそんなに変わってないと思うけど。
0426デフォルトの名無しさん
2007/02/03(土) 21:18:50ソースは公開されてる
0427デフォルトの名無しさん
2007/02/03(土) 21:57:59ツールバーのボタンに文字列のみ表示したいのですが、
TBBUTTON::iBitmapにNULLを指定しただけでは
イメージ(アイコン?)のスペースの分のスペースが空き、
そこから先から文字列が描画されてしまいます。
どうすればいんでしょうか?
0428デフォルトの名無しさん
2007/02/03(土) 22:40:060429427
2007/02/03(土) 22:47:49なるほど!
CToolBar::SetSizes()の中にやり方が書いてありました。
助かったよ!ありがとう!
0430デフォルトの名無しさん
2007/02/04(日) 09:09:06どれを導入すればいいのだろう?
無料で配布されている Visual C++ 2005 Express は MFC は入ってないんですよね?
それとも、あと少し待って次のバージョンが出たときのほうがいいんでしょうかね。
0431デフォルトの名無しさん
2007/02/04(日) 09:26:03そりゃおめ、vista上で動くモン買えや。
いま、XPでなにやら揃えるのは無駄でしょ?
0432デフォルトの名無しさん
2007/02/04(日) 11:30:15「>>」を表示し、「>>」を押せば残りのメニューが表示されるようにしたいのですが、
そういったコントロールがあるのでしょうか?
どなたかヒントだけでもわかる方おられましたら教えてやって下さい。
0433デフォルトの名無しさん
2007/02/04(日) 11:39:000434デフォルトの名無しさん
2007/02/04(日) 12:05:060435432
2007/02/04(日) 12:31:54「>>」はChevronって言うんですか用語自体知りませんでした。
Chevronでぐぐればすぐにでてきました。
教えていただかなければ数日ははまるとこでした、
ありがとうございます。
0436デフォルトの名無しさん
2007/02/04(日) 14:14:260437デフォルトの名無しさん
2007/02/04(日) 22:58:24CFont オブジェクトを使い終わったら、最初にデバイス コンテキストからフォントを選択して、それから、CFont オブジェクトを削除します。
ってあるけどデストラクタで解放してくれないの?
解放しないままアプリ終了したらリソースリークするのかな?
0438デフォルトの名無しさん
2007/02/04(日) 23:01:29よばなきゃ問題ないのか???
よくわからん
0439デフォルトの名無しさん
2007/02/04(日) 23:06:49DCで直接使用しない場合は問題ないのか???
MSさんさっぱりわかりませんorz
0440デフォルトの名無しさん
2007/02/04(日) 23:19:290441デフォルトの名無しさん
2007/02/05(月) 00:11:26デバイスコンテキストに選択されたままだと解放されないと思った。
0442デフォルトの名無しさん
2007/02/05(月) 17:27:27http://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エディットボックスに入力したパスを CFileDialog で開く、という処理を作ってまして、
入力したパスの存在チェックを CFileFind で行っています。
ですが、C:\ や、\\hoge\ 等、ドライブのルートを指定した場合に存在を検出できず、
前回開いたフォルダがFileDialog で開かれてしまい、困っています。
どなたか良い方法をご存知でしたら、ご教授ください。
よろしくお願い致します。
0445デフォルトの名無しさん
2007/02/06(火) 02:55:00"\\"はReplaceで別の記号に置き換えるとかして、
その後で"\"が1個だけならルート
0446デフォルトの名無しさん
2007/02/06(火) 04:19:44なんか意味あんじゃね?
0447デフォルトの名無しさん
2007/02/06(火) 06:07:070448デフォルトの名無しさん
2007/02/06(火) 06:14:370449デフォルトの名無しさん
2007/02/06(火) 06:39:44ルートディレクトリが検出されないのは、内部で呼び出しているAPI側(FindFirstFile)の仕様。
CFileFindの仕様としては書かれてないかも。
FindFirstFileの説明にはルートディレクトリの属性を取得するにはGetFileAttributesを使えと書いてある。
0450デフォルトの名無しさん
2007/02/06(火) 06:42:230451デフォルトの名無しさん
2007/02/08(木) 17:40:42”ツールボックスからメニューをペタペタ”をすればいいらしい
しかし、MFCを使わなければならないことが判明
win32アプリにツールボックスからメニューをペタペタはできない
Wwindowsフォームで作るとできる
しかしForm.h、Form.resxとか変なファイルが中身見ると分けわかんなくなってるしWinmainがないぞ
C++とMFCは別物なのか!!
2005express
0452デフォルトの名無しさん
2007/02/08(木) 18:10:06それは.NET frameworkじゃね
0453デフォルトの名無しさん
2007/02/08(木) 18:12:300454デフォルトの名無しさん
2007/02/12(月) 00:31:01予定では後一週間あるので連休明けはブラックボックステストと
ロゴの作成にかかりたいのですが、VC6 MFCのリソースエディータって
しょぼいですね(^^;フリーでお勧めのリソース編集ソフト知ってたら
教えてくださいオナガイシマス
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:44■ このスレッドは過去ログ倉庫に格納されています