MFC相談室 mfc23d.dll [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/09/21(水) 00:20:48.44ID:OfO+mYkd
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

0663デフォルトの名無しさん2020/09/24(木) 19:16:51.84ID:ipSsIIJF
>>661
MFCも、本等は好き放題出来る。
個人的には、大改造して使ってる。

0664デフォルトの名無しさん2020/09/24(木) 19:36:48.02ID:CT30hZB8
>>662
>>663
お二人のようになれればいいのですけどね

0665デフォルトの名無しさん2020/09/24(木) 20:48:36.72ID:anZxJGRt
>>641
単一ドキュメント複数ビューはできないわけじゃないよ。
DocTemplateを派生させる必要があるというだけ。

0666デフォルトの名無しさん2020/09/24(木) 21:07:02.77ID:sDDeHHJX
>>664
「MFCによるWindowsプログラミング」ISBN 475611749X

首都圏在住なら国会図書館で見てこい
ttps://iss.ndl.go.jp/books/R100000002-I000002930291-00

田舎住まいなら尼(ISBNで検索)で\32,580で売ってるから上司に頼んでこれ買ってもらえ

0667デフォルトの名無しさん2020/09/24(木) 21:20:33.40ID:qMR+aI5t
>>641
> 1つのDocに対して複数のViewなどをしたくても多分、設計上は出来ない。
CDocumentには、UpdateAllViews()という名前の関数があるように、
複数のビューを関連付けられるぞ。

>>662
わざわざDoc/Viewを選んでおいてDocクラスを放置するくらいなら、
印刷プレビューでも使わない限り、Doc/Viewを使わない形式で
CMainFrameとCChildViewだけを使うほうが楽だと思うけどな。

0668デフォルトの名無しさん2020/09/24(木) 21:45:13.19ID:bZ1sVv66
SDIでもCFromViewしか使ったことないナ

0669デフォルトの名無しさん2020/09/25(金) 00:33:44.17ID:mGml3uVc
MFC は、数十年前w
Jeffrey Richter とかの時代

Win32 API を、クラスにまとめたもの。
メニューバーも作れる

MFCって、まだ存在するのか

0670デフォルトの名無しさん2020/09/25(金) 00:48:06.02ID:nCkagqzh
WindowsでC++とVisual Studioを使ってデスクトップのプログラムするなら、
今でもMFC以外の選択肢はほぼ無いはずだが、

06716692020/09/25(金) 02:04:10.72ID:mGml3uVc
かんたん Visual C++[改訂2版]、堀義博、2017

この本では、.net か、managed C++ か、interop か何かを使っていた。
でも結局、このやり方も、流行らなかったのか

MFC ではなかった気がする

0672デフォルトの名無しさん2020/09/25(金) 09:17:50.44ID:nCkagqzh
>>667
> > 1つのDocに対して複数のViewなどをしたくても多分、設計上は出来ない。
>CDocumentには、UpdateAllViews()という名前の関数があるように、
>複数のビューを関連付けられるぞ。

スマソ。記憶違いがあった。
1つのDocに対して複数のViewは、一応は関連付けられる。
しかし、それはどれも1つのCFrameWndの中に入れておかないといけなくなって
しまっているため、WzEditorの「テキストの二重化」のように、
1つのテキストファイルの別の場所を複数のFrameWndの中に表示するという
ようなことが、MFCでは基本的に出来ないハズ。

0673デフォルトの名無しさん2020/10/16(金) 18:08:33.74ID:wvravRFo
CTreeCtrlクラスでツリー表示の文字色を部分的に変えたいけど、Windows SDKみたいにカスタムドローしないと無理ゲー?

0674デフォルトの名無しさん2020/11/20(金) 05:11:03.85ID:lrgUTmYU
実際にウィンドウ上に表示している画面をBitmapに画像保存するんじゃなくて、
表示させないで、データだけを元に、連続的に画像保存するってどうやるのかな?

例えば、ボタン1つで、円の位置を連続的に動かしたデータを、
それらをわざわざ画面に表示させないで、連続的に画像に保存したいんだけど、
やり方がわからない。

0675蟻人間 ◆T6xkBnTXz7B0 2020/11/20(金) 05:14:55.72ID:7Y8jq4/V
>>674
CreateCompatibleDC(NULL)とCreateDIBSectionだろう。DIBビットマップオブジェクトを作成し、DCでそれを選択し、DCで描画する形になる。

0676デフォルトの名無しさん2020/11/21(土) 18:08:17.32ID:DvxemaNf
>>675
ありがとう、教えてもらったキーワードをググってみます。

0677デフォルトの名無しさん2021/01/18(月) 23:31:44.08ID:zaIVxsp1
DialogにCMFCFontComboBoxを張り付け
プロパティの「フォントを使用して描画」をTrueにすると
コンボボックスの行の高さを無視して大きく描画されます。
XX明朝とXXゴシックが縦に重なって描画される感じです。
(ディスプレイ設定で拡大表示している場合のみ)
以前は普通に表示されていた気がするのですが。
良いアイデアがあればお願いします。

0678デフォルトの名無しさん2021/01/21(木) 23:11:43.50ID:CyPBYCkQ
あきらめて素のComboboxで作り直しました。

0679デフォルトの名無しさん2021/02/19(金) 22:39:02.63ID:Igsf+004
>>439
> C++Nativeの今風なGUIライブラリ作って欲しいわ

禿しく同意

0680デフォルトの名無しさん2021/02/20(土) 00:53:43.48ID:NHEiPkLm
WinUI3ってc++で書かれてるからc++ nativeじゃね??

0681デフォルトの名無しさん2021/02/21(日) 22:41:37.64ID:sZqIhPVp
>>679
それだけのことなのにそれをやらないマイクロソフト

0682デフォルトの名無しさん2021/02/22(月) 07:01:41.68ID:1ohBYlrZ
Direct3Dは違うのか?

0683デフォルトの名無しさん2021/03/01(月) 23:14:22.24ID:L7jyZAdw
昔あったCFrameWndのLoadBarStateとSaveBarStateは
何に置き換わったのでしょうか?
CMF…系のツーツバーやステータスバーでは保存&復元されないようです。

0684デフォルトの名無しさん2021/03/26(金) 13:13:22.16ID:zWEWautG
MFCより先進的なGUIフレームワークを使いたいならQtとかwxWidgetsを使えってことなのかねえ?

0685デフォルトの名無しさん2021/06/19(土) 20:11:27.16ID:Obm1tdWY
>>683
m_pszProfileNameを初期化してる?

0686デフォルトの名無しさん2021/06/22(火) 01:17:37.30ID:jHGnhlRq
>680
WinUI3には期待している。

06876832021/06/28(月) 15:55:19.44ID:yWrL1Flg
>>685
レスサンクス
明示的には初期化はしていませんが
CWinApp::SetRegistryKey(...
を呼んでるのでその中でm_pszAppNameがセットされているようです。

0688デフォルトの名無しさん2021/06/28(月) 16:12:02.63ID:DiM7L1Ie
>>683
CWinAppEx::LoadStateやCWinAppEx::SaveStateが勝手に呼ばれるはずだけど

06896832021/06/28(月) 17:55:27.02ID:yWrL1Flg
解決しました
VS2005で作ったソースをVS2019に移植する際
CWinAppをCWinAppEx
CToolbarをCMFCToolBar
のような作業をやったんだけど
CMainFrameからCFrameWnd::(Exなし)の関数を呼んでたのが原因でした
お恥ずかしい。レスくれた方、ありがとうございました。

0690デフォルトの名無しさん2021/09/15(水) 12:15:47.57ID:jggBe0Ff
>>684
WinUI 3がネイティブ
XAMLの部分はC++コードになる

0691デフォルトの名無しさん2021/09/15(水) 21:06:18.05ID:u4qV17E7
WinUIは普通にXAML使うが。

0692デフォルトの名無しさん2021/09/16(木) 19:46:16.94ID:yaf4gWdF
WPFでもXAMLからコード吐いてるぞ?

0693デフォルトの名無しさん2021/09/16(木) 22:38:06.15ID:vfYN11/r
bamlになるだけでコードを吐いたりはしないと思うが?.xaml.cs と混同してる?

0694デフォルトの名無しさん2021/09/19(日) 17:56:08.37ID:k97hf5Wx
そうか勘違いか

0695デフォルトの名無しさん2021/09/25(土) 10:57:19.73ID:jFY/PXLr
せめてダークモードのテーマ用意して下さい

0696デフォルトの名無しさん2021/10/30(土) 10:54:38.33ID:MPYyHG36
BCGのほうはダイアログや埋め込みスクロールバーもダークテーマにできるんだよなぁ

0697デフォルトの名無しさん2022/03/15(火) 08:26:51.33ID:RM1ltBr1
BCGはロシアのセンペテロブルグだったね。
ドル建てで売ってるからウクライナ侵攻の対ロ経済制裁の影響を受けて倒産とかはなさそうだな。

0698デフォルトの名無しさん2022/03/31(木) 10:44:02.36ID:Jyr8BV0e
>>697
VisaやMasterのカード決済ができなくて、売れないのでは? ロシア国外のWeb
サイトで決済して、ドルをロシアへ送金しようにも、SWIFTからの排除で銀行間
送金もできないし。

0699デフォルトの名無しさん2022/04/02(土) 21:39:19.21ID:1+ihffDV
>>698
それもそうか〜。次の更新料支払いまで10ヵ月近くあるけど、どうなるのかなぁ。
BCGライブラリはMFCでアプリ作るならやっぱり便利だし、メンテ続けてほしい。

0700デフォルトの名無しさん2022/04/03(日) 10:10:08.68ID:cIyOxh+4
BCGは次のバージョンでPer Monitor DPIに対応すると予告していて、ちょっと興味ある

0701デフォルトの名無しさん2022/04/28(木) 07:46:47.14ID:2+PIOWFw
BCGは新バージョンのベータ版アナウンスしたし、経済制裁の影響は大してないのかも。

0702デフォルトの名無しさん2022/05/19(木) 18:06:24.38ID:VJOjo1jQ
ツベルクリン反応

0703デフォルトの名無しさん2022/06/01(水) 11:16:30.11ID:ENbHFSWO
マイクロソフト社がフライドチキン業界に進出したらどんな略称になるんだろう?

0704デフォルトの名無しさん2022/06/05(日) 21:36:12.13ID:re3nd4/n
サッカークラブも含めてMSFCの可能性もあり得た

0705デフォルトの名無しさん2022/06/27(月) 13:08:04.25ID:Yq/DwuXq
mfcのactivexコントロールの良書教えて下さい

0706デフォルトの名無しさん2022/10/26(水) 22:05:25.04ID:IeA8a0h8
MFCで画像閲覧ソフトを作成しています。
ウィンドウのサイズを変更すると画像が消えてしまいます。
なぜなのかさっぱり検討が付きません。

https://ideone.com/Gn0AsK

ウィンドウのサイズを変更したときにOnPain()が呼ばれることは確認済みです。
また、OnPaint()内の
cbmp = CBitmap::FromHandle(m_image);
の部分を
CImage image;
image.Load("画像データ");
cbmp = CBitmap::FromHandle(image);
のように決め打ちで画像データを表示すると画面サイズを変更しても画像が消えません。

なにか良い手はないかご提示宜しくお願い致します。

07077062022/10/26(水) 22:08:37.07ID:IeA8a0h8
すいません、環境を書くのを忘れていました。

Windows 10 Home 22H2 (64bit)
Microsoft Visual Studio Community 2019 Version 16.11.20

何卒宜しくお願い致します。

0708デフォルトの名無しさん2022/10/27(木) 01:28:58.14ID:6HC7kWqW
「mfc onpaint WM_PAINT」で検索してみれば?

MFC とか、こういうのは初心者がやるものじゃない。
たぶん、仕組みを理解するだけでも、10年以上掛かる

0709デフォルトの名無しさん2022/10/27(木) 03:07:34.48ID:niMWpG44
良い手も何も、そういうものだと思うしかない
OnPaint()で描けばいいだけ
いつウインドウがinvalidateされるのか、アプリケーションプログラマが完璧に把握することはたぶんできないし
しても意味はあまりない

0710デフォルトの名無しさん2022/10/27(木) 05:57:41.65ID:+UGgATct
10年のうち、もう8~9年経っている感じだね

0711デフォルトの名無しさん2022/10/27(木) 22:03:00.16ID:gaUWFwsd
>>708->>10
レスありがとうございます。

そういうものなのですね。
そういうものだと思って諦めます。
ありがとうございました。

0712デフォルトの名無しさん2022/10/27(木) 22:03:59.35ID:gaUWFwsd
>>ミスりました…
>>708-710

0713デフォルトの名無しさん2022/10/31(月) 11:29:06.13ID:ENWdRL/8
>>706
そもそも、
cbmp = CBitmap::FromHandle(m_image);
で取得したものを
cbmp->DeleteObject();
で破棄しているのが原因では。

これだと1回目の描画のときにm_imageが破棄されて、
2回目以降は描画されないかと。

■ このスレッドは過去ログ倉庫に格納されています