問題タブ [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 投票する
4 に答える
5636 参照

c++ - プログラムでコンボボックスを変更する

comboboxに反映されたテキストを変更するために、を新しい値で更新する必要があります。これを行う最もクリーンな方法は、comboboxが初期化された後、メッセージを表示することです。

だから私はpostmessageを含むhwndにを作成しようとしていますcombobox

それで、現在選択されているアイテムをn番目のアイテムに変更してメッセージを送信したい場合、どのpostmessageようになりますか?

関係があると思いますがON_CBN_SELCHANGE、うまく動作させることができません。

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

c++ - アプリはVS2008SP1DLLでは動作しません。以前のバージョンはRTMバージョンで動作します

VisualStudio6からVisualStudio2008に切り替えてから、バージョンを気にしないように、マニフェストファイルとともにMFC90.dllとmsvc[pr]90.dllをプライベートサイドバイサイド構成で使用しています。またはそれらをシステムにインストールします。

SP1より前では、これは正常に機能していました(そして、開発者のマシンでも正常に機能します)。SP1後のテストを行ったので、昨日の朝から髪を抜いてきました。

まず、NSISインストーラースクリプトが、redistフォルダーからdllとマニフェストファイルをプルします。アプリはまだRTMバージョンにリンクしているため、これらは正しくありませんでした。

そこで、すべてのプロジェクトにdefine forを追加して_BIND_TO_CURRENT_VCLIBS_VERSION=1、それらがredistフォルダー内のSP1 DLL(または新しいサービスパックがリリースされたときの後続のDLL)を使用するようにしました。これを見つけるのに何時間もかかりました。

コンパイルから中間ファイルフォルダーに生成されたマニフェストファイルを再確認したところ、9.0.30729.1SP1のバージョンが正しくリストされています。私はダブルチェックとトリプルチェックをクリーンなマシンに依存しています:それはすべてエラーなしでローカルdllにリンクしています。

アプリを実行しても、次のエラーが発生します。

アプリケーションを正しく初期化できませんでした(0xc0150002)。[OK]をクリックして、アプリケーションを終了します。

私がグーグルやマイクロソフトで行った検索のどれも私の特定の問題に関連するものを思い付きませんでした(しかし、このエラーメッセージで2005年に戻ったヒットがあります)。

SP1で同様の問題が発生した人はいますか?

オプション:

  • 問題を見つけて修正し、正常に機能するようにします(推奨)
  • redistをインストールします
  • 古いRTMdllとマニフェストファイルを掘り起こし、#defineを削除して現在のものを使用します。(Microsoftがあなたのredistフォルダーからそれらを爆破するので、私は以前のインストーラービルドでそれらを持っています!)

編集:定義をオフにして(RTM dllへのリンク)再構築を試みましたが、RTMdllがフォルダーにインストールされている限り機能します。SP1 dllがドロップインされると、次のエラーが発生します。

c:\ Program Files \ ... \ ... \ X.exe

アプリケーションの構成が正しくないため、このアプリケーションを起動できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります。

他の誰もこの問題に対処する必要はありませんでしたか?

編集:ニヤリと笑うために、テストマシンにVS2008SP1用のvcredist_x86.exeをダウンロードして実行しました。それは動作します。SP1DLLを使用します。そして私のRTMリンクアプリ。ただし、SP1より前に機能していたプライベートサイドバイサイドディストリビューションではありません。

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

c++ - Win32 アプリケーションで C++/MFC を介してマウス カーソルにダイナミック テキストを表示する方法

win32 アプリのマウス カーソルの位置に動的テキストを表示できるようにしたいと考えています。これは、マウス座標でウィンドウの TextOut() 呼び出しを使用して mousemove イベント中に実行し、保存された最後のカーソル位置の周囲の四角形を無効にして、前の出力をクリアすることができます。ただし、これにはちらつきが発生し、トラッカー ボックスなどのウィンドウに他のものが描画されるときに問題が発生する可能性があります。おそらく既存のカーソル描画/無効化メカニズムを使用して、これを行うより良い方法はありますか?

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

mfc - MFC Feature Pack クラスのメニューのアイコン

新しい MFC 機能 (Feature Pack) でメニューが表示される場所は 3 つあります。

  • メニュー バー (CMFCMenuBar)
  • ポップアップ メニュー (CMFCPopupMenu)
  • CMFCButton の「ドロップダウン メニュー」バージョン

それらすべてのメニューにアイコン(ハイカラーで透明度のあるもの)を入れたいです。メニューバー項目の前にアイコンをカスタム描画するために使用できる CFrameWndEx::OnDrawMenuImage() を見つけました。2008 年にアイコン描画を実装する必要があるため、あまり便利ではありませんが、機能します。他の人については、まだ解決策を見つけていません。メニューのアイコンを自動的に設定する方法はありますか?

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

user-interface - Stingray Objective Toolkit からの移行

Stingray Objective Toolkitを使用して販売している商用 MFC/C++ アプリケーションのコレクションがあり、ソース コード ライセンスがあり、過去にBristol Technologies WindU (UNIX 上の Windows API、 MFC を含む)。

短い話ですが、約 18 か月前に Stingray を Win64 に移植しましたが、長く退屈な作業でした。この間、Ultimate ToolboxProf-UISなどの商用およびオープン ソースの代替 MFC 拡張ライブラリについて調査しました。

  • 他の誰かが Stingray を使用していて、別の方法に移行しましたか?
  • もしそうなら、あなたはどれを提案しますか?
  • 移動の主な危険は何でしたか?
0 投票する
4 に答える
6153 参照

mfc - ダイアログ ベースのアプリケーションで CMFCVisualManager を使用できますか?

ダイアログ ベースのアプリケーションで CMFCVisualManager を使用して、アプリケーションの外観を変更できますか? もしそうなら、それはどのように行われますか?

アイデアは、MSVC 2008 でリリースされた MFC Feature Pack を使用して、プッシュ ボタンなどのコントロールの形状、色などを変更することです。

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

winapi - プログラムで MFC ラジオ ボタンを選択する

ダイアログを初期化するときに、フォームのラジオ ボタンの 1 つを選択したいと思います。CButtons、CComboBoxes などで通常行うように、Class Wizard を使用して Control 変数を関連付ける方法がわかりません。

さらに、CRadioButton クラスが存在することさえ好きではありません。

複数のラジオ ボタンから 1 つを選択するにはどうすればよいですか?

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

c++ - MFC ペインティング グリッチを修正する方法?

仕事で開発中のマテリアル システムにドラッグ アンド ドロップ機能を実装しようとしています。このシステムの一部には、ユーザーのハード ドライブに保存されたマテリアルのグループに分割されたリポジトリとして機能する「マテリアル ライブラリ」が含まれています。

UI の改良の一環として、「ハイライト」タイプの機能を実装したいと考えていました。ドラッグ アンド ドロップ時に、合法的にマテリアルをドロップできるウィンドウの色が非常に微妙に変化し、これが有効なアクションであるというユーザーへのフィードバックを改善します。

「基本マテリアル」(CStatic を使用した単なる CWnd) を含むバーを、ハイライトされていないときの中間の灰色の背景から、ホバーしたときの青色の背景に変更しています。すべてうまく機能し、OnDragEnter および OnDragExit メッセージは堅牢に見え、ハイライト ステータスを示すフラグを設定します。次に、OnCtrlColor でこれを行います。

ただし、スクリーンショットでわかるように、ドラッグされたオブジェクトの下でペイントが「グリッチ」し、元のグレーがそのまま残ります。それは本当に醜く見え、基本的に全体の効果を台無しにします.

これを回避する方法はありますか?

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

user-interface - MFC アプリケーションのチャート コントロール?

Visual C++ MFC アプリケーションで使用できるサードパーティ コントロールについて、いくつか提案をお願いします。

0 投票する
1 に答える
589 参照

mfc - VFW (Video For Windows) API はアルファ チャネル透明度をサポートしていますか?

VFW (Video For Windows) API はアルファ チャネル透明度をサポートしていますか? アルファ チャネル情報を含むビデオをエクスポートできるようにしたいと考えています。VC6でこれを行うにはどうすればよいですか?