■MFC相談室 mfc17d.dll■
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/21(火) 10:38:31前スレ
■MFC相談室 mfc16d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1146117893/
0043デフォルトの名無しさん
2006/11/25(土) 13:15:51ありがとうございました
この件に関しての問題は解決しました
次はDLL側にある子画面を呼び出し側(MDI)で表示/利用することに
挑戦しようと思います
また質問に来るかもしれませんが、よろしくお願いします
0044デフォルトの名無しさん
2006/11/26(日) 14:17:52このクラスで256色以上のビットマップを
貼り付けるにはどうしたらよいのでしょうか?
リソースエディタ上は16色しかでません。
何かうまい方法ありましたらご教授願いたいです。
004544
2006/11/26(日) 14:33:200046デフォルトの名無しさん
2006/11/26(日) 16:02:20http://www.google.co.jp/search?q=CToolBar+256+&ie=Shift_JIS&oe=Shift_JIS&hl=ja
256bitmap使うだけなら簡単だけど、あれこれカスタマイズしようとすると結構大変。
004744
2006/11/26(日) 16:32:370048デフォルトの名無しさん
2006/11/26(日) 18:01:17class CMyList : public CListView
としたのですけど、以下の一連の処理、
OnPreparePrinting()
OnBeginPrinting()
OnPrepareDC()
OnPrint()
OnEndPrinting()
が、ファイルメニューの印刷プレビュー項目を選択すると呼び出されるのですが、
同じく、印刷項目からですと何の反応もありません。
標準的な機能として呼び出されるのが当たり前と思っていたので、
ちょっと困ってしまっています。
OnPrint()に印刷処理を記述してプリンターに出力したいのですが、
どのようにしたら良いのかご存知の方、教えていただけませんか。
環境は.NET2003+XP SP.2です。
(後々のメンテナンスのことも考えて、
あまりトリッキーなことをしないで実装できるのが理想です。。。)
0049デフォルトの名無しさん
2006/11/27(月) 21:30:49試していただきたいんですけど、
・SDIアプリケーションをデフォルトのままビルド
・デバッグ開始してツールバーをフローティングさせる
・そのツールバーをセカンダリモニタ上に移動
とやったあと、そのツールバーをサイズ変更できますか?
自分の環境(VC6.0)ではセカンダリモニタ上ではサイズ変更できないんですけど…。
0050デフォルトの名無しさん
2006/11/27(月) 22:15:40このダイアログの上で他のウィンドウをぐりぐり動かすとダイアログが再描画された時に
背景が部分的に欠けてしまう(ダイアログの地の色が出る)事があるんですが、
これってどんな理由が考えられるでしょうか。
005150
2006/11/27(月) 22:27:390052デフォルトの名無しさん
2006/11/27(月) 22:40:320053デフォルトの名無しさん
2006/11/27(月) 23:30:570054デフォルトの名無しさん
2006/11/28(火) 00:13:23標準的なCViewのサブクラスは印刷時に
CView::OnFilePrint();を呼び出している。
ただしCListViewから呼び出しても印刷できるかどうか
わからん。
0055デフォルトの名無しさん
2006/11/28(火) 19:46:02試した。確かにサイズ変更できない。
原因は非公開クラスのCDockContext内のStretch()にあって
dockcont.cppの314-315行目のサイズ取得のところ。
最新のMFCではこっそりと修正されてる。
(VC6SP6)
HWND hWndDesk = ::GetDesktopWindow();
::GetWindowRect(hWndDesk, &rectDesk);
(VC2005)
rectDesk.left=GetSystemMetrics(SM_XVIRTUALSCREEN);
rectDesk.top=GetSystemMetrics(SM_YVIRTUALSCREEN);
rectDesk.right=rectDesk.left+GetSystemMetrics(SM_CXVIRTUALSCREEN);
rectDesk.bottom=rectDesk.top+GetSystemMetrics(SM_CYVIRTUALSCREEN);
VC6ではCToolBarとCDockContextを派生させて対処するしかない(当方では一応成功)。
非公開クラスなのでググってもほとんど情報がないけど
修正内容は違うがCDockContextを弄ってるのはあった。
http://www.ddj.com/184410272 英語だがStep3,Step4の文章が多少参考になる。
http://www.tkb-soft.hmcbest.com/diary_2005_03.htm 日本語。最後の方がグダグダでかなり強引。
0056デフォルトの名無しさん
2006/11/29(水) 01:44:19フォルダやファイルのフルコントロール拒否ってどうやってみたらいいでしょうか?
今はとりあえず、書きこんで見て書けなかったら・・・とかやっています。
もっとスマートな方法はないでしょうか?
0057デフォルトの名無しさん
2006/11/29(水) 06:17:19IEの履歴ウィンドウみたいなのあるじゃないですか?
あのスプリッタに「X 閉じるボタン」が付いてるやつ。
あれってMFCの機能で実現出来るものですかね?
スプリッタウィンドウにして一つのViewをFormViewにして
その中に各種のコントロールを設置すればそれっぽくなりますけど
閉じるボタンが押された時に、スプリッタを完全に非表示にしないといけない訳で
スプリッタの大きさ0じゃなく、動的にスプリッタの数を変更とか出来るのでしょうか?
0058デフォルトの名無しさん
2006/11/29(水) 08:58:38あれはBrowser Extension の Explorer Bar
http://msdn2.microsoft.com/en-us/library/aa753587.aspx
>あれってMFCの機能で実現出来るものですかね?
本人次第
0059デフォルトの名無しさん
2006/11/29(水) 09:49:59サブクラスで操作(数だけじゃないよ)すればできる。
流れ書こうかと思ったけどCodeGuruとか見たほうが早い。
ペインが左右に1つずつしかないなら、ほんの数行で済むはず。
0060デフォルトの名無しさん
2006/11/29(水) 10:31:28なるほど… そういう物だったんですね…
>>59
今、色々試していた所、CDialogBarを利用して
似たような事が出来るかも知れないと思いました。
出来ればVC++のIDEみたく、ドッキング可能にもしたかったので
こっちの方がより理想に近いのかもしれません。
006149
2006/11/29(水) 20:45:04試していただきありがとうございます。
やっぱりこれグラフィックカードの問題とかではなかったんですか…。
ツールバーももちろんなんですが、
http://support.microsoft.com/kb/143255/ja
↑を参考にサイズ変更可能なダイアログバーを用意したんですけど、
セカンダリモニタ上でサイズ変更ができないのがかなり痛いです。
これって、VC6のままMFCだけ最新のものを使うということは無理で、
VC2005の環境にしてしまうか、派生クラスを自分で作ることになるんですよね?
ドッキングを捨ててモードレスダイアログにしてしまったほうがいいのかな…。
まずは教えていただいたサイトなどを元にして
なんとか挑戦してみたいと思います。
ありがとうございました。
0062デフォルトの名無しさん
2006/11/29(水) 22:26:25仕組みそのものは簡単で、アプリケーションからグローバル関数を通じて呼び出されます
グローバル関数は子画面ごとに用意し、関数の引数にポインタを指定する形でデータの受け渡しを行います
それで早速これを作り始めたのですが、自分の知識が乏しいこともあって問題が発生してしまいました
それは、ウィンドウを上手く表示させて処理させることができないということです
ダイアログの方はモーダル表示であるためか、特に問題なく表示させて処理させることができました
しかし、ウィンドウの方は違いました
新規クラス作成でCFormViewを継承したクラスを追加しているのですが、生成の段階で問題が発生してしまいます
コンストラクタがprotectedとなっているため、newで生成したときにエラーとなるのです
これは手動でpublicに変えることで表面上は解決しました
しかし、標準でprotectedになっていたことには何か意味があるのではないかと不安に思えてきました
大丈夫なのでしょうか?
また他にも問題があります
それは、メモリの開放です
ウィンドウはモーダルではないため、基本的にグローバル変数として使っています
これが問題となるのはユーザが閉じるボタンでウィンドウをデストロイした場合です
グローバス関数では、対応するウィンドウのグローバル変数がNULLでない場合に明示的にDestroyWindowを呼んでいます
その後にdeleteをしております
しかし、ユーザがすでにウィンドウをデストロイしていた場合、エラーが発生します
これをどうにか防ぎたいのです
ウィンドウがすでにデストロイされていることを知る手段はありませんか?
またはメモリが未開放であることを知る手段はありませんか?
とても困っております
知恵を貸してください
0063デフォルトの名無しさん
2006/11/29(水) 23:18:34Viewの作成は通常newは使わず
CView *MyView = (CView *)RUNTIME_CLASS(CMyView)->CreateObject();
context設定して MyView->Create( ・・・ );
とかいう感じ。
後半はframeを保持しているのがどっちか不明なのでパス。
006462
2006/11/30(木) 00:09:29レスに大感謝です
参考にさせて頂きます
グローバル変数を保持しているのはDLLです
つまり、ウィンドウ&ダイアログは常にDLLの管理下にあります
アプリケーションは子画面の表示を指示するのとデータ受け渡しのみです
0065デフォルトの名無しさん
2006/11/30(木) 00:50:100066デフォルトの名無しさん
2006/11/30(木) 04:17:02私も興味あります。
VC++6というか、VisualStudioのようなMDIを実現する方法。
006760
2006/11/30(木) 04:56:11前書き込んだ者ですけど、多分、ダイアログバーを自分で改造して
似た様な物が出来るんじゃないかと思うんですが。
設置したコントロールもダイアログの状態によって位置、大きさを変更する等して。
外観は全部自分で独自に描画して似せて。
例えば、あの二本線のRebarみたいなのも自分で描画して。
CDialogBarのDDXが効かないのは、CDialogに書き直せば確かOKだった筈ですし。
0068デフォルトの名無しさん
2006/11/30(木) 19:00:30リソースを日本語版と英語版を用意して、以下のような設定にしています
英語版ビルド時には日本語を無視
日本語の場合には英語リソースを無視
この方法でビルドした場合、ダイアログに直接貼り付けてあるStaticテキストや
ボタンのCaption等は正しく言語の切替が行われていますが
StringTableから読み込んで表示する場合、英語版が全て空白になってしまいます
正しく読むにはどうしたらいいでしょうか?
0069デフォルトの名無しさん
2006/11/30(木) 19:09:49007068
2006/11/30(木) 19:43:41開発しているのはプラグインなのですが、対象となるソフトの言語設定を変更したら上手く行きました
007149
2006/11/30(木) 22:37:56CDockContextの派生クラスを作成し、以下の3つをオーバーライド。
・virtual void StartResize(int nHitTest, CPoint pt);
・void Stretch(CPoint pt);
・BOOL Track();
StartResize()とTrack()は、CDockContextのものをそのまま手を入れずにコピー。
Stretch()は、例の部分をVC2005版に修正し、それ以外はそのままコピー。
そのほかに、これらの関数で使われている定数や構造体の宣言をそのままコピー。
CToolBarの派生クラスを作成し、EnableDocking()をオーバーライド。
m_pDockContext = new CDockContext(this);
の部分を、上のCDockContextの派生クラスをnewするように修正し、
それ以外はそのままコピー。
というソースファイルを作成し、
SDIのツールバーをこのCToolBarの派生クラスに置き換えてみたところ、
無事にセカンダリモニタ上でもサイズできました。
「当方では一応成功」っていうのも、やはりこのような感じなのでしょうか?
007262
2006/11/30(木) 22:54:50フレームとビューとドキュメントをCCreateContextで連結させるのに苦労しました
上手に表示されたときはとってもハッピーになりました
さて、申し訳ないですが本日も質問があります
それはビュー(CFormView)に張り付けたダイアログリソースについてです
なぜか分からないですが、呼び出しアプリケーション側のダイアログリソースに置き換わってしまいます
DLLのダイアログリソースが表示されません
Resource.hが怪しいと思っていますが、どうすれば解決できるのか分かりません
アドヴァイスを頂けませんか?
あと、昨日の質問が残っています
>>62の後半、メモリ開放についてです
CFormWndのインスタンスを持っているのはDLL側です
ユーザが閉じるボタンやAlt+F4でデストロイしたことを察知して2度デストロイやdeleteするのを防ぎたいです
大変にクリティカルな問題なのでとても悩んでいます
インターネット検索や書籍で解決策を探していますが、まだ解決には至っていません
アドヴァイスをお願いします
0073デフォルトの名無しさん
2006/12/01(金) 00:14:31相変わらずFrameの位置が不明瞭です...
次の3つの内から一つを選択しなさい。
1.Exe側のCMainFrameにDLL側で作成したCFormViewを結合している
2.ExeとDLLにそれぞれFrame&Viewの対がある
3.その他
上段で上手に表示されたと書いてるけど、中段読むとFrameとViewの
結合に失敗してるし訳分からない。別な話?
下段CFormWndのbase class はCFormView or CFrameWnd ?
007472
2006/12/01(金) 00:16:17すみません
選択肢1が該当します
0075デフォルトの名無しさん
2006/12/01(金) 00:27:520076デフォルトの名無しさん
2006/12/01(金) 00:49:13であれば、Viewをdeleteする必要はない。
FrameとViewが正しく結合されていれば、exe側Frameが閉じられる際に自動で削除される。
CView::PostNCDestroy()参照。
0077デフォルトの名無しさん
2006/12/01(金) 01:11:51うん
0078デフォルトの名無しさん
2006/12/01(金) 01:18:01例えば開発時に、EXEがReleaseでDLLがDebugだとすると。
メモリ管理のランタイムが別になるんで、EXEでnewしたメモリをDLLで開放しようとすると、
当然そんなメモリは管理してないから落ちてしまうと。
0079デフォルトの名無しさん
2006/12/01(金) 01:27:38問題ないんじゃないの?
77は根拠を示すべし。
0080デフォルトの名無しさん
2006/12/01(金) 06:53:15別のアプリで確保したメモリを別のアプリで解放できるか?って話しになるんじゃない?
0081デフォルトの名無しさん
2006/12/01(金) 09:12:040082デフォルトの名無しさん
2006/12/01(金) 10:26:11バージョンが同じでも、MFCをスタティックリンクしてるとダメだよ。
0083デフォルトの名無しさん
2006/12/01(金) 14:28:49008455
2006/12/01(金) 19:42:03そんな感じです。というより全く同じですね。
VC6ではやむを得ないと思います。
>>65-67
http://www.codeproject.com/docking/
http://www.codeguru.com/cpp/w-d/docking/
スクリーンショット見た感じ、↓のが参考になるかも。
http://www.codeguru.com/cpp/w-d/docking/article.php/c1447/
http://www.codeguru.com/cpp/w-d/docking/article.php/c1451/
http://www.codeproject.com/docking/sizecbar.asp
>>62&>>72
どっかのスレで参考になる文献はないかと聞かれたから
URL貼ったんだが全く読んでないんだな。
考えられる原因の一つは、delete this;して自殺するクラスがあるということ。
CFrameWndやCViewがまさにそういうクラスなのでその可能性があるんじゃない?
76も答えてくれてる通り。
0085デフォルトの名無しさん
2006/12/02(土) 16:41:12MDIから別プロジェクトの画面を子画面として表示させたいのですが、
どういう風に作ればいいのでしょうか。
0086デフォルトの名無しさん
2006/12/02(土) 17:26:410087デフォルトの名無しさん
2006/12/02(土) 17:32:47008849
2006/12/03(日) 13:05:02やはりこういう派生になるのですね。安心しました。
VC7でも同じ問題が発生するようで、VC2005じゃないと直ってないようです。
008940
2006/12/03(日) 16:05:47の続きで、Viewの差し替えは、Viewクラスでのメニューイベントハンドラーで
CWinApp* myapp=AfxGetApp();
CDocTemplate* mydoctemp=(CDocTemplate*)RUNTIME_CLASS(CDocTemplate);
POSITION myps=myapp->GetFirstDocTemplatePosition();
mydoctemp=myapp->GetNextDocTemplate(myps);//テンプレートリストの1番目を選択するイテレータ
mydoctemp=myapp->GetNextDocTemplate(myps);//テンプレートリストの2番目を選択するイテレータ
mydoctemp->OpenDocumentFile(NULL);
でドキュメントテンプレートに入れられた2番目のViewを新規子ウィンドウで表示できたよ
0090デフォルトの名無しさん
2006/12/04(月) 13:59:24ソフトを書いていたんですが、タブに重ねたリストビューの列サイズを操作すると
リストビューの表示が乱れる現象が出てしまいました。
http://www.uploda.org/uporg604606.zip.html
サンプルプロジェクトです。VC2005で作りました。
http://www.uploda.org/uporg604603.gif
1つめのリスト。こういう感じで一番右の列境界をタブの外へ右にドラッグすると
スクロールバーが現れます。通常の動作です。
http://www.uploda.org/uporg604604.gif
2つめのリスト。1つ目と同じく一番右の列境界を右へドラッグするとスクロールバー
が現れるタイミングで表示が乱れます。
どうして2つ目のリストでのみ表示が乱れるのか悩んだ結果、ダイアログのリソース
定義ファイル中の、
> CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | (以下略)
> CONTROL "",IDC_TAB1,"SysTabControl32",0x0,7,7,173,186
> CONTROL "",IDC_LIST2,"SysListView32",LVS_REPORT | (以下略)
を
> CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | (以下略)
> CONTROL "",IDC_LIST2,"SysListView32",LVS_REPORT | (以下略)
> CONTROL "",IDC_TAB1,"SysTabControl32",0x0,7,7,173,186
と順番を入れ替えると表示が乱れなくなりました。逆に、タブの行をリストの先頭
に持っていくと今度は両方のタブでリストの表示が乱れるようになります。
結果オーライといえばそれまでなんですが、どうしてこれで問題が解決するのか納得が
いきません。リソース中の定義順が何に影響しているのでしょうか?
0091デフォルトの名無しさん
2006/12/04(月) 14:05:470092デフォルトの名無しさん
2006/12/04(月) 14:46:26Zオーダーの問題じゃね?
0093デフォルトの名無しさん
2006/12/04(月) 16:30:03009490
2006/12/04(月) 22:53:30リソース定義の順番がZオーダになるというのが将来にわたって保障された
仕様なのかどうかが疑問なので、コントロールを重ねる場合のZオーダは
きちんとSetWindowPosでコード中に書いておくことにします。
0095デフォルトの名無しさん
2006/12/06(水) 06:13:15HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache
に VS_VERSION_INFO の FileDescription の値が書き込まれてしまいます。
FileDescription を消しても実行ファイル名が変わりに書き込まれてしまいます。
どうしたら書き込まないように出来るでしょうか?
0096デフォルトの名無しさん
2006/12/06(水) 10:01:560097デフォルトの名無しさん
2006/12/06(水) 23:59:45PASVモードを使ったときにどのポートが使われているかというのは
どうやって取得すれば良いでしょうか?
0098デフォルトの名無しさん
2006/12/12(火) 21:25:29このリストの特定セルだけ背景色を変えるにはどうしたら良いですか?
ステータス値に応じてセルの色が変わるような機能を実現したいのですが……
0099デフォルトの名無しさん
2006/12/12(火) 21:26:36各コントロール毎に違う背景色を設定したいのですがどのようにすればよいのでしょうか?
OnCtlColor()メソッド内でコントロールの判定ができればよいと思うのですが・・・。
どなたかご教授の程よろしくお願い致します。
OSはWinXP SP2、開発環境はVC++ 2005です。
0100デフォルトの名無しさん
2006/12/12(火) 21:45:51カスタムドローじゃねぇの?
>>99
普通にウィンドウハンドル比べたらどうよ?
010198
2006/12/12(火) 21:47:33無知で申し訳ないのですが、カスタムドローとはどのようなものですか?
0102デフォルトの名無しさん
2006/12/12(火) 21:55:03http://www.google.co.jp/search?hl=ja&safe=off&c2coff=1&q=%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%89%E3%83%AD%E3%83%BC+CListCtrl&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
010398
2006/12/12(火) 21:57:44すみません、自分で検索するべきでした
どうもありがとうございました
010499
2006/12/12(火) 22:00:20レスありがとうございます。
if(GetDlgItem(IDC_STATIC_COLOR1) == pWnd){
AfxMessageBox(L"一番目のコントロール");
}
//以降コントロールの数分else if
試しにこんなコードでやってみたのですが引っかかりませんでした。
比較処理が悪いのでしょうか?
0105デフォルトの名無しさん
2006/12/12(火) 22:06:07まあ、駄目だったら、そもそもIDC_STATIC_COLOR1が本当にそいつの直下に配置してあるコントロールなのかどうなのか
ってところがあやしいんじゃね?
010699
2006/12/12(火) 22:22:41OnInitDialog内で
GetDlgItem(IDC_STATIC_COLOR1)->SetWindowText("あいう");
で文字は表示されたので問題はないと思うのですが・・・。
もう少し調べてみます。
010799
2006/12/12(火) 22:31:54すみません、教えていただいた
pWnd->m_hWnd == GetDlgItem(IDC_STATIC_COLOR1)->m_hWnd
でできていました。(メッセージボックスが表示されていなかったのでできていないと思っていました)
どうもありがとうございます。
0108デフォルトの名無しさん
2006/12/12(火) 22:38:020109デフォルトの名無しさん
2006/12/13(水) 16:35:12まずは、CMainFrame に MDIタブ用の CDocBar を配置したいのだが、
どこをどうオーバーライドしたらいいんだ?
CMainFrame::recalcLayout() あたり?
0110デフォルトの名無しさん
2006/12/13(水) 17:02:480111デフォルトの名無しさん
2006/12/13(水) 19:25:44なんだかこの間からぶち当たった問題をことごとく質問してないか?
0112デフォルトの名無しさん
2006/12/13(水) 19:32:030113デフォルトの名無しさん
2006/12/13(水) 19:34:02相談しようぜ。
MDIの基本的な部分はOKなん?
0114デフォルトの名無しさん
2006/12/13(水) 19:52:360115デフォルトの名無しさん
2006/12/13(水) 20:17:28MFCって結構むずいじゃん。
俺、ドキュメントビューアーキテクチャーとかいう仕組み覚えるのに何日も必要だったぞ。
まず、ドキュメントビューアーキテクチャーの構造なんて大して重要なもんだと思ってなかったし(SDIで組んでたのもあって)。
この状態でMDIプログラミング特攻すると、はっきりいってハマルじゃんw
0116デフォルトの名無しさん
2006/12/13(水) 20:57:27ダイアログをいくつか作成(このときフォントをMSゴシックの12ptに変更)し、
各ダイアログ毎にクラスを作成(CPropertyPageクラスの派生クラス)して
メインメニューに[プロパティ]項目を追加、そのイベント内で
・プロパティシートのインスタンス生成
・プロパティページをプロパティページにAddPage
・DoModalで表示
しています。
このとき、表示された各ページのフォントサイズが標準のMS UI Gothicの9pt
で表示されてしまっています。なのでCPropertySheetの派生クラスを作り、
OnInitDialog内でフォントサイズの変更を行ってみたのですが変化なしでした。
なぜこのような現象が起こるのでしょうか?
0117デフォルトの名無しさん
2006/12/13(水) 21:00:50タブコントロールなら、全ページフォントを設定する必要があるな。
プロパティシートにもそんなのあんじゃね?(適当w)
0118デフォルトの名無しさん
2006/12/13(水) 21:10:57それでも変わらないんですよ。各ページのコントロールのサイズも
ちっちゃくなってますし。全ページのコントロールの位置、サイズ、フォントを
設定しないといけないんでしょうか。
0119デフォルトの名無しさん
2006/12/13(水) 21:42:180120デフォルトの名無しさん
2006/12/13(水) 21:44:25だからおいらの相談に答えてくれよー
0121デフォルトの名無しさん
2006/12/13(水) 21:46:33あ、やっぱ、手動なんだw
0122デフォルトの名無しさん
2006/12/13(水) 21:48:25ドキュメントビューアーキテクチャ(なげぇなw)の理解は大丈夫ということでOK?
0123デフォルトの名無しさん
2006/12/13(水) 21:57:52MFCにCDocBarなんてあったけ?
0124デフォルトの名無しさん
2006/12/13(水) 22:20:15すまん CDockBar だった
CDockBar はアンドキュメンテッドなクラスで、CControlBar を配置するための滑走路みたいなものだよ
0125116
2006/12/13(水) 22:43:28SendMessageToDescendants()?でフォントは変更できましたが、
サイズとかの変更の仕方が分かりませんでした。
0126デフォルトの名無しさん
2006/12/13(水) 23:09:570127デフォルトの名無しさん
2006/12/13(水) 23:33:370128デフォルトの名無しさん
2006/12/13(水) 23:47:280129デフォルトの名無しさん
2006/12/13(水) 23:49:05まず、全体っちゅーか概要ぐらいは理解しないと
なにやるにも知ってる人間にお伺いを立てないと何もできなくなっちゃうぞ。
0130デフォルトの名無しさん
2006/12/14(木) 01:57:250131デフォルトの名無しさん
2006/12/14(木) 03:22:110132デフォルトの名無しさん
2006/12/14(木) 07:02:17そういうときもある。
0133デフォルトの名無しさん
2006/12/14(木) 09:06:58ダイアログベース単位はフォントの幅が元になってる。
だからダイアログのフォントを変えると
コントロールのサイズと位置もフォントに比例して変わる。
このフォントサイズはダイアログを作る時に指定した
ダイアログボックステンプレートに定義されている。
ダイアログを作った後でフォントを変えても
コントロールは既に作成されてしまっているから
コントロールのサイズと位置は後で指定したフォントには影響されない。
以上ここまでMFCに限らずWin32でも同様
プロパティシートがリソースで定義されたダイアログのフォントを無視しているということは
たぶんメモリ上に読み込んだダイアログボックステンプレートのフォントを書き換えてから
その変更を加えたダイアログボックステンプレートでダイアログを作っているのではないか
と推測されるけど、あとはCPropertyPageのソース等を読めばわかることだから省略
0134デフォルトの名無しさん
2006/12/14(木) 10:51:38☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< MDIタブ実装方法 まだー?
\_/⊂ ⊂_)_ \_______
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
| .|/
0135デフォルトの名無しさん
2006/12/14(木) 11:22:300136デフォルトの名無しさん
2006/12/14(木) 11:43:330137デフォルトの名無しさん
2006/12/14(木) 13:05:500138デフォルトの名無しさん
2006/12/16(土) 17:26:02SetCheck()かと思ったのですが違うようでした。。
0139デフォルトの名無しさん
2006/12/16(土) 17:46:32基本クラスのメンバEnableWindowで
0140デフォルトの名無しさん
2006/12/16(土) 18:12:46やってみます。ありがとうございました。
0141デフォルトの名無しさん
2006/12/17(日) 19:17:510142デフォルトの名無しさん
2006/12/17(日) 19:21:10ツリーリストコントロールって標準で存在しませんか?
存在しない場合はどうすれば使えますか?
MFCで作ったフリーソフトでツリーリストが使われていたので、
何らかの方法でできるのではないかと考えているのですが・・・
ちなみに、今の自分の技術力では自作は無理です
■ このスレッドは過去ログ倉庫に格納されています