問題タブ [winapi]
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.
c++ - プログラムでコンボボックスを変更する
combobox
に反映されたテキストを変更するために、を新しい値で更新する必要があります。これを行う最もクリーンな方法は、combobox
が初期化された後、メッセージを表示することです。
だから私はpostmessage
を含むhwndにを作成しようとしていますcombobox
。
それで、現在選択されているアイテムをn番目のアイテムに変更してメッセージを送信したい場合、どのpostmessage
ようになりますか?
関係があると思いますがON_CBN_SELCHANGE
、うまく動作させることができません。
c++ - MS VC++ プロジェクトの WinAPI 関数呼び出しを独自の実装 (名前とパラメーター セットは同じ) に置き換える方法は?
のすべての WinAPI 呼び出しを置き換える必要があります
- CreateFile、
- 読み取りファイル、
- SetFilePointer、
- ハンドルを閉じる
私自身の実装(Bluetooth経由で低レベルのファイル読み取りを使用)を使用します。関数が置き換えられるコードは Video File Player であり、通常の hdd ファイルで既に動作します。また、VideoPlayer 入力のファイルが通常の hdd ファイルである場合、Video Player が HDD からファイルを再生できることも必要です。
そのようなタスクのベストプラクティスは何ですか?
winapi - 匿名パイプでの I/O の重複
匿名パイプで重複した I/O を使用することは可能ですか? CreatePipe() には FILE_FLAG_OVERLAPPED を指定する方法がないため、OVERLAPPED 構造体を指定したとしても、ReadFile() はブロックされると想定しています。
c++ - リソース ファイルを使用しない Windows API ダイアログ
C++ と Windows API を使用してダイアログ ボックスを作成しようとしていますが、リソース ファイルでダイアログを定義したくありません。私はウェブ上でこれについて良いものを見つけることができず、私が読んだ例のどれもプログラムでダイアログを定義していないようです.
これどうやってするの?
簡単な例で十分です。私はまだ複雑なことをしていません。
windows - Windows ラジオ ボタンのボタン部分のサイズを決定する方法
DrawFrameControlを使用して、古い学校(テーマなし-テーマ付きラジオはまったく別の問題です)ラジオボタンを自分で描いています:
私は、RECT に何を渡すかを決定する確実な方法を見つけることができませんでした。私は 12x12 の長方形を使用していますが、Windows にラジオ ボタンのサイズを教えてもらいたいと思っています。
DrawFrameControl は、通過する四角形に合わせてラジオ ボタンをスケーリングするように見えるので、ラジオの「正しい」サイズに近づける必要があります。画面上の他の (非所有者が描いた) ラジオから離れて見えます。
誰でもこれを行う方法を知っていますか?
c++ - Win32 のユーザー インターフェイス コントロール
.NET 用の多くのユーザー インターフェイス コントロール ライブラリを目にしますが、単純な C/C++ を使用して win32 用の同様のものをどこで入手できますか?
見栄えの良いボタン、ダイヤル、リストビュー、グラフなど。
すべての Win32 プログラマーの通行権は、最終的に自分のコレクションを作成することだと思われます。:/
MFC コントロールはありません。私は純粋な C/C++ しかやっていません。そうは言っても、ボタンをきれいにするためだけに、数メガバイトのフレームワークをアプリケーションに追加する気もありません。
細かい点を 1 つ省略して申し訳ありませんが、それは私の開発が Windows Mobile 用であることです。
したがって、マニフェスト ファイルはアウトです。
見栄えの良い .NET コンポーネントを作成することに熱中し、同等の C/C++ Win32 コンポーネントはどこに行ってしまったのだろうかと考えている開発者企業がどれだけあるかに気付きました。
何人の人が独自のグラデーション ボタン クラスなどを作成したかについて読んだことがあります。ですから、このようなものにはいくつかの商用クラスがあると思うでしょう。それはただ奇妙です。
QT を詳しく見て、そのようなことに対する GUI サポートを調査します。これは、自分の uISV で自分が 1 人である場合の課題です。あなたが「物事を成し遂げる」のを助ける他の開発者はいません。
c++ - Win32 アプリケーションで C++/MFC を介してマウス カーソルにダイナミック テキストを表示する方法
win32 アプリのマウス カーソルの位置に動的テキストを表示できるようにしたいと考えています。これは、マウス座標でウィンドウの TextOut() 呼び出しを使用して mousemove イベント中に実行し、保存された最後のカーソル位置の周囲の四角形を無効にして、前の出力をクリアすることができます。ただし、これにはちらつきが発生し、トラッカー ボックスなどのウィンドウに他のものが描画されるときに問題が発生する可能性があります。おそらく既存のカーソル描画/無効化メカニズムを使用して、これを行うより良い方法はありますか?
windows - Windows Media Format(WMF)を使用したデスクトップのキャプチャ
Windows Media Format SDKを使用して、デスクトップをリアルタイムでキャプチャし、WMVファイルに保存しています(実際、これは私のプロジェクトを単純化しすぎていますが、これは関連する部分です)。エンコードには、Windows Media Video 9 Screenコーデックを使用しています。これは、画面キャプチャに非常に効率的であり、コーデックがWindows Media Player 9ランタイムに含まれているため( Windows XP SP1)。
GDI関数を使用してBITMAPスクリーンショットを作成し、それらのBITMAPをエンコーダーにフィードしています。ご想像のとおり、GDIでスクリーンショットを撮るのは遅く、画面カーソルが取得できません。これを手動でBITMAPに追加する必要があります。私が最初に取得するBITMAPはDDBであり、エンコーダーが理解できるようにそれらをDIBに変換する必要があります(RGB入力)。これにはさらに時間がかかります。
プロファイラーを起動すると、時間の約50%がエンコーダーであるWMVCORE.DLLに費やされていることがわかります。もちろん、エンコーディングはCPUを集中的に使用するため、これは予想されることです。
重要なのは、SDKに付属しているWindows Media Encoderと呼ばれるものがあり、目的のコーデックを使用して、よりシンプルでCPUに優しい方法で画面キャプチャを実行できることです。
WMEはWMFに基づいています。これはより高いレバーライブラリであり、.NETバインディングもあります。回避しなければならない不要な依存関係が発生するため、プロジェクトで使用できません。
WMEがサンプルデータをWMVエンコーダーに供給するために使用する方法について質問しています。エンコーディングは、WMFを使用する私のアプリケーションで行われるのとまったく同じようにWMEで行われます。WMEは、ビデオデータをエンコーダーに供給するためのはるかに効率的な方法を備えているため、私のアプリケーションよりも効率的です。遅いGDI関数やDDB->DIB変換に依存しません。
それはどのように行われますか?
c - オープンハンドルに関連付けられた名前を取得する方法
Win32で開いているHANDLEに関連付けられているファイル名を取得する最も簡単な方法は何ですか?
c - Win32 C で GMT を LocalTime に変換するにはどうすればよいですか?
履歴のさまざまな場所/日付/時刻を GMT から現地時間に変換したい。SystemTimeToTzSpecificLocalTime
よりも優れているようですFileTimeToLocalFileTime
。日付/時刻のペアにさまざまな場所も含まれていると、変換が複雑になります。ftp://ftp.iana.org/tz/releasesでデータセットを見つけました— ftp://elsie.nci.nih.gov/pub/でした— 歴史と空間を通してうまく完成しているように見えますが、すべてではなく、1 つのタイム ゾーン用にコンパイルされるように設計されているようです。
GetDynamicTimeZoneInformation
およびGetTimeZoneInformationForYear
機能は、Vista / Server 2008 以降でのみ利用可能で、マシンは NT 4.0 に戻ります。おそらく、新しいシステムでは条件付きでそれらを使用しようとします。
Windows XP および NT 4.0 の問題を解決してくれる素敵な C パッケージはありますか?