搜尋
首頁web前端PS教程C#下實作空白窗體上中文輸入,可以實現類PS的文字工具

C#下實現空白窗體上中文輸入

關鍵字:類PS的文字工具,中文輸入.重複截取中文

  

最近在研究做一個類PS的文字工具N多的資料,問了N多個人,總算功夫不負有人心.終於給弄出來了.寫出來給大家一起討論.

 

在空白窗體上打開輸入法,在C#裡的空白視窗是無論如何也是打不開輸入法.設定了this.ImeMode= ImeMode.NoControl也是無法開啟輸入法的錄影視窗.去Microsoft 開發論壇上問了一些問題.感謝週雪峰版主與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的消息.我們在這個消息下處理下就可以得到漢字了

: IntPtr hIMC, int dwIndex, StringBuilder  lpBuf, int dwBufLen);取得錄影視窗上輸入的漢字或NUICODE類別的字.當然,這裡就不研究別的了.只說漢字問題.取字的代碼如下:

case WM_IME_CHAR:


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


   izeof( Char);


                      


                        sb.Append(str.To                MessageBox.Show( str.ToString());


                   

                        isShowChina = true;


                  

       


                    break;

OK,.好像是大功告服務計劃」我的天啊,問題出在哪裡呢.


去查了一下MSDN.對WM_IME_CHAR有這樣的說明:


ble and the application passes this message to DefWindowProc


是不是問題就出在這裡了.是發送訊息兩次的問題.

,

方案:加上判斷

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


測試.終於沒有問題了


 代碼貼文上


onentModel;

using System .Drawing;


using System.Data;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;Windows.Forms;

using System.Runtime.InteropServices; public partial class UserControl1 : UserControl

    {


        IntPtr m_hImc;


     bool isShowChina = false;

 


      private const int WM_IME_CHAR = 0x0286;


    

        private const int WM_IME_COMPOSITION = 0x010F;


           [DllImport (" Imm32.dll")]

        public static extern IntPtr ImmGetContext(IntPtr hWnd);


        [DllImport("Imm32.dll")]

        public static extern IntPtr ImmAssociateContext(IntPtr hndIM)Int     [DllImport(" imm32 .dll")]

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


        private int GRESCS   private const HC_ ACTION = 0;


       private const PM_REMOVE = 0x0001 ;



        StringBuilder sb = new StringBuilder();


 ,

       public UserControl1()

        {

InitializeComponent ( );

            


        }


       {

           m_hI mc = ImmGetContext(this.Handle);

       }

受保護訊息m)

        {

            base.WndProc(ref m);

if  == 1)

          {

                ImmAssociateContext(this.Handle, m_hImc ) ;


             

            }

    

                case WM_ CHAR:

                 對應   Key | ModifierKeys);

                    char a = (char)e.KeyData; //           sb.Append(a);

                    isShowChina = false;

                   break;

                      if (m.WParam.ToInt32() == PM_REMOVE ) //如果不做這個判斷,會印出重複的中文

                    {

                               int size = Imm GetCompositionString(m_hImc, GCS_COMPSTR, null, 0); sizeof (Char);

                        ImmGetCompositionString(m_hI      sb.Append(str.ToString());

                      MessageBox.Show  intoText();

                        isShowChina = true;

              

                    break;

              ///

        /// 列印文字

        ///

        /// intoText()//

        {

           Graphics g  = this.CreateGraphics();

  10);

         

        }

    }

}


更多C#下實現空白窗體上中文輸入,可以實現類PS的文字工具 相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
比較Photoshop定價:選項和好處比較Photoshop定價:選項和好處May 12, 2025 am 12:17 AM

AdobePhotoshop提供三種套餐:1)單一應用計劃,適合只需Photoshop的用戶,費用較低,包含20GB雲存儲;2)CreativeCloud全套計劃,適合需多種Adobe應用的用戶,費用較高,包含100GB雲存儲;3)學生和教師優惠計劃,適合預算有限的學術用戶,費用低,包含20GB雲存儲。

是什麼使Photoshop與眾不同?它的主要功能是什麼使Photoshop與眾不同?它的主要功能May 11, 2025 am 12:16 AM

Photoshop'sprimaryfunctionistoenableuserstomanipulate,enhance,andcreatedigitalimageswithprecisionandcontrol.Itsspecialfeaturesinclude:1)alayer-basededitingsystemforindependentelementmanipulation,2)anextensivelibraryoftoolsandfiltersforvarioustasks,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 Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器