問題タブ [cpropertysheet]

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 投票する
1 に答える
325 参照

mfc - プロパティシートフッターの色の描画に問題がありますか?

プロパティ シートをデザインし、そのフッターをOnPaint()イベントのグラデーションにペイントしました。フッターは次のようになります。赤い丸で囲まれたボタン領域を確認してください。 ここに画像の説明を入力

OnPaint では、次のように実行していましたが、

上の画像ではボタンは透明ではありませんが、実際にはボタンの背景は下の画像のようになります。

ここに画像の説明を入力

ウィザード ボタンの背景またはフッター領域は上の画像のように見えるはずですが、最初の画像を見ると、[戻る] ボタン、[次へ]、および [キャンセル] ボタンの周りに白い色があります。

私がこのようにしている場合、画像は次のように灰色になります。しかし、その色は右にグラデーションにする必要があります。グラデーションブラシを作成できません。

ここに画像の説明を入力

CtlColor で NULL を返そうとしましたが、違いはわかりませんでした。

とから独自のクラスを派生さCPropertySheetCButton

これらのボタンの周りの境界線を削除する方法を教えてください。

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

mfc - プロパティシートを非表示にする方法は?

シートを非表示にする際に問題に直面しているプロパティシートがありました。私が行ったことを簡単に説明します。

PropertySheet OnWizardFinish() で、シートを非表示にして次のことを実行しようとしています。

したがって、ここではメッセージボックスのみを表示し、シートを非表示にする必要があります。これは私が期待していることShowWindowAsyncですが、バックグラウンドシートにはまだ存在します。

ダイアログベースのアプリケーションで試したのと同じことは、バックグラウンドウィンドウが非表示になり、メッセージボックスのみが表示されるように、期待どおりに機能しています。

詳細については: ここに画像の説明を入力

そして、[完了] をクリックすると、シートが非表示になり、次のようなメッセージ ボックスが表示されます。 ここに画像の説明を入力

プロパティシートウィザードでこれを達成する方法を教えてください。

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

c++ - CPropertySheet は 1 秒間だけ表示されます

3 つの CPropertyPages を持つ CPropertySheet を MFC アプリケーションに追加しようとしています。私の問題は、プロパティ シートが 1 秒未満しか表示されずに閉じてしまうことです。CPropertySheet を作成した後に別のモーダル ダイアログを開くと、CPropertySheet は開いたままになり、問題なく使用できます。これが私のコードです:

最初のパラメーターとしてimagedlg->Create(使用するときに問題が発生する可能性があると思います。NULL私がフォローしていたチュートリアルはthis、の代わりに使用されましたNULL。ただし、次のエラーが発生します。

IntelliSense: 型 "CSLIMOptCplusplusApp *" の引数は、型 "CWnd *" のパラメーターと互換性がありません

私も試しimagedlg->Create();てみましたが、これも一瞬しか点滅しません。CPropertySheet が閉じられるまで開いたままにしたいと思います。助けてくれてありがとう!

編集: これは、プロパティシートをどのように見せたいかのイメージです。最初のタブでは ListControl を使用してデータベース オプションを変更しましたが、他の 2 つのタブでは別のことを行います。私の意図は、ダイアログ/プロパティシートを現在と同じように見えるようにすることですが、閉じるのではなく開いたままにすることです。 Cプロパティシート

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

c++ - CPropertySheet/タブ付きダイアログのページの下のギャップを削除する

3 つの CPropertyPages を表示するために使用している CPropertySheet があります。デフォルトの「適用」ボタンと「ヘルプ」ボタンを削除しました。私の問題は、それらが削除されたので、かつて配置されていた場所に大きなギャップがあることです。このギャップをなくす方法はありますか?ありがとう!

これが私が話し ているギャップの写真です:ギャップ

ボタンが取り外される前は、隙間の右側にありました。「オプションの変更」ページは Visual Studio のデザイナーで作成され、ページは [印刷] ボタンのすぐ下で終了することに注意してください。メインの管理オプション CPropertySheet は、完全にコードから作成されました。CPropertySheet とページを初期化するコード (および [ヘルプ] ボタンと [適用] ボタンを削除) は次のとおりです。


さらに詳細が必要な場合は編集します。ありがとう。

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

c++ - タブ選択時の CPropertyPage の更新

クリックされたら CPropertyPage を更新する最良の方法を探しています。現在、私のページは の間に情報を受け取りますOnInitDialog()。ただし、ユーザーがページ 1 で何かを行うと、ページ 2 に影響を与える可能性があります。

私が考えることができる唯一の解決策は、「更新」ボタンです。ボタンがクリックされると、ページは で行われるのと同じ関数を呼び出して情報を更新しますOnInitDialog()。ユーザーが CPropertySheet の別の CPropertyPage をクリックしたときに発生するイベントはありますか?

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

c++ - プロパティ シートの OK、CANCEL、および HELP ウィンドウを破棄した場合の効果

プロジェクトに CPropertySheet ベースのアプリケーションを使用したかったのですが、CPropertySheet クラスに付属するデフォルトの [OK]、[キャンセル]、[ヘルプ]、および [適用] ボタンは必要ありませんでした。したがって、OnInitDialog でこれらのウィンドウを破棄しました。参照用のコードは次のとおりです。

CProductUI は CPropertySheet のクラスです。
ただし、デバッグ モードで VC++2008 を使用してプログラムをコンパイルすると、
CPropertySheet::OnInitDialog();」行に Debug Assertion Failed エラー メッセージが表示され
ます。

0 投票する
0 に答える
407 参照

mfc - MFC: CPropertyPage からの CDialog

複数の CPropertyPage をタブとして含む CPropertySheet があります。CPropertyPage の 1 つにボタンがあり、ボタンをクリックすると CDialog が起動します。CDialog クラスメソッド内で GetParent() メソッドを呼び出す CPropertyPage へのコントロールを取得しようとしていますが、どういうわけか正しい親ウィンドウを取得できず、CPropertypage のメンバーにアクセスしようとすると、アクセス違反例外がスローされます。

以下は私が使用したコードです:

Visual Studio 2008 でも同じことが機能していましたが、Visual Studio 2013 に移行すると例外がスローされます。

0 投票する
0 に答える
93 参照

c++ - PropertySheet のウィンドウへのハンドル

プロパティ シートを作成する以下のコードは、アプリケーション ファイルで問題なく動作します。

ただし、同じコードを DLL に入れ、別のアプリケーションのメニュー項目から呼び出すと、m_pMainWnd使用できません (アプリケーションのメニューはプロパティ シートの背後に表示されたままになります)。

ハンドルを作ってみました

CWnd* m_pWnd = &Pr_Sheet;

CProp_Sheet コンストラクターで使用m_pWndしますが、実行時に正しくコンパイルしても失敗は常に発生します。

コメントをお寄せいただきありがとうございます。