問題タブ [mfc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
2510 参照

visual-c++ - Vista の MFC アプリケーションでスクリーン キャプチャが機能しない

OpenGL 描画ルーチンを使用して、MFC で構築された社内アプリケーションがいくつかあります。それらはすべて同じコードを使用して画面に描画し、画面を印刷するか、JPEG ファイルに保存します。Windows XP ではすべて正常に動作しており、Vista でも動作させる方法を見つける必要があります。

3 つのアプリケーションでは、すべてが機能します。残りの 1 つでは、ウィンドウの境界線、タイトル バー、メニュー、およびタスク バーを取得できますが、内部は表示されません。前述したように、これらのアプリケーションはまったく同じコードを使用して画面に書き込み、ウィンドウ イメージをキャプチャします。関連しているように見える唯一の違いは、問題のアプリケーションが MFC マルチ ドキュメント インターフェイスを使用しているのに対して、その作業は、単一のドキュメント インターフェイスを使用します。

答えがネット上にないか、思ったよりグーグルが下手です。MSDN フォーラムで質問したところ、GDI ではなく GDI+ を使用するという実際的な提案しか得られませんでしたが、それでも違いはありませんでした。ウィンドウへのポインターを指定して、キャプチャ、印刷、または保存するコードのすべての部分でさまざまなことを試しましたが、明らかにウィンドウ自体の問題です。私はまだ SDI を使用して問題のあるアプリケーションを再構築しておらず、他にアイデアがありません。

誰もこのようなものを見たことがありますか?


私が持っているのは 4 つのアプリケーションです。多くの共通コードを使用し、実際の .h ファイルと .cpp ファイルを共有しているため、描画とスクリーン キャプチャのコードが同一であることがわかります。

*pWnd と、ソースの四角形と宛先のサイズを受け取る WindowtoDIB() ルーチンがあります。Microsoft のコードをわずかに変更したように見えますが、Microsoft の Web サイトで、このファイルに他の関数を見つけました。私の 4 つのアプリケーションのうち、3 つがこれを問題なく処理しますが、1 つがそうではありません。最も明白な違いは、問題の 1 つが MDI であることです。

*pWnd が問題のようです。私は決して MFC の第一人者ではありません。問題は、SDI に 1 つのウィンドウ設定があり、MDI に複数のウィンドウ設定があることにあるように思えます。関数に間違った *pWnd を渡している可能性があります。

その間、64 ビット Vista テスト マシンでは正常に動作するようになりましたが、32 ビット Vista マシンではまだ動作しません。理由がわかりません。前回のテスト以来、私は何も変更していません。他の誰も変更していないと思います。(32 ビット バージョンでは、Print Screen キーは期待どおりに機能しますが、画面を JPEG として保存しません。)

0 投票する
3 に答える
4068 参照

visual-c++ - CTreeCtrl オブジェクトの TVN_SELCHANGED に関する問題

CTreeCtrl MFC クラスを使用して作成されたツリー コントロール オブジェクトがあります。ツリー コントロールは、名前の変更をサポートする必要があります。ツリーの項目のいずれかを左クリックすると、TVN_SELCHANGED イベントが呼び出され、そこから以下のようにツリーの選択項目を取得できます。CString s = m_moveListTree.GetItemText(h);

ただし、ツリー内のアイテムを右クリックしても TVN_SELCHANGED イベントが発生しないため、選択したアイテムは左クリック イベントと同じままです。これにより、次の問題が発生します: 1) ユーザーがアイテム A を左クリックする 2) ユーザーがアイテム B を右クリックして、名前を変更すると言う 3) 選択したアイテムがまだ A であるため、アイテム A に名前変更が適用されます。

問題解決にお役立てください。

-プラビーン

0 投票する
2 に答える
3112 参照

c++ - CEdit コントロールでキャレット位置を予約するにはどうすればよいですか?

私は MFC でアプリケーションをプログラミングしており (聞かないでください)、番号を保持する CEdit ボックスを持っています。その番号が編集されたら、変更を行い、変更を行う前のキャレットを置き換えたいと思います-ユーザーが「。」の直前にいた場合。「35.40」では、「345.40」に変更した場合でもドットの前に配置したいと思います。私は現在 CHANGE メッセージをキャッチしていますが、それは別のものに切り替えることができます (UPDATE?)。どうすればこれを達成できますか?

0 投票する
6 に答える
2583 参照

c++ - C++ for Windows でダイヤルアップ、ブロードバンド、またはワイヤレスのインターネット接続をどのように検出しますか?

インターネット接続の種類 (ブロードバンド、ダイヤルアップ、ワイヤレス) に基づいていくつかのレジストリ値を設定する必要があるインストール プログラム (Windows インストーラ ベースではなく、通常の C++ MFC プログラム) があります。現在、この情報は、一連の「はい」または「いいえ」の質問をすることによって決定されています。問題は、インストールを行っている人物が、コンピューターを所有して使用している人物とは異なるため、これらの質問に対する答えがどうあるべきか常に確信できるとは限らないことです。この情報をプログラムで判断する方法はありますか? コードは、Windows XP 以降の C++ (およびオプションで MFC) で記述されています。.NET ベースのソリューションはオプションではありません。インストール プログラムを実行する前に、フレームワークがインストールされているかどうかを確認する必要がないからです。

明確にするために、問題は主に、ワイヤレス接続とダイヤルアップ接続が「常時接続」ではないことです。これにより、サーバーが常に利用可能であるとは限らないため、製品が別の方法で動作する必要が生じます。したがって、厳密に速度を測定するソリューションは役に立ちませんが、速度に依存する設定があり、製品が接続するとすぐにダイアルアップ接続を介して MB の情報を送信しようとしません.

0 投票する
2 に答える
919 参照

qt - MFCなしで​​CMutexと対話する

CMutex(false、 "blah")を使用する複数のMFCアプリがあります。ここで、 "blah"を使用すると、ミューテックスがプロセスの境界を越えて機能します。

これらのアプリの1つは、MFCなしで​​書き直されました(代わりにQtを使用)。Win32呼び出しを使用してCMutexをシミュレートするにはどうすればよいですか?(QtのQMutexはプロセス間ではありません。)私はMFCアプリを変更したくないです。

0 投票する
4 に答える
16513 参照

c++ - 非クライアント領域に描画する方法は?

ウィンドウの非クライアント領域で、メニュー バーの右側に描画できるようにしたいと考えています。

C++ / MFC を使用して、これは可能ですか?

0 投票する
2 に答える
870 参照

windows-mobile - MFC 経由で Wi​​ndows Mobile 6 の CDialog ベースのアプリケーションでソフトキーを使用するにはどうすればよいですか?

MFC 経由で Wi​​ndows Mobile 6 の CDialog ベースのアプリケーションでソフトキーを使用するにはどうすればよいですか?

私が作業している CDialog ベースの Windows Mobile 6 (タッチスクリーン) Professional アプリがあります。

WM6 Professional の CDialog ベースのアプリの既定の動作は、既定ではソフトキーを使用しないことです... IDOK と IDCANCEL をメイン ダイアログ クラスに送信する "キャンセル" と "OK" 機能にソフトキーをマップしたいと考えています。

私は幸運にも CCommandBar を操作しようとしましたが、SHCreateMenuBar もうまくいきませんでした。

これを機能させる方法のサンプルはありますか?

0 投票する
7 に答える
12121 参照

c++ - MFC UIアプリケーションの単体テスト?

大規模なMFCUIアプリケーションをどのように単体テストしますか?

長年開発されてきた大規模なMFCアプリケーションがいくつかあります。いくつかの標準的な自動QAツールを使用して、基本的なスクリプトを実行し、ファンダメンタルズをチェックしたり、ファイルを開いたりします。これらは、デイリービルド後にQAグループによって実行されます。

ただし、個々の開発者がコードをデイリービルドに送信する前に、ダイアログ、メニュー、およびアプリケーションの他の視覚要素に対してテストをビルドして実行できるような手順を紹介したいと思います。

デバッグビルドでのみ表示されるダイアログの非表示のテストボタンなどの手法について聞いたことがありますが、このための標準的なツールキットはありますか。

環境は、C ++ / C / FORTRAN、MSVC 2005、Intel FORTRAN 9.1、Windows XP / Vista x86&x64です。

0 投票する
4 に答える
2831 参照

c++ - VC2005 でビルドされたレガシー MFC アプリケーションに後付けするのに最適なリボン UI コントロールは何ですか?

従来の MFC アプリケーションにリボン スタイル コントロールを導入した経験はありますか?

新しい VC2008 Feature Pack に含まれていることは知っていますが、VC2005 からコンパイラを変更することは、ソース ベースと環境への統合、Intel FORTRAN、ClearCase、多くの 3rd ライブラリにとって大きな問題です。

ほとんどが C#/VB .NET に焦点を当てており、ネイティブ C++ MFC 用の実装はわずかです。

私は Google が見つけた通常のレビューをすべて読みましたが、ほとんどが今では静かになっているので、実際にそれを行い、痛みの壁を通り抜け、VC2005 とリボン UI を使用してレガシー アプリケーションをリリースした人々からここに興味があります。

現在、カスタマイズ可能なツールバーやドッキング ウィンドウなどの MFC 拡張機能を提供するために、非常に古いバージョンの Stingray Objective Toolkit を使用しています。


誰もがProf-UISを使用しました。他の商用のものと比較して、比較的安価で無制限の開発者ライセンスは、他のものの 10 分の 1 のコストです。

フリー、オープンソース、または L-GPL 化されたものはありますか?

0 投票する
5 に答える
6621 参照

windows - SVNリビジョン番号付きのMFCアプリでFILEVERSIONをプログラムで更新する

MFCアプリでFILEVERSION文字列をプログラムで更新するにはどうすればよいですか?特定のリリースのSVNrevを含むヘッダーファイルを生成するために使用するビルドプロセスがあります。http://www.compuphase.com/svnrev.htmのSvnRevを使用して、MFCアプリのキャプションバーを設定するために使用するヘッダーファイルを更新しています。ここで、この#defineをFILEVERION情報に使用します。

続行するための最良の方法は何ですか?