C#에서 빈 양식에 중국어 입력을 구현하면 PS와 같은 텍스트 도구를 구현할 수 있습니다.
C#의 빈 양식에 중국어 입력
키워드: PS와 같은 텍스트 도구, 중국어 입력 반복
최근 PS와 같은 텍스트 도구를 만들기 위해 연구하고 많은 정보를 확인하고 많은 사람들에게 물어봤습니다. 마침내 노력이 결실을 맺었습니다. 모두가 토론할 수 있도록 작성하세요.
빈 양식에서 입력 방법을 엽니다. 무슨 일이 있어도 입력 방법을 열 수 없습니다. 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 메시지가 전송됩니다.
ImmGetCompositionString(IntPtr hIMC, int dwIndex, StringBuilder lpBuf, int dwBufLen)을 사용하여 중국어 문자 또는 NUICODE 유형을 얻을 수 있습니다. 물론 여기서는 한자에 대해서만 다루지는 않습니다.
문자 추출은 다음과 같습니다:
case WM_IME_CHAR:
size += sizeof(Char);
ImmGetCompositionString( m_hImc, GCS_RESULTSTR, str, size);
sb.Append(str.ToString());
MessageBox.Show(str.ToString());
intoText();// 텍스트 인쇄
>
알겠습니다. 테스트한 결과 인쇄된 단어가 모두 반복되는 단어인 것으로 나타났습니다. People", 출력되는 것은 "Serve the People"입니다. 맙소사, 문제가 있습니다. 어디에 있습니까?
MSDN을 확인했습니다. WM_IME_CHAR에 대한 설명은 다음과 같습니다.
WM_IME_CHAR 메시지에는 2바이트 문자가 포함되어 있으며 애플리케이션은 이 메시지를 DefWindowProc에 전달합니다
이게 문제인 걸까요. 메시지를 두 번 보내는 문제입니다.
System.드로잉 사용;
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;
비공개 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(IntP tr 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 글꼴 = new Font("宋体", 14, FontStyle.Regular);
public UserControl1()
{
InitializeComponent();
}
private void UserControl1_Load(객체 전송자, EventArgs e)
{
m_hImc = ImmGetContext(this.Handle);
}
보호됨 void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_IME_SETCONTEXT && m.WParam.ToInt32 ( ) == 1)
{
ImmAssociateContext(this.Handle, m_hImc);
}
스위치(m. Msg)
{
case WM_CHAR:
KeyEventArgs e = new KeyEventArgs(((키)((int)((long)m.WP 아람))) | ModifierKeys);
char a = (char)e.KeyData; //영어
sb.Append(a);
intoText();
isShowChina = false;
휴식;
case WM_IME_CHAR:
if (m.WParam.ToInt32() == PM_REMOVE) //如果不做这个判断.会打印复的中文
> GCS_COMPSTR, null, 0);
size += sizeof(Char);
ImmGetCompositionString(m_hImc, GCS_RESULTSTR, str, size);
sb.Append(str.ToString());
MessageBox.Show(str.ToString()) ;
intoText();
isshowchina = true;
}
중단 >
~ {>{
그래픽 g = this.creategraphics ();
G.Drawstring(sb.tostring (), 글꼴, Brushes.black, 10, 10) >
여러 C#에서 빈 양식에 중국어 입력을 구현하면 PS와 유사한 텍스트를 구현할 수 있습니다. 도구 관련 기사는 PHP 중국어 웹사이트를 참고하세요!
핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Photoshop의 고급 사진 편집 및 합성 기술에는 다음이 포함됩니다. 1. 기본 작업에 레이어, 마스크 및 조정 레이어 사용; 2. 이미지 픽셀 값을 사용하여 사진 편집 효과를 달성하십시오. 3. 복잡한 합성을 위해 여러 층과 마스크를 사용하십시오. 4. "액화"도구를 사용하여 얼굴 특징을 조정하십시오. 5. "주파수 분리"기술을 사용하여 섬세한 사진 편집을 수행하면 이러한 기술은 이미지 처리 수준을 향상시키고 전문적인 수준의 효과를 달성 할 수 있습니다.

Photoshop의 주요 기능에는 레이어 및 마스크, 조정 도구, 필터 및 효과가 포함됩니다. 1. 레이어와 마스크는 이미지 부품을 독립적으로 편집 할 수 있습니다. 2. 밝기/대비와 같은 도구를 조정하면 이미지 톤과 밝기를 수정할 수 있습니다. 3. 필터와 효과는 시각 효과를 빠르게 추가 할 수 있습니다. 이러한 기능을 마스터하면 창의적인 전문가가 창의적인 비전을 달성하는 데 도움이 될 수 있습니다.

Photoshop은 실제 응용 분야에서 매우 실용적이고 창의적입니다. 1) 초보자 및 전문가에게 적합한 기본 편집, 수리 및 합성 기능을 제공합니다. 2) 컨텐츠 인식 필 및 레이어 스타일과 같은 고급 기능은 이미지 효과를 향상시킬 수 있습니다. 3) 바로 가기 키를 마스터 링하고 레이어 구조를 최적화하면 작업 효율성을 향상시킬 수 있습니다.

Photoshop은 무료가 아니지만 저렴한 비용 또는 무료로 사용하는 몇 가지 방법이 있습니다. 1. 무료 시험 기간은 7 일 이며이 기간 동안 모든 기능을 경험할 수 있습니다. 2. 학생 및 교사 할인은 비용을 절반으로 줄일 수 있으며 학교 증거가 필요합니다. 3. CreativeCloud 패키지는 전문 사용자에게 적합하며 다양한 Adobe 도구가 포함되어 있습니다. 4. Photoshopelements와 Lightroom은 기능이 적지 만 가격이 낮은 저렴한 대안입니다.

가장 경제적 인 방식으로 Photoshop에 액세스 할 수 있습니다. 1. 7 일 무료 평가판으로 소프트웨어 기능을 경험하십시오. 2. 계절적 프로모션뿐만 아니라 학생 또는 교사 할인을 찾으십시오. 3. 타사 웹 사이트에서 쿠폰을 사용하십시오. 4. Adobe CreativeCloud의 월별 또는 연간 계획을 구독하십시오.

다음 단계를 통해 Photoshop에서 시각적 개념을 만들 수 있습니다. 1. 새 문서 만들기, 2. 배경 레이어 추가, 2. 브러시 도구를 사용하여 기본 모양을 그리기 위해, 4. 색상과 밝기 조정, 5. 텍스트 및 그래픽 추가, 6. 로컬 편집에 마스크 사용, 필터 효과를 적용하는 데 도움이됩니다.이 단계는 스크래치에서 완전히 시각적 인 작업을 구축 할 수 있도록 도와줍니다.

Photoshop의 디지털 아트 응용 프로그램에는 그림, 일러스트레이션 및 이미지 합성이 포함됩니다. 1) 그림 : 브러시, 연필 및 믹싱 도구를 사용하여 아티스트는 현실적인 효과를 만들 수 있습니다. 2) 그림 : 벡터 및 모양 도구를 사용하여 아티스트는 복잡한 그래픽을 정확하게 그릴 수 있으며 효과를 추가 할 수 있습니다. 3) 합성 : 마스크 및 레이어 블렌딩 모드를 사용하여 아티스트는 다른 이미지 요소를 원활하게 혼합 할 수 있습니다.

브랜드 디자인에 Photoshop을 사용하는 단계에는 다음이 포함됩니다. 1. 펜 도구를 사용하여 기본 모양을 그리며, 2. 레이어 스타일을 통해 그림자와 하이라이트 추가, 3. 색상과 세부 사항 조정, 4. 스마트 객체 및 동작을 사용하여 다양한 버전의 디자인을 자동으로 생성하십시오. Photoshop은 디자이너가 레이어와 마스크의 유연성으로 브랜드 요소를 만들고 최적화하여 간단한 로고에서 복잡한 브랜딩 안내서에 이르기까지 디자인의 일관성과 전문성을 보장합니다.
