問題タブ [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 に答える
1071 参照

c++ - GetThemeFont 関数が機能しない

私はCMyHeaderCtrl、MFC クラスから派生したカスタム ヘッダー コントロールに取り組んでおりCHeaderCtrl、メソッドをオーバーライドしてDrawItem、アプリケーションがテーマになっているときにカスタム描画を行います。最初に、ヘッダー項目のテーマ フォントを決定しようとしますが、失敗しGetThemeFontて結果が返されます'element not found' (0x80070490)

このコントロールを使用するアプリケーションは、Common Controls 6 に対してリンクされています。サンプル コードを次に示します。

TMT_CAPTIONFONTlike以外のプロパティも既に試しTMT_SMALLCAPTIONFONTましTMT_BODYFONTた。ここで何が問題なのですか?

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

c++ - ListView でグループ化を有効にします - ハンドルが無効ですか?

次の状況がわかりません。

だから私は何が欠けています;D? ハンドルがすぐ上にあり、他のもの (列、行/項目) で作業しているときにこのエラーが発生するのは面白いです

Edit_1 - 7:27(GMT): はい、列/アイテム/グループとあらゆる種類の組み合わせを作成した後に配置すると、常にエラー 6 になります。コードは次のとおりです。

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

c++ - 関数内に C++ #pragma プリプロセッサを配置できる/配置する必要がある

ComCtl32.lib要するに、ビジュアル スタイル マニフェストを埋め込み、利用可能な場合はバージョン 6 へのリンクを作成する関数を作成したいと考えています。これが基本的に私がやりたいことです:

これはおそらく良い習慣ではないことはわかっていますが、有効ですか?

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

c++ - TVM_SETBKCOLOR と TreeView_SetBkColor がこのスコープで宣言されていませんか?

奇妙なスコープエラーが発生しています:'TVM_SETBKCOLOR' was not declared in this scopeおよび同様の'TreeView_SetBkColor' was not declared in this scope. なぜこれが起こっているのかわかりません:

  • 含めましたcommctrl.h
  • 他のツリービュー マクロは正常に動作します (のようにTreeView_DeleteItem)
  • オートコンプリートは認識して終了TreeView_SetBkColorするので、スペルの問題ではありません
  • ドキュメントをよく読んでいる

該当するウィンドウのスニペットを次に示します。tvw_filelist_変数の背景を変更しようとするまで、すべてが正常に機能しています。

私も試してみました

しかし、同じエラーが発生します。どうしたの?

(環境: Code::Blocks、MinGW、Win7 x64)

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

c++ - 文字列を保存するTVITEMLPARAM

ドロップされたファイルを一覧表示するツリービューがあります。

新しいツリービューアイテムを作成するときに、ファイルのアドレスをそのアイテムに文字列として保存し、後でさまざまな悪意のある目的で取得したいと思います。

MicrosoftドキュメントのTVITEM構造を見ると、明らかLPARAMに値を格納する場所です。

lParam

だから、私は先に進んでそれをしました:

次に、自分の値を取得しようとすると...

...ゴミが出て、ポインタがスコープから外れたか、仮眠を取っていることを示しています。そのポインタのサイズは常に4です。

これは私がやろうとしていることをする正しい方法ですか?もしそうなら、何が起こっているのですか?

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

javascript - 共通コントロールチェックボックスの値をjavascriptフラグに渡す

次のようにテーブルに編集可能なチェックボックスが定義されている場合:

チェックボックスの値をjavascriptで定義したブール値に渡すにはどうすればよいですか?つまり、「setFlag()」関数はどのように見えるべきですか?

よろしくお願いします。

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

c# - WindowsServer2008にバルーンツールチップの閉じるボタンはありません

私のプログラムは、アプリ内でバルーン通知バブルを使用してユーザーをガイドします。WindowsXPでは、バルーンウィンドウの右上隅に小さな「X」があり、クリックするとウィンドウが閉じます。また、ウィンドウ内のどこかをクリックすると、ウィンドウが閉じます。 「X」をクリックしないでください。

ただし、プログラムがWindows Server 2008で実行されている場合、バルーンは表示されますが、「X」ボタンがなく、クリックしても閉じません。

誤って、次の内容を含む.MANIFESTファイルを削除して、WindowsXPでの動作を再現することができました。

このマニフェストを削除してWindowsXPでプログラムを実行すると、バルーンはWindows Server 2008の場合と同じように動作します。これは、WindowsServer2008のCommonControlsv6との何らかの非互換性を意味する可能性があると思います。

クリック時にバルーンが閉じず、「X」閉じるボタンがない原因を誰かが知っていますか?

更新:バルーン作成コードは次のとおりです。

およびWindowsビルド情報:Windows Server Standard、SP2、32ビット

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

winapi - SysDateTimePick32のキー押下のシミュレーション

SysDateTimePick32共通コントロールにキープレスを送信したいと思います。

次のシナリオを想像してみてください。ユーザーが作成した、多くの行と多くの列を持つテーブルがあります。これらの列の1つで「Enter」を押すと、SysDateTimePick32コントロールが作成されて現在のセルに配置されるため、このセルの実際のコンテンツの時間を選択できます。これは問題なく機能しますが、ユーザーが最初にEnterキーを押さなくても時刻の編集を開始できるようにしたいと思います。

つまり、テーブルは「表示」モードであり、セルが選択されています。SysDateTimePick32コントロールはまだありません。Enterキーを押す(したがって、SysDateTimePick32を作成して表示する)代わりに、ユーザーは「3」などと入力します。これで、SysDateTimePick32が作成されて表示され、ユーザーが「Enter」を押してから「3」を押したのと同じように、以前に入力した「3」が送信されます。

私はしようとしています

SendMessage(sysDateTimePick32Handle, WM_KEYDOWN, '3', MAKELPARAM (1, 0));

ただし、これは機能していないようです。Win32コントロール、特にSysDateTimePick32に特定のキーストロークを送信する「クリーンな」方法は何ですか?

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

header - MS ヘッダー コントロールは、カスタム描画項目の境界線を引き続き描画します

VB6 でカスタム グリッド コントロールを開発しています (従来の VB を使用する必要があります - 申し訳ありません :)。これには、CreateWindowEx への対応する WinAPI 呼び出しを使用して作成された ComCtl の標準 OS MS ヘッダー コントロールに基づくカスタム ヘッダーがあります。ヘッダー アイテムはオーナー描画 (HDF_OWNERDRAW フラグ) であり、完全に最初から描画する必要がありますが、MS ヘッダーは依然として、すべてのアイテムの周りにこの奇妙な 3D 境界線を描画します。

これは、WM_PAINT が処理されるときに WindowProc の標準機能の一部として発生するようです。ただし、WM_PAINT をまったく抑制することはできません。この場合、WM_DRAWITEM メッセージが送信されず、ヘッダー項目を描画する場所がないためです。

サブクラス化された API ヘッダーのこの標準的な 3D 境界線の描画を取り除くにはどうすればよいですか?

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

winapi - ListViewコントロールの親を変更するWinAPI

タブコントロールを備えたアプリケーションを開発しています。タブ内のアイコンをクリックすると、ポップアップウィンドウが開き、タブの内容がポップアップウィンドウに移動します。

私がすることは簡単です-タブ内の各コントロールの親をポップアップウィンドウに変更します(SetParent()を使用)。リストビューコントロール(仮想リストビュー)を除いて、すべてがうまく機能します。

親を変更した後、リストビューはWM_NOTIFY通知を送信しなくなりました。

非仮想リストビューでもテストしましたが、同じことが起こります。

私はグーグル中を検索して何も思いつかなかったので、どんなアイデアでもいただければ幸いです。

アップデート

親を変更した後、リストビューはWM_NOTIFY通知を前の親に送信し続けます。これは一般的なコントロールのバグですか?