検索
ホームページウェブフロントエンドPS チュートリアルC# で空白のフォームに中国語入力を実装すると、PS のようなテキスト ツールを実装できる

C# での空白のフォームへの中国語入力

キーワード: PS 風のテキスト ツール、中国語入力の繰り返し

最近、PS 風のテキスト ツールを作成するために研究しています。 N 件の情報を収集し、N 人に質問した結果、ようやく結論を出しました。

で入力方法を開きます。空白のフォームと C# を使用します。その中の空白のウィンドウは、this.ImeMode= ImeMode.NoControl が設定されていても、入力メソッドを開くことができないことを意味します。Microsoft 開発フォーラムに行きました。モデレータの Zhou Xuefeng と Riquel_Dong に感謝します。私は API 関数 ImmAssociateContext(IntPtr hWnd, IntPtr hIMC) を使用しました。指定されたウィンドウ


コードは次のとおりです:


f (m.Msg == WM_IME_SETCONTEXT && m.WParam.ToInt32() == 1)


{


ImmAssociateContext(this.Handle, m_hImc ; さて。


インプットメソッドがオンになってテキストを入力すると、WM_IME_CHARメッセージが送信されます。中国語の文字を取得できますこのメッセージを処理すると

IMM 関数を使用できます: ImmGetCompositionString( IntPtr hIMC, int dwIndex, StringBuilder lpBuf, int dwBufLen); もちろん、入力フォームに入力された中国語の文字または NUICODE タイプの文字を取得します。ここでは他に何も勉強しません。漢字の問題だけです。

単語を取得するコードは次のとおりです:


case WM_IME_CHAR:


int size = ImmGetCompositionString(m_hImc, GCS_COM PSTR, null, 0);


size += sizeof( Char);


m_hImc、GCS_RESULTSTR、str、サイズ);

sb.Append(str.ToString());

MessageBox.Show(str.ToString());


str. isShowChina = true;



休憩; サービス「おやおや、何が問題ですか?」


MSDN を確認したところ、WM_IME_CHAR について次の説明がありました:


WM_IME_CHAR メッセージ全角文字が含まれており、アプリケーションはこのメッセージを DefWindowProc に渡します


これは問題ですか? メッセージを 2 回送信するという問題です。


解決策: 判定を追加します


if (m.WParam.ToInt32() == PM_REMOVE)


{


}


テスト。最後に、コードポストに問題はありません


using System;

using System.Collections.Generic;


System.ComponentModel を使用します。

System .Drawingの使用;

System.Dataの使用;

System.Textの使用;

System.Windows.Formsの使用;

System.Runtime.InteropServicesの使用;


名前空間WindowsApplication2

{

パブリック部分クラス UserControl1 : UserControl


{

IntPtr m_hImc;


bool isShowChina = false;

public const int WM_IME_SETCONTEXT = 0x0281;


private const int WM_IME_CHAR = 0x0286;


private const int WM_CHAR = 0x0102;


private const int WM_IME_COMPOSITION = 0x010F;


private const int GCS_COMPSTR = 0x0008;


[DllImport(" Imm32.dll")]

public static extern IntPtr ImmGetContext(IntPtr hWnd);


[DllImport("Imm32.dll")]

public static extern IntPtr ImmAssociateContext(IntPtr hWnd, IntPtr hIMC);


[DllImport ("imm32.dll")]

static extern int ImmGetCompositionString( IntPtr hIMC, int dwIndex, StringBuilder lpBuf, int dwBufLen);



private int GCS_RESULTSTR = 0x0800;


private const int HC_ACTION = 0;


private const int PM_REMOVE = 0x0001 ;



StringBuilder sb = new StringBuilder();


Font font = new Font("宋体", 14, FontStyle. Regular);

public UserControl1()

{

InitializeComponent();

}


private void UserControl1_Load(object sender, EventArgs e)

{

m_hImc = ImmGetContext(this.Handle);

}

protected override void WndProc(ref Message m)

{

base.WndProc(ref m);

if (m.Msg == WM_IME_SETCONTEXT && m.WParam.ToInt32() == 1)

{

ImmAssociateContext(this.Handle, m_hImc) ;

}

switch (m.Msg)

{

case WM_CHAR:

KeyEventArgs e = new KeyEventArgs(((Keys)((int)((long)m.WParam)) | ModifierKeys);

char a = (char)e.KeyData; //和文

sb.Append(a);

intoText();

isShowChina = false;

break;

case WM_IME_CHAR:


if (m.WParam.ToInt32() == PM_REMOVE ) //如果不做这个判断.会打印出重复的中文

StringBuilder str = new StringBuilder();

int size = ImmGetCompositionString(m_hImc, GCS_COMPSTR, null, 0);

size += sizeof (Char);

ImmGetCompositionString(m_hImc, GCS_RESULTSTR, str, size);

sb.Append(str.ToString());

MessageBox.Show(str.ToString());

intoText();

C Isshowchina = TRUE;

}

//// & gt;

//// & lt;/概要 & gt;

Private void intotext () // {

graphics g = this.creategraphics ();

g.Drawstring (sb.tostring (), font, Brushs.black, 10, 10);

}

}

C# で空白のフォームにさらに中国語を入力するには、PS のようなテキスト ツールを実装できます。 関連記事については、PHP 中国語 Web サイトに注目してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Photoshopの価格設定の比較:オプションと利点Photoshopの価格設定の比較:オプションと利点May 12, 2025 am 12:17 AM

Adobe Photoshopには3つのパッケージがあります。1)20GBのクラウドストレージを含む低コストのPhotoshopのみを必要とするユーザーに適した単一のアプリケーションプラン。 2)CreativeCloudプランの完全なセット。複数のAdobeアプリケーションを必要とするユーザーに適しており、100GBのクラウドストレージを含む高コスト。 3)20GBのクラウドストレージを含む低コストで、予算が限られているアカデミックユーザーに適した、学生と教師向けの優先計画。

Photoshopの特別な理由は何ですか?その主な機能Photoshopの特別な理由は何ですか?その主な機能May 11, 2025 am 12:16 AM

Photoshop'sprimaryfunctionistoenableUserstomantumentonipulation and beciTialimages with recisionandcontrol.itsspecialfeatureSinclude:1)Alayer Beasingeditings SystemFor IndoendentElementManipulation、2)AnextensiveLibraryoftOoofSOULSANDFILTERSFORIUSTASKS、AN

Photoshop:プロの画像編集のコストPhotoshop:プロの画像編集のコストMay 10, 2025 am 12:19 AM

Photoshopのコストには、直接コスト、時間と学習曲線、リソース、ハードウェアへの投資が含まれます。 1。直接費用:サブスクリプションシステムは月額20ドルから50ドル、一度に数百ドルを購入します。 2。時間と学習:多くの時間と練習が必要であり、オンラインコースとチュートリアルを通じて学習することをお勧めします。 3。リソースとハードウェア:効率を改善するためにハードウェア構成を確保するには、高性能コンピューターと十分なストレージスペースが必要です。

画像編集の必需品:Photoshopの重要な機能画像編集の必需品:Photoshopの重要な機能May 09, 2025 am 12:05 AM

Photoshopのコア機能には、レイヤー、選択ツール、調整ツールが含まれます。 1.レイヤーは、画像パーツの独立した編集を可能にし、レイヤースタイルをサポートします。 2。ラッソ、マジックワンド、クイック選択ツールなどの選択ツールは、正確な編集を提供します。 3.色のレベル、曲線、色相/飽和などの調整ツールは、画像を非破壊的に調整できます。

私の目的:Photoshop関連のタスクを支援します私の目的:Photoshop関連のタスクを支援しますMay 08, 2025 am 12:18 AM

Photoshopでは、レイヤーマスクの役割は、非破壊的な方法で隠されたレイヤーまたは表示された部分を許可することです。 1.レイヤーマスクの作業原理は、黒、白、グレースケールを介してレイヤーの可視性を制御することです。 2。基本的な使用法には、キャラクターイメージを新しい背景に合成するなど、画像合成が含まれます。 3.グラデーションマスクを使用してスムーズな画像遷移を実現することにより、高度な使用を実現できます。

Photoshopと無料の選択肢:比較外観Photoshopと無料の選択肢:比較外観May 06, 2025 am 12:12 AM

Photoshopの強力な機能には、スマートオブジェクトとニューラルフィルターが含まれますが、Gimp、Krita、Photopeaなどの無料の代替品は、Gimpの層機能、Kritaのデジタル絵画、Photopeaのオンライン編集などの特定の分野でうまく機能します。

Photoshopカラーグレーディング:プロテクニックで画像を高めますPhotoshopカラーグレーディング:プロテクニックで画像を高めますMay 05, 2025 am 12:07 AM

Photoshopの色調整は、調整層を通じて実現して、画像をよりプロフェッショナルにすることができます。 1.色のレベル、曲線、色相/飽和、その​​他のツールを使用して、色相、飽和、明るさを調整します。 2。LUTを適用して、独自の色効果を作成します。 3.調整層を使用して画像の歪みを回避し、履歴パネルを使用して調整手順を追跡します。

現実の世界のPhotoshop:その多様な用途の例現実の世界のPhotoshop:その多様な用途の例May 04, 2025 am 12:15 AM

現実の世界でのPhotoshopのアプリケーションには、芸術的創造、科学研究、商業マーケティングが含まれます。 1)芸術的な創造では、デジタルペインティングとイラストに使用されます。 2)科学研究では、画像処理とデータの視覚化に使用されます。 3)商業マーケティングでは、広告デザインとブランドイメージの形成に使用されます。このソフトウェアの汎用性により、さまざまな分野で広く使用されています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール