問題タブ [textout]

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

winapi - Windows がフォント リンク用に選択するフォントを特定することはできますか?

2 つ以上のスクリプトにテキストを含む文字列があるとします。のような GDI 関数を使用するとTextOut、(最新バージョンの) Windows は「フォント リンク」を実行します。つまり、GDI は、選択したフォントで可能なものを描画し、残りは自動的に選択した適切なフォントで描画します。たとえば、テキストの一部が英語 (ローマ字を使用) で一部が中国語 (CJK 文字を使用) である場合、Arial を選択すると、英語部分は Arial で描画され、中国語部分はCJK グリフを持つ別のフォントで描画されます。

私の質問は、TextOutフォントのリンクにどのフォントを選択するか (または選択したか) を判断する方法はありますか?

自動フォントリンクを行わない低レベルの Uniscribe API でテキストを描画する必要があります。TextOut独自のフォント リンクを実装しましたが、アルゴリズムが同じテキストとは異なるフォントを選択することがあります。私は Windows アルゴリズムをよりよく理解しようとしていますが、視覚的にフォントを識別するのは得意ではありません (特になじみのないスクリプトでは)。

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

text - Win32の8bppビットマップにアンチエイリアステキストを描画することは可能ですか?

CDCに8bppビットマップを選択し、:: TextOut()を使用してテキストを描画しました。フォントの品質はANTIALIASED_QUALITYですが、テキストはモノクロで出力されます。灰色のピクセルとギザギザのエッジはありません。

8bppビットマップは、アンチエイリアス処理されたテキストが既に描画されている24bppビットマップから抽出されたものであり、そのテキストは問題ありません。(両方のテキストタイプは同じビットマップにあります。)

もちろん、24bppを使用して変換することもできますが、これはより複雑で低速です。(後のテキストは変更され、何度も繰り返されます。)アンチエイリアス処理されたテキストを8bppビットマップに直接取得することは可能ですか?ありがとう!

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

delphi - TCanvasのtextOutの高さを変更するにはどうすればよいですか?

TextOut()を使用してTCanvasにテキストを描画していますが、より大きなフォントが必要です。

私に何ができる?

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

c++ - win32: TextOut が表示されない

最近、メインウィンドウに WM_PAINT を使用してテキストを書き込んでもらいましたが、これはおそらく最良のメッセージではないことに気付いたので、別のバージョンを試しています。

メインウィンドウにはメニューが含まれており、メニュー項目をクリックすると ID_FILE_PID メッセージが送信され、4 つの新しいウィンドウが作成され、メインウィンドウにテキストが表示されます (paintEditSigns 関数)。4 つのウィンドウは正常に動作しますが、図のように main() 関数で実行しない限り、テキストはまったく機能しません...これは一体何なのでしょうか? O_O

ところで: 投稿したときに StackOverflow のコード表示が奇妙に見える理由はまだわかりません。これはなぜですか?

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

windows - アジア文字の表示 (Unicode を使用): ExtTextOut を使用した場合と比較して、RichEdit コントロールで表示した場合の文字間隔の違い

この写真は私の苦境を示しています。

画像1

すべての文字は同じサイズに見えますが、RichEdit コントロールで表示した場合と ExtTextOut を使用した場合では、文字間のスペースが異なります。

ラップ位置を維持するために、(理想的には) RichEdit コントロールと同じように文字を表示したいと思います。

誰でも教えてもらえますか:

a)より正しい表現はどれですか?

b)リッチエディット コントロールがアジア文字間に隙間なくテキストを表示するのはなぜですか?

c)これらの文字を描画するときに、ExtTextOut に RichEdit コントロールの動作を再現させる方法はありますか?

d)アジア版の Windows で作業していた場合、これは何か違いますか?

私は楽観的かもしれませんが、何かヒントがあれば、ぜひ聞いてみたいです。

それが役立つ場合:

これが私のテキストです:

アジアの読者には申し訳ありませんが、これは単に Unicode の実装をテストするためのものであり、文字がどの言語から取得されたのか、ましてや意味があるのか​​どうかさえわかりません。

これらの文字をリッチエディット コントロール (ワードパッドなど) に貼り付けて効果を表示するには、文字をスワイプしてフォントを「Arial」に設定する必要がある場合があります。

私が取得したリッチテキストは次のとおりです。

私の最初の考えだった文字の「ピッチ」の値が含まれていないようです。

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

winapi - WM_COMMANDでTextOut()を使用する

WM_COMMANDボタンを押した後にテキストを印刷する必要があるため、ケースにテキストを印刷しようとしています。

これが私が持っているコードです:

悲しいことに、それは何も印刷しません。

編集:

私はそのようTextOut()に使用することができますWM_COMMAND

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

directx - テキストを DirectX ウィンドウに描画するための EndPaint フック

テキストを DirectX ゲームに描画したいので、EndPaint をフックする DLL を挿入しました。私の論理は、EndPaint は WM_PAINT 操作の最後のステップであるはずなので、フックでテキストを描画し、EndPaint を自分で呼び出すことができるというものでした。これにより、DX インターフェイスを完全に回避します。

問題は、それがまったく何もしていないことです。これが私のコードです。

メッセージボックスを介してテストし、フックがインストールされていることを確認したため、問題がAttachHook/関数にあるのではないことはわかっています。DetachHookテキストは単に表示されていません。

誰でも何か考えがありますか?私は本当にDXインターフェースをフックしたくありません。WM_PAINT はまだ基本レベルで使用されているため、どちらの方法でも機能するはずではありませんか?

前もって感謝します。

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

c++ - DLL インジェクション: DrawText と TextOut がすべてのテキストを返さない

DLL をプログラムに挿入することに成功しました。ただし、ListBox から情報を取得したいと考えています。WM_GETTEXT が機能しないため、dll インジェクションを実行する必要がありました。多くのテキストを受信して​​いますが、目的のコントロールからは何も得られません。

これが私のコードです:

私の質問は: 私が見逃しているものはありますか? アプリケーションからテキストを取得する他の方法はありますか? 私が調査を行ったので、これによりプログラムのすべてのテキストが得られるはずです。

ご助力ありがとうございます!

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

winapi - TextOut() 関数はテキストを表示しますが、ウィンドウを最小化または復元するとテキストが消えます

ウィンドウにテキストを表示するために TextOut() 関数を unsing しています。ウィンドウが最大化されるとすぐに正常に動作し、テキストが表示されますが、ウィンドウが最小化されて再び復元されるとすぐに、ウィンドウに表示されているすべてのテキストが消えます:(ウィンドウに表示されたデータを保持できる方法はありますか?最小化されている場合? 応答を待っています:(

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

c - C を使用してウィンドウに文字列出力を表示する (WIN32 API)

文字列を出力し、作成した Window に表示する適切な方法が必要です。textout() 関数を使用していましたが、ウィンドウをペイントするだけなので、ウィンドウを最小化して元に戻すと、ウィンドウに表示されていたデータが消えます。また、表示するデータが Window のサイズを超える場合は、Window のサイズ分のデータのみを表示し、それ以外のデータは切り捨てます。ウィンドウにデータを出力する他の方法はありますか?