問題タブ [common-controls]

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 に答える
1035 参照

c++ - Windows 8.1 で InitCommonControlsEx() が ICC_LINK_CLASS で失敗する

ウィンドウに単純なハイパーリンクを配置しようとしています。

ここでは、エラーコード 1407 について説明します。

私は Windows 8.1 Pro x64 を使用していますが、このコードを他のバージョンの Windows で試したことはありません。

ここで何が問題なのですか?

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

winapi - TTM_ADDTOOL をツールチップ オブジェクトに実行するときに 2 つの HWND ハンドルを渡す意味は何ですか?

このMSDN コード例では:

操作を 2 つの HWND ハンドルに関連付けTTM_ADDTOOLます。1 つは Dialogbox(hDlg) で、もう 1 つはダイアログ ボックス内のコントロールです。試してみたところtoolInfo.hwnd = hDlg;、toolID コントロールにマウスを置いたときに、コメントアウトしてもツールチップが表示されることがわかりました。

では、2 つの HWND ハンドルを渡す意味は何ですか? それは必須ですか、それとも他の場合に役立ちますか?

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

c++ - テキストを描画するための EDIT コントロール内のオフセットを知る方法は?

バックグラウンドで特別なプレースホルダー テキスト動作を追加するためにEDIT コモン コントロールをサブクラス化しています。

hそしてwこの図では:

ここに画像の説明を入力

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

c++ - エディット コントロールで背景を置き換える場合、HBRUSH を選択する必要がありますか?

私の目標は、共通コントロールの編集コントロールの背景を置き換えることです。私の現在のコードはこれを行います:

hbr問題は、返品する前に選択する必要があるかどうかです。(上記のコメントアウトされた行を参照してください。)オンラインのさまざまな例で、両方の方法で行われているようです。

編集:また、言及するのを忘れていましたが、WM_ERASEBKGNDを次のようにオーバーライドします:

EDIT2:問題を説明するために、小さなサンプル MFC プロジェクトを作成しました。基本的に、アプリを画面からすばやく移動してから戻すと、この視覚的な「グリッチ」が作成されますが、コントロールに ES_MULTILINE スタイルがない場合に限ります。

ここに画像の説明を入力

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

windows - CTL3D32.DLL の 64 ビット バージョンですか?

私は、C/C++ で記述され、DLL としてパッケージ化された、古いスタイルの Win32 Windows アプリケーションの 64 ビット バージョンを作成する任務を負っています。64 ビット アプリが実行されるようになりましたが、ダイアログ ボックスのコントロールが Win64 と Win32 で同じに見えません。その理由は、プログラムが を実行し、LoadLibrary("ctl3d32.dll")成功した場合は のGetProcAddress()ようなライブラリ エントリ ポイントを収集するために使用されCtl3dSubclassCtl()、それらのエントリ ポイントを使用して各コントロール クラスをサブクラス化するためです。

ただし、この DLL の 64 ビット バージョンがないため、LoadLibrary()失敗します。_WIN64これにより、デフォルトを使用してコントロールがレンダリングされます (これは Windows 10 の場合です。上が Win32、下が Win64 です)。

Ctl3d32.dll でレンダリングされた Win32 バージョン

Ctl3d32.dll なしでレンダリングされた Win64 バージョン

ボタン コントロールはパスするのに十分似ていますが、グループ ボックスのように使用される (隆起したパッドのように見える) 静的コントロールは、プレーンな白い四角形として描画され、編集ウィンドウには挿入された外観がありません。

これを行う正しい方法は、アプリをビジュアル スタイルに移動することだとわかっていますが、現時点では、Win64 と Win32 で同じように表示する必要があります。を参照せずにこの動作をオンにするスタイルまたはフラグを探しましたが、無駄でしたCTL3D32.DLL

他の誰かがこの問題に遭遇し、この機能を 64 ビット GDI コードで複製するか、Visual Styles に移行する以外の解決策を思いつきましたか?

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

winapi - WinAPI ツールバー コントロール: ドロップダウン シェブロンの幅を増やす

BTNS_DROPDOWN スタイルの Toolbarctrl ボタンのドロップダウン ボタンの幅を拡張することは可能ですか?

ここにいるこの小さな男の子

理由: この特定のボタンには、既定のアクション (基本的に「以前と同じデバイスを使用する」) がすぐに実行されます。これは、すべてのクリックの 95% を超える可能性があります。ドロップダウンでは、使用する別のデバイスを選択できます。ただし、シェブロンを狙って誤ってデフォルト アクションをクリックするのは少し危険です。

「前のデバイスを使用する」/「他のデバイスを選択する」ボタンを別々に使用することは避けたいと思います。

実際のコントロールは MFC CToolbar / CToolbarCtrl です。WinAPI または MFC の回答に満足しています。(これが 2 つのタグの理由です) - しかし、ほとんど違いはないと思います。

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

c++ - Windows コモン コントロール (特定のバージョンを使用)

新しいスタイルの UI を表示するには、Windows コモン コントロール v6.0 を使用する必要があります。マニフェストの依存関係によってそれを実行できることはわかっていますが、マニフェスト (またはソース コード) にアクセスできない場合、それは私のアプリではありませんが、プロセスにアタッチされる DLL があり、必要なすべての CommCtrls がその DLL から呼び出される) そのプロセスの Windows コモン コントロールのバージョンを指定するにはどうすればよいですか? APIまたは何らかの方法でそれを行う方法はありますか? 【ちなみにC++&VS2015を使っています】

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

delphi - TToolBar の背景色を変更する

問題が発生しました。通常、そのプロパティで背景色 (例: clwhite) を変更することはできません。私はDelphiの経験があまりなく、2つの可能な解決策を見つけましたが、適切な方法で変更する方法、またはそれが不可能な理由を知りたいです。TToolBarToolBar.Color

1) スタイルをグラデーションに変更しますが、ボタンの基本的なアニメーションも変更します。

2)以下の設定でTToolBarTPanelに入れます。