Microsoft Foundation Classライブラリ専用スレです。
■MFC相談室 mfc21d.dll■
http://hibari.2ch.net/test/read.cgi/tech/1250919279/l50
■MFC リファレンス■
http://msdn.microsoft.com/ja-jp/library/d06h2x6e(v=VS.100).aspx
探検
MFC相談室 mfc23d.dll [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2016/09/21(水) 00:20:48.44ID:OfO+mYkd204デフォルトの名無しさん
2018/04/27(金) 21:30:38.89ID:V9eZGmhL CreateCompatibleBitmapの前後5行ぐらいに原因がありそうな気がする
205デフォルトの名無しさん
2018/04/28(土) 06:46:29.77ID:7taUW+bg >>203
自分で開放しないといけないのを忘れてるだけじゃないかな
自分で開放しないといけないのを忘れてるだけじゃないかな
206デフォルトの名無しさん
2018/04/28(土) 13:43:55.18ID:RCDKOgRU リソースの解放はDeleteObject();ではないのですか?
CreateCompatibleBitmapの前は、CreateCompatibleDCを呼び出しています。
CreateCompatibleDCのDCパラメータをNULLに設定すると、GDIリソースの浪費は無くなりますが、今度は出てくる画面が白黒になってしまいます。
CreateCompatibleBitmapの前は、CreateCompatibleDCを呼び出しています。
CreateCompatibleDCのDCパラメータをNULLに設定すると、GDIリソースの浪費は無くなりますが、今度は出てくる画面が白黒になってしまいます。
207デフォルトの名無しさん
2018/04/28(土) 15:02:19.62ID:7HtEIURB >>206
ピクチャーコントロールのDCをGetDC()で取得してしてるのでは
ピクチャーコントロールのDCをGetDC()で取得してしてるのでは
208デフォルトの名無しさん
2018/04/28(土) 15:36:31.72ID:K6dn8QZh スタック上でCBitmap test;とやった場合
関数を抜けるときに勝手にデストラクタでDeleteObjectされると思う。
もう少しコード晒さないと判らない。
関数を抜けるときに勝手にデストラクタでDeleteObjectされると思う。
もう少しコード晒さないと判らない。
209デフォルトの名無しさん
2018/04/28(土) 20:43:45.95ID:RCDKOgRU CreateCompatibleDCでは、ピクチャーコントロールのDCを取得させています。
ピクチャーコントロールのDCを渡すと、CreateCompatibleBitmap時にGDIリソースを消費する量が2となるようです。
CreateCompatibleDCにNULLを指定した場合(確か)CreateCompatibleBitmap時のGDIリソース消費量ばかり1となります(以後の描画は白黒になります)。
今しばらく書いているコードをみられません。
CreateCompatibleDCやCreateCompatibleBitmapをOnSize時に破棄させてはサイズを変えて再生成させると、GDIリソースが消費されて減っていくので、
アプリケーション生成時に画面の最大サイズでCreateCompatibleDCさせておき、あとはCreateCompatibleDCしないように変更することも考えております。
アプリケーション生成時に画面のサイズ分のCreateCompatibleDCさせるようにすると、マルチモニタ環境の時などの動作が正常に動作しないかもしれないと思い、
可能ならOnSize内でDeleteObject();させてCreateCompatibleDCさせたいと思っています。
なお、OnSizeから抜けてもGDIリソース消費量は下がってくれないようです。
ピクチャーコントロールのDCを渡すと、CreateCompatibleBitmap時にGDIリソースを消費する量が2となるようです。
CreateCompatibleDCにNULLを指定した場合(確か)CreateCompatibleBitmap時のGDIリソース消費量ばかり1となります(以後の描画は白黒になります)。
今しばらく書いているコードをみられません。
CreateCompatibleDCやCreateCompatibleBitmapをOnSize時に破棄させてはサイズを変えて再生成させると、GDIリソースが消費されて減っていくので、
アプリケーション生成時に画面の最大サイズでCreateCompatibleDCさせておき、あとはCreateCompatibleDCしないように変更することも考えております。
アプリケーション生成時に画面のサイズ分のCreateCompatibleDCさせるようにすると、マルチモニタ環境の時などの動作が正常に動作しないかもしれないと思い、
可能ならOnSize内でDeleteObject();させてCreateCompatibleDCさせたいと思っています。
なお、OnSizeから抜けてもGDIリソース消費量は下がってくれないようです。
210デフォルトの名無しさん
2018/04/28(土) 21:09:49.29ID:K6dn8QZh 207が言っているのは
bitmap.CreateCompatibleBitmap(pict->GetDC(), rc.Width(), rc.Height())
してるんじゃないかって事。これだとリークします。
bitmap.CreateCompatibleBitmap(pict->GetDC(), rc.Width(), rc.Height())
してるんじゃないかって事。これだとリークします。
211デフォルトの名無しさん
2018/04/29(日) 02:54:49.07ID:4Tl9MZgN ReleaseDC
212デフォルトの名無しさん
2018/04/29(日) 22:23:44.07ID:dUB73wKv >>212
> 207が言っているのは
> bitmap.CreateCompatibleBitmap(pict->GetDC(), rc.Width(), rc.Height())
> してるんじゃないかって事。これだとリークします。
しています。その上でどのように直すべきか察しが付きません。やはりReleaseDCで直りますか?
> 207が言っているのは
> bitmap.CreateCompatibleBitmap(pict->GetDC(), rc.Width(), rc.Height())
> してるんじゃないかって事。これだとリークします。
しています。その上でどのように直すべきか察しが付きません。やはりReleaseDCで直りますか?
213デフォルトの名無しさん
2018/04/29(日) 23:00:49.09ID:azFTonkH ReleaseDCで直る。
私なら 解放不要なCDC::FromHaqndleを使う。
私なら 解放不要なCDC::FromHaqndleを使う。
214デフォルトの名無しさん
2018/04/30(月) 09:00:09.82ID:N15MwktU215213
2018/04/30(月) 13:12:38.67ID:3QBGre+r スマソ勘違いだった
216デフォルトの名無しさん
2018/04/30(月) 14:30:59.80ID:s7QfKdrQ >>216
CompatibleDCの引数はピクチャーコントロール内のDC
memDC.CreateCompatibleDC(ピクチャーコントロール.GetDC(),ピクチャーコントロールのx,y);
だったと思います。
GetDC()でピクチャーコントロールのDCを取得していたか、GetSafeDCでピクチャーコントロールのDCを取得していたかちょっと思い出せません。
CompatibleDCの引数はピクチャーコントロール内のDC
memDC.CreateCompatibleDC(ピクチャーコントロール.GetDC(),ピクチャーコントロールのx,y);
だったと思います。
GetDC()でピクチャーコントロールのDCを取得していたか、GetSafeDCでピクチャーコントロールのDCを取得していたかちょっと思い出せません。
217デフォルトの名無しさん
2018/04/30(月) 14:32:37.77ID:s7QfKdrQ CreateCompatibleDCのパラメータはDC一つだけでしたね。ごめんなさい。
218片山博文MZ ◆T6xkBnTXz7B0
2018/04/30(月) 14:34:44.36ID:4AJ8oS6Z GetDCの返り血はReleaseDCしないといけない。
219デフォルトの名無しさん
2018/04/30(月) 19:49:57.15ID:fTg4MTz+ 返り血こわ
220デフォルトの名無しさん
2018/05/01(火) 13:59:06.30ID:eD8/BCAz ReleaseDCではGDIリソースがー1になりますが、createCompatibleBitmapで+2消費したぶんのすべては解放されてくれません。
releaseDCはおこなっていますが、GDIリソースの消費量は依然として+1になってしまいます。
releaseDCはおこなっていますが、GDIリソースの消費量は依然として+1になってしまいます。
222デフォルトの名無しさん
2018/05/07(月) 12:52:31.69ID:axInvDCA 原因わかりました。
memBmp.CreateCompatibleBitmap(picctrl.GetDC(),x,y);
が良くなかったようです。
GetDC()でGDIリソースを1消費し、解放出来なくなります。
CDC *pDC;
pDC->picctrl.GetDC();
memBmp.CreateCompatibleBitmap(pDC,x,y);
DeleteObject(memBmp);
ReleaseDC(pDC);
に直したところ、ちゃんとGdIリソースが戻りました。
memBmp.CreateCompatibleBitmap(picctrl.GetDC(),x,y);
が良くなかったようです。
GetDC()でGDIリソースを1消費し、解放出来なくなります。
CDC *pDC;
pDC->picctrl.GetDC();
memBmp.CreateCompatibleBitmap(pDC,x,y);
DeleteObject(memBmp);
ReleaseDC(pDC);
に直したところ、ちゃんとGdIリソースが戻りました。
223デフォルトの名無しさん
2018/05/07(月) 12:55:07.54ID:axInvDCA pDC=picctrl.GetDC();
に修正します。
解答いただいた方々、ありがとうございます。
に修正します。
解答いただいた方々、ありがとうございます。
224デフォルトの名無しさん
2018/05/07(月) 14:56:30.49ID:QMgv+0U5 >>222-223
最初からみんなそう言ってたのに
最初からみんなそう言ってたのに
225デフォルトの名無しさん
2018/05/08(火) 19:14:19.80ID:c2nzYwoQ > CDC *pDC;
> pDC=picctrl.GetDC();
> ReleaseDC(pDC);
picctrl.GetDC()したものを親がReleaseDC()しているのが気持ち悪いが、
これでも正しく動くのか?
> pDC=picctrl.GetDC();
> ReleaseDC(pDC);
picctrl.GetDC()したものを親がReleaseDC()しているのが気持ち悪いが、
これでも正しく動くのか?
226デフォルトの名無しさん
2018/05/11(金) 20:03:19.69ID:AvqrI8lf GetDC()したらReleaseDC()する必要があるのだと思う。CDC*はデストラクタ処理に入れないからReleaseDCする必要がある。
VC++.net CLRとかなら自動でやってくれるのだろう。
VC++.net CLRとかなら自動でやってくれるのだろう。
227デフォルトの名無しさん
2018/05/12(土) 17:30:06.38ID:r7l6NWuz228デフォルトの名無しさん
2018/05/14(月) 21:41:18.68ID:8B23ox7k そうなんだ。φ(`д´)メモメモ...
229デフォルトの名無しさん
2018/05/23(水) 19:28:52.23ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
HQL0Y
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
HQL0Y
230デフォルトの名無しさん
2018/05/24(木) 10:17:50.97ID:0MNYvz/l バイナリデータ(buf)を受け取ってピクチャーコントロール(m_picture)に
描画したいのですがBitBltのところで
"Debug Assertion Failed!"
が発生してしまいます。
何が悪いのか教えていただけないでしょうか?
PAINTSTRUCT ps;
CBitmap bitmap;
CImage image;
CDC *pDC;
pDC = m_picture.BeginPaint(&ps);
pDC->SetBkMode(TRANSPARENT);
pDC->SetStretchBltMode(COLORONCOLOR);
bitmap.CreateBitmap(width, height, 1, 8, (void*)&buf);
HBITMAP hBitmap = HBITMAP(bitmap.GetSafeHandle());
image.Attach(hBitmap);
image.BitBlt(pDC->GetSafeHdc(), CRect(0, 0, image.GetWidth(), image.GetHeight()), CPoint(0, 0));
image.Detach();
image.ReleaseDC();
m_picture.EndPaint(&ps);
描画したいのですがBitBltのところで
"Debug Assertion Failed!"
が発生してしまいます。
何が悪いのか教えていただけないでしょうか?
PAINTSTRUCT ps;
CBitmap bitmap;
CImage image;
CDC *pDC;
pDC = m_picture.BeginPaint(&ps);
pDC->SetBkMode(TRANSPARENT);
pDC->SetStretchBltMode(COLORONCOLOR);
bitmap.CreateBitmap(width, height, 1, 8, (void*)&buf);
HBITMAP hBitmap = HBITMAP(bitmap.GetSafeHandle());
image.Attach(hBitmap);
image.BitBlt(pDC->GetSafeHdc(), CRect(0, 0, image.GetWidth(), image.GetHeight()), CPoint(0, 0));
image.Detach();
image.ReleaseDC();
m_picture.EndPaint(&ps);
231デフォルトの名無しさん
2018/05/24(木) 10:22:02.55ID:fftgGS82 頭
232放置された蟻人間 ◆T6xkBnTXz7B0
2018/05/24(木) 19:30:21.07ID:lMOj7i3d ASSERT(IsWindow(m_picture)); してみれ。
233デフォルトの名無しさん
2018/05/25(金) 08:35:43.69ID:0miZfrjS234デフォルトの名無しさん
2018/05/25(金) 11:28:17.31ID:XVxgp9wt まず"Debug Assertion Failed!" が出ているのならちゃんと再試行を押そうよ。
それだけで原因そのものはわかる。
それだけで原因そのものはわかる。
235デフォルトの名無しさん
2018/07/04(水) 22:49:24.38ID:gFgZc5FG EQ8
236デフォルトの名無しさん
2018/07/06(金) 12:25:50.03ID:uTPDH9XV EQ8
237デフォルトの名無しさん
2018/07/07(土) 16:23:50.25ID:BnawPcHi CListCtrでレポート表示のFullRowSelectをカスタムドローを弄ってます。
マウスがアイテムの上に来たら色を変えたいけど、カスタムドローのイベントハンドラだけできますか?
OnMouseMoveでどこにあるか判定してカスタムドローで描画が必要?
ビットマップを3番目のSubItemだけに貼るとか、16x16のSmallサイズ以外だとうまくいかないとか、癖が凄い。
マウスがアイテムの上に来たら色を変えたいけど、カスタムドローのイベントハンドラだけできますか?
OnMouseMoveでどこにあるか判定してカスタムドローで描画が必要?
ビットマップを3番目のSubItemだけに貼るとか、16x16のSmallサイズ以外だとうまくいかないとか、癖が凄い。
238デフォルトの名無しさん
2018/07/23(月) 18:19:00.33ID:+TIH++V2 tooltipの表示内容を一つのピクチャコントロール内で変更したいのですが、マウスカーソルが一端ピクチャコントロールから外れないと、ツールチップの内容が更新されないようです。onmousehoverなどを使わないと駄目でしょうか?
239デフォルトの名無しさん
2018/07/24(火) 07:28:28.65ID:vj16B9du tooltipの解決策を見つけました。
http://www.geocities.jp/sunayamak/study/mfctooltip.html
http://www.geocities.jp/sunayamak/study/mfctooltip.html
240デフォルトの名無しさん
2018/07/27(金) 23:03:38.30ID:FVoX1kIB Tooltipの件ありがとうございます。
おかげさまで何とか解決できました。
おかげさまで何とか解決できました。
241デフォルトの名無しさん
2018/08/02(木) 20:01:14.70ID:lFbk57E7 datを生成するMFCプログラムがありまして、そのdatからデータを読み込んでexcelの形式に合わせて出力するダイアログベースのMFCプログラムがあります
最初のプログラムから呼び出されて処理をするだけなので、ウインドウの表示とかしないです。ただただ処理して終わりです
それで問題なんですが通常のダイアログを使ったプログラムのように読み込み・変換処理を全部ダイアログ部分に書いてあるんです
ダイアログ使いもしないのにここに書くのおかしくないですか?と聞いたら表示されないんだしいいでしょと。画面表示を行わないMFCプログラムの場合、コードはどこに書くのが自然なんでしょうか?
最初のプログラムから呼び出されて処理をするだけなので、ウインドウの表示とかしないです。ただただ処理して終わりです
それで問題なんですが通常のダイアログを使ったプログラムのように読み込み・変換処理を全部ダイアログ部分に書いてあるんです
ダイアログ使いもしないのにここに書くのおかしくないですか?と聞いたら表示されないんだしいいでしょと。画面表示を行わないMFCプログラムの場合、コードはどこに書くのが自然なんでしょうか?
242デフォルトの名無しさん
2018/08/03(金) 10:09:25.61ID:SxfGFWQF スレッドを別けたいという意味か?
243デフォルトの名無しさん
2018/08/03(金) 18:35:46.47ID:uhu4d/dd あーすいませんわかりにくかったですね
メインプログラムがあってその内部でdatを生成するんですよ
で、そのdatのパスをコマンドライン引数で別のプログラムに渡すんですね
スレッドというかそもそも2つのプログラムですわ
メインプログラムがあってその内部でdatを生成するんですよ
で、そのdatのパスをコマンドライン引数で別のプログラムに渡すんですね
スレッドというかそもそも2つのプログラムですわ
244デフォルトの名無しさん
2018/08/03(金) 18:52:53.67ID:o/XiGXrO MFC関係ないのにここで聞くのおかしくないですか?
245デフォルトの名無しさん
2018/08/03(金) 19:53:47.89ID:82qJLwKQ 事情が見えない。
どーーしても別プログラムにする事情があると仮定すれば
DialogやConsoleで構わないと思う。
冗長さを排除したいなら_tWinMainから書く手もあるけど
体感できるような差は出ないかと。表示されないんだしいいでしょw
どーーしても別プログラムにする事情があると仮定すれば
DialogやConsoleで構わないと思う。
冗長さを排除したいなら_tWinMainから書く手もあるけど
体感できるような差は出ないかと。表示されないんだしいいでしょw
246デフォルトの名無しさん
2018/08/05(日) 03:07:58.27ID:lHG7kQYc247デフォルトの名無しさん
2018/08/05(日) 10:12:06.95ID:D9xcyyWx >>241
MFCの仕組みを使いつつ、まったくウィンドウ表示が不要なものなら、
アプリケーションクラスのInitInstance()の中で処理して、
FALSEを返してすぐ終了するという流れでよいのでは。
MFCの仕組みを使いつつ、まったくウィンドウ表示が不要なものなら、
アプリケーションクラスのInitInstance()の中で処理して、
FALSEを返してすぐ終了するという流れでよいのでは。
248デフォルトの名無しさん
2018/08/06(月) 22:59:00.43ID:OCzRfTP8249デフォルトの名無しさん
2018/08/07(火) 05:06:10.31ID:OlmXtX1U サマータイムも意味がないがそれ以上に意味がない
250デフォルトの名無しさん
2018/08/14(火) 16:45:48.75ID:/E7izJ6Y 横から失礼します
InitInstanceの場合は標準出力にメッセージを出せますか?
標準出力に出すmfcプログラムだとすると、_twinmainを使うとどうでしょう。
InitInstanceの場合は標準出力にメッセージを出せますか?
標準出力に出すmfcプログラムだとすると、_twinmainを使うとどうでしょう。
251デフォルトの名無しさん
2018/08/14(火) 19:27:19.22ID:iucfbso2 どちらもやったことありませんが可能だと思います。
私なら _tmain 使うとおもいますが。
私なら _tmain 使うとおもいますが。
252155
2018/08/15(水) 09:28:56.94ID:IMvh29W2 CListViewがウィザードに帰ってきた!!
やほーい
やほーい
253デフォルトの名無しさん
2018/09/20(木) 15:00:47.62ID:i16QdaBT MFCというかプログラミング姿勢に関しての質問かもしれないんですけど
CやC++で標準的に実装されてる機能とMFCクラスで実装されてる機能、どちらを使っても
同じことが実現できる場合、どちらを優先して使っていくべきなんでしょうか
要するに文字列ならchar*かstringかCStringか
ファイル操作ならfopenかstreamかCfileかみたいな
CやC++で標準的に実装されてる機能とMFCクラスで実装されてる機能、どちらを使っても
同じことが実現できる場合、どちらを優先して使っていくべきなんでしょうか
要するに文字列ならchar*かstringかCStringか
ファイル操作ならfopenかstreamかCfileかみたいな
254デフォルトの名無しさん
2018/09/20(木) 16:28:00.36ID:+UNWjTgc MFCはオワコン
C#
使え
C#
使え
255デフォルトの名無しさん
2018/09/20(木) 18:01:52.92ID:TMKaX7fO256デフォルトの名無しさん
2018/09/20(木) 18:03:18.25ID:TMKaX7fO257デフォルトの名無しさん
2018/09/20(木) 18:03:55.46ID:a/ASjwi8 俺はできるだけ標準のほうを使うように切り替えた
258デフォルトの名無しさん
2018/09/20(木) 22:16:17.61ID:P1fXZpxD 機能が同等なら好みでいいと思うけど、ファイル操作みたいにOS依存が強い機能は
標準ライブラリじゃ足りない場合が多いかな。
標準ライブラリじゃ足りない場合が多いかな。
259デフォルトの名無しさん
2018/09/21(金) 00:47:14.84ID:fuc3wJjq MFCのGUI特化した本ないのかねー
大概が初心者向けでポインタやら構造体やらMFCと関係ないことが大半を占めてて知りたいことはうすーくしか書いてないのばっか
大概が初心者向けでポインタやら構造体やらMFCと関係ないことが大半を占めてて知りたいことはうすーくしか書いてないのばっか
260デフォルトの名無しさん
2018/09/21(金) 06:34:48.10ID:l8rNCGoZ261デフォルトの名無しさん
2018/09/21(金) 08:13:00.69ID:US5K8oGJ262デフォルトの名無しさん
2018/09/21(金) 11:19:39.33ID:Nv8vO9db 本でなくて申し訳ないけど
ヘルプ。
クラスも大幅に拡張されてしまい昔の良書だとツリービュー、リストビュー位まで
最近のリッチな所はヘルプからサンプルソースにたどるのが早いかと
ヘルプ。
クラスも大幅に拡張されてしまい昔の良書だとツリービュー、リストビュー位まで
最近のリッチな所はヘルプからサンプルソースにたどるのが早いかと
263デフォルトの名無しさん
2018/09/21(金) 13:21:21.50ID:9xBQcUDg Windows本体ってMFCで作ってるの?
264デフォルトの名無しさん
2018/09/21(金) 17:59:38.20ID:/FmUXr1R カーネルという意味では、ないやろな。性能面の要求はそんなに甘くないよ。
周辺の付加的モジュールでは、ATLとかは使ってるかも
周辺の付加的モジュールでは、ATLとかは使ってるかも
265デフォルトの名無しさん
2018/09/21(金) 19:07:45.12ID:M0K6QlhH Windows7のペイントとかワードパッドとかをSpy++で見ると、
Afx〜の付くウィンドウクラス名が使われてるから、
このあたりはまだMFCで作られてたんじゃないだろうか。
Afx〜の付くウィンドウクラス名が使われてるから、
このあたりはまだMFCで作られてたんじゃないだろうか。
266デフォルトの名無しさん
2018/09/21(金) 22:10:32.71ID:Yrc2SKMF なるほど
267デフォルトの名無しさん
2018/09/22(土) 09:01:41.72ID:f3qG2b9t 「コンピューターの管理」なんかも、AfxWnd42やAfxFrameOrView42uが出てくる。
269デフォルトの名無しさん
2018/09/22(土) 12:44:10.56ID:xOVRbYWf >>263
あやしいよな
あやしいよな
270デフォルトの名無しさん
2018/10/02(火) 12:20:10.07ID:T1hsru+o VC++6.0で作っています。 MFCです。
普通にSDIを作りますが、そこからメニューバー等からダイアログボックスをモードレスで起動します。
すると、ダイアログを起動しながらメインウインドウも触れるようになるのですが、そのフォーカスを
モードレスダイアログとメインウインドウとをマウスを使わずにキーボードで切り替えることって出来ませんか
MSのWindowsOSのAlt+Tabではこれらはひとつとして認識されているようでこれでは切り替えられません
ちなみに、Windows7です
普通にSDIを作りますが、そこからメニューバー等からダイアログボックスをモードレスで起動します。
すると、ダイアログを起動しながらメインウインドウも触れるようになるのですが、そのフォーカスを
モードレスダイアログとメインウインドウとをマウスを使わずにキーボードで切り替えることって出来ませんか
MSのWindowsOSのAlt+Tabではこれらはひとつとして認識されているようでこれでは切り替えられません
ちなみに、Windows7です
271デフォルトの名無しさん
2018/10/02(火) 12:45:27.08ID:+xKncks4 モードレスなら出来るやろ
272デフォルトの名無しさん
2018/10/02(火) 14:53:03.01ID:T1hsru+o273デフォルトの名無しさん
2018/10/02(火) 15:13:04.28ID:yDKwoLm6 Ctrl+TAB
274デフォルトの名無しさん
2018/10/02(火) 15:45:33.11ID:T1hsru+o275デフォルトの名無しさん
2018/10/02(火) 15:50:20.77ID:yDKwoLm6 Ctrl+Alt+TAB
276デフォルトの名無しさん
2018/10/02(火) 16:01:18.57ID:T1hsru+o277デフォルトの名無しさん
2018/10/02(火) 16:28:36.02ID:7CL4bG8Y モードレスの親がメインウィンドウなら切り替えできず、親がない(デスクトップ)なら切り替えできるのでは。
親がメインウィンドウの場合でも、PreTranslateMessageでTABキーを補足してSetForegroundWindowとかすればいいと思う
親がメインウィンドウの場合でも、PreTranslateMessageでTABキーを補足してSetForegroundWindowとかすればいいと思う
278デフォルトの名無しさん
2018/10/02(火) 16:35:36.67ID:T1hsru+o デフォルトでは用意されていないのかな
PreTranslateMessageを使えばなんでもできますが、
メインウインドウとダイアログと両方に書かないといけないからなあ。しょうがないのかな
PreTranslateMessageを使えばなんでもできますが、
メインウインドウとダイアログと両方に書かないといけないからなあ。しょうがないのかな
279デフォルトの名無しさん
2018/10/02(火) 16:38:35.01ID:T1hsru+o PreTranslateMessageで書きますか。 キーは何をあてるのが自然でしょうか
Ctrl+Tabあたりかな
タブコントロールは、Tab だけと Shift+Tabで動きますからね
Ctrl+Tabあたりかな
タブコントロールは、Tab だけと Shift+Tabで動きますからね
280デフォルトの名無しさん
2018/10/02(火) 21:23:19.58ID:R8M7QKDK vista、vs.net2003 vc++の組み合わせだが
ALT+TABでアプリがきりかわりながら
ふつうにSDIとモードレスのダイアログでトグルする
ALT+TABでアプリがきりかわりながら
ふつうにSDIとモードレスのダイアログでトグルする
281デフォルトの名無しさん
2018/10/02(火) 21:49:14.12ID:T1hsru+o282デフォルトの名無しさん
2018/10/07(日) 14:30:22.57ID:stJt0pET >>281
ダイアログをCreateする時、親ウィンドウ(省略時=NULL)を指定していないから、
アプリケーションのメインウィンドウ(=AfxGetMainWnd())が、親ウィンドウが
になっているからでは?
CDialog::Create(CWnd::GetDesktopWindow())
とかでいけるはず。 MFCとは関係なく、Windows APIでは、所有ウィンドウ
(Owner Window)と、親ウィンドウ(Parent Window)は別管理。
ダイアログをCreateする時、親ウィンドウ(省略時=NULL)を指定していないから、
アプリケーションのメインウィンドウ(=AfxGetMainWnd())が、親ウィンドウが
になっているからでは?
CDialog::Create(CWnd::GetDesktopWindow())
とかでいけるはず。 MFCとは関係なく、Windows APIでは、所有ウィンドウ
(Owner Window)と、親ウィンドウ(Parent Window)は別管理。
283デフォルトの名無しさん
2018/10/15(月) 20:08:17.72ID:xZyzsY81 MSDN見ても解決しないのでお願いします。
CMFCColorDialogで作成した色選択ダイアログの動きが少しおかしいです。
どれかの色(六角形)を選択すると[OK]ボタンのフォーカスが当たり、再度
別の色を選択するとフォーカスが外れるんですが、仕様でしょうか??
CMFCColorDialogで作成した色選択ダイアログの動きが少しおかしいです。
どれかの色(六角形)を選択すると[OK]ボタンのフォーカスが当たり、再度
別の色を選択するとフォーカスが外れるんですが、仕様でしょうか??
284デフォルトの名無しさん
2018/10/15(月) 20:10:37.85ID:xZyzsY81 .DoModal()を使っています。
285デフォルトの名無しさん
2018/10/16(火) 10:55:52.13ID:gOw5Bgha286デフォルトの名無しさん
2018/10/16(火) 20:59:43.03ID:KuFMVrck >>285
わざわざ試していただいてありがとうござます!
こちらの環境、Windows10、VisualStudio2017なのでこれが原因っぽいです。
古いVisualStudioで試してみます。
業務アプリなのでサンプルは出しにくいです。申し訳ないです。
わざわざ試していただいてありがとうござます!
こちらの環境、Windows10、VisualStudio2017なのでこれが原因っぽいです。
古いVisualStudioで試してみます。
業務アプリなのでサンプルは出しにくいです。申し訳ないです。
287281
2018/11/03(土) 20:11:07.69ID:FHfXrfBW288デフォルトの名無しさん
2018/11/03(土) 20:17:24.87ID:FHfXrfBW 今まで、VC++6.0でずっとやってきました。特にそれで問題なかったからですが、意を決して、
Visual Studio 2017をインストして、古いソースコードを移植しようと思っています
VS2017に古いVC++6.0のdswファイルを読ませたのですが、うまくj変換できないようですが、どうしたら良いでしょうか
VC++6.0からの変換は出来ませんか
Visual Studio 2017をインストして、古いソースコードを移植しようと思っています
VS2017に古いVC++6.0のdswファイルを読ませたのですが、うまくj変換できないようですが、どうしたら良いでしょうか
VC++6.0からの変換は出来ませんか
289さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 20:20:22.32ID:Z2+VfrEc ワークスペースはソリューションに変わった。新しくソリューションファイルを作って、そこにC/C++のファイルを追加してビルドだ。
290デフォルトの名無しさん
2018/11/03(土) 20:48:27.94ID:FHfXrfBW インクルードファイルとかいろいろエラーがたくさん出てきたよ
これ相当無理っぽい???
これ相当無理っぽい???
292デフォルトの名無しさん
2018/11/03(土) 21:08:57.06ID:FHfXrfBW 取りあえず、簡単に比較するために、VC++6.0でMFCのSDIのデフォルトを作りました
それと比較するため、VS2017でC++のWindowsデスクトップのデスクトップアプリケーションのデフォルトを作りました
すると、VS2017の方はMFC自身を使わないバージョンなのかな、CMainFrmとかIMPLEMENT_DYNCREATEとかなくて
VC6.0++のMainFrm.cppとかを2017の方に持ってきてコンパイルしたらCMainFrmが定義されてないとか
ずらっとたくさん出てきます
それと比較するため、VS2017でC++のWindowsデスクトップのデスクトップアプリケーションのデフォルトを作りました
すると、VS2017の方はMFC自身を使わないバージョンなのかな、CMainFrmとかIMPLEMENT_DYNCREATEとかなくて
VC6.0++のMainFrm.cppとかを2017の方に持ってきてコンパイルしたらCMainFrmが定義されてないとか
ずらっとたくさん出てきます
293さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 21:11:31.59ID:Z2+VfrEc MFCに対応したプロジェクト/ソリューション設定じゃないとダメかも
294デフォルトの名無しさん
2018/11/03(土) 21:15:37.09ID:FHfXrfBW >>293
VS2017で、それを探してるのですが見つからないのですよ
MFCには対応してるのですよね。2015かそれ以前にはすでに対応してると聞いていたのですが
MFCを使ったデフォルトのコード生成はしてくれないとか??? w
VS2017で、それを探してるのですが見つからないのですよ
MFCには対応してるのですよね。2015かそれ以前にはすでに対応してると聞いていたのですが
MFCを使ったデフォルトのコード生成はしてくれないとか??? w
295さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 21:19:34.89ID:uOx37ouV Visual C++の中にMFCがある。Visual C++という項目がなければ、インストールが間違っている。
296デフォルトの名無しさん
2018/11/03(土) 21:23:19.86ID:FHfXrfBW >>295
メニューのファイルから新規作成、プロジェクトを選ぶと、その中にVisual C++はちゃんとありますよ
で、そこでWindowsデスクトップアプリケーションを選んでデフォルトを作ると、コードはSDKみたいなコードを吐きます
で、Windowsデスクトップウィザードってのがあったので、今これを選択してみたのですが、
アプリケーションの種類をコンソールにすると、その右にあるMFCのチェックボックスが有効になるのですが
メニューのファイルから新規作成、プロジェクトを選ぶと、その中にVisual C++はちゃんとありますよ
で、そこでWindowsデスクトップアプリケーションを選んでデフォルトを作ると、コードはSDKみたいなコードを吐きます
で、Windowsデスクトップウィザードってのがあったので、今これを選択してみたのですが、
アプリケーションの種類をコンソールにすると、その右にあるMFCのチェックボックスが有効になるのですが
297デフォルトの名無しさん
2018/11/03(土) 21:24:15.77ID:FHfXrfBW 続き
Windowsアプリケーションってのを選ぶと、MFCのチェックボックスが使用不可になってしまいます
Windowsアプリケーションってのを選ぶと、MFCのチェックボックスが使用不可になってしまいます
298さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 21:27:13.99ID:uOx37ouV MFCアプリが作れないなら、インストールで追加するしかないぜ。
299さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 21:29:11.91ID:uOx37ouV300デフォルトの名無しさん
2018/11/03(土) 21:29:36.23ID:FHfXrfBW おいおい、なんだこれ
VS2017で、新規作成、プロジェクトで、Windowsデスクトップウィザードで
コンソールアプリケーションでMFCをチェックしてデフォルトのコードを自動生成してみました
そしてソリューションのビルドしたら、CWinAppが定義されてないとかエラーがわんさか出てきたぞ
おいおい、デフォルトの自動生成コードもビルド出来ないじゃん
VS2017で、新規作成、プロジェクトで、Windowsデスクトップウィザードで
コンソールアプリケーションでMFCをチェックしてデフォルトのコードを自動生成してみました
そしてソリューションのビルドしたら、CWinAppが定義されてないとかエラーがわんさか出てきたぞ
おいおい、デフォルトの自動生成コードもビルド出来ないじゃん
301さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 21:30:32.78ID:uOx37ouV 左下、「探しているものが見つからないとき」
302デフォルトの名無しさん
2018/11/03(土) 21:33:48.34ID:FHfXrfBW >>299
おや、そこが違う。 私のは、
visual C++の下に
Windowsデスクトップ
クロスプラットフォーム
MFC/ATL
テスト
その他
Extensibility
ってなってて、 MFC/ATLのところは
ATLプロジェクト
ってのだけがあります
おや、そこが違う。 私のは、
visual C++の下に
Windowsデスクトップ
クロスプラットフォーム
MFC/ATL
テスト
その他
Extensibility
ってなってて、 MFC/ATLのところは
ATLプロジェクト
ってのだけがあります
303デフォルトの名無しさん
2018/11/03(土) 21:37:10.59ID:FHfXrfBW 何かインストを失敗してるのかなあ。 あるいはインストするときに何をインストするのかチェックがあったんだが
それを間違えてるのか。 でも俺がチェックをしなかったのはモバイル関係のところくらいだったんだよねえ
それを間違えてるのか。 でも俺がチェックをしなかったのはモバイル関係のところくらいだったんだよねえ
304さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/03(土) 21:38:58.82ID:uOx37ouV■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★3 [Hitzeschleier★]
- 【将棋】福間香奈 女流六冠が会見 妊娠・出産でタイトル戦の事実上不戦敗 「妊娠したら、どちらか一方を諦めないといけない状況」★2 [冬月記者★]
- かつや、明日からカツ丼(竹)790円→590円、ロースカツ定食830円→630円、カツカレー(竹)990円→790円 画像あり [お断り★]
- タイがカンボジアを空爆、トランプ氏仲介の和平合意は“事実上崩壊”軍事衝突へ タイ首相「もはや対話の余地ない」 [お断り★]
- 空自機レーダー照射、音声データ公開 中国 ★5 [蚤の市★]
- 【速報】 米国政府、中国が日本の自衛隊にレーダー照射を批判、同事案で中国を批判するのは初めて ★2 [お断り★]
- 防衛省「了解は言っていない」 [966095474]
- 【愛国】田母神俊雄「日本は米国に追い込まれて真珠湾攻撃に踏み切っただけ」 [834922174]
- 中国、日本人tiktokの収益剥奪開始wmwmwmwmwmwm [834922174]
- 【世界人権デー】“胎児も事故の被害者”と認めるよう県議会が国に意見へ _スカラカ、チャカポコ。チャカポコ、チャカポコ。。。 [979264442]
- 【速報】共同通信スクープキタ━(゚∀゚)━!!「実際は日本の自衛隊機が中国機に対してレーダ照射ロックオンしていたことが発覚」 [339712612]
- マリン船長のラーメン、投げ売りされてしまう😭
