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 중국어 웹사이트를 참고하세요!
Adobe Photoshop은 3 개의 패키지를 제공합니다. 1) 20GB의 클라우드 스토리지를 포함하여 저렴한 비용을 가진 Photoshop 만 필요한 사용자에게 적합한 단일 응용 프로그램 계획; 2) 100GB의 클라우드 스토리지를 포함하여 높은 비용을 가진 여러 Adobe 애플리케이션이 필요한 사용자에게 적합한 CreativeCloud 계획의 전체 세트; 3) 20GB의 클라우드 스토리지를 포함하여 저렴한 비용을 가진 예산이 제한된 학업 사용자에게 적합한 학생 및 교사를위한 우선 계획.

Photoshop 'sprimaryfunctionistoensersers은 procialfeaturesinclude : 1) alayer basededitingsystemforindentelementemulation, 2) anextensivenibraryoftsandsfiltersousioustasks, an

Photoshop의 비용에는 직접 비용, 시간 및 학습 곡선, 자원 및 하드웨어 투자가 포함됩니다. 1. 직접 비용 : 구독 시스템 한 달에 $ 20 ~ $ 50, 한 번에 수백 달러를 구매하십시오. 2. 시간과 학습 : 많은 시간과 연습이 필요하며 온라인 과정과 튜토리얼을 통해 배우는 것이 좋습니다. 3. 리소스 및 하드웨어 : 효율성을 향상시키기 위해 하드웨어 구성을 보장하려면 고성능 컴퓨터와 충분한 저장 공간이 필요합니다.

Photoshop의 핵심 기능에는 레이어, 선택 도구 및 조정 도구가 포함됩니다. 1. 레이어는 이미지 부품을 독립적으로 편집하고 레이어 스타일을 지원합니다. 2. Lasso, Magic Wand 및 빠른 선택 도구와 같은 선택 도구는 정확한 편집을 제공합니다. 3. 색상 레벨, 곡선 및 색조/채도와 같은 조정 도구는 이미지를 비파괴 적으로 조정할 수 있습니다.

Photoshop에서 층 마스크의 역할은 비파괴적인 방식으로 층의 일부를 숨기거나 표시하는 것입니다. 1. 레이어 마스크의 작동 원리는 검은 색, 흰색 및 회색 스케일을 통해 층의 가시성을 제어하는 것입니다. 2. 기본 사용법에는 캐릭터 이미지를 새로운 배경으로 합성하는 것과 같은 이미지 합성이 포함됩니다. 3. 그라디언트 마스크를 사용하여 원활한 이미지 전환을 달성함으로써 고급 사용을 달성 할 수 있습니다.

Photoshop의 강력한 기능에는 스마트 객체와 신경 필터가 포함되며 Gimp, Krita 및 Photopea와 같은 무료 대안은 Gimp 's Layer 기능, Krita의 디지털 그림 및 Photopea의 온라인 편집과 같은 특정 분야에서 잘 작동합니다.

Photoshop의 색상 조정은 조정 레이어를 통해 달성하여 이미지를보다 전문적으로 만들 수 있습니다. 1. 색상, 곡선, 색조/채도 및 기타 도구를 사용하여 색조, 채도 및 밝기를 조정하십시오. 2. LUT를 적용하여 고유 한 색상 효과를 만듭니다. 3. 조정 레이어를 사용하여 이미지 왜곡을 피하고 기록 패널을 사용하여 조정 단계를 추적하십시오.

현실 세계에서 Photoshop의 응용 프로그램에는 예술적 창조, 과학 연구 및 상업 마케팅이 포함됩니다. 1) 예술적 창조에서는 디지털 그림과 일러스트레이션에 사용됩니다. 2) 과학 연구에서는 이미지 처리 및 데이터 시각화에 사용됩니다. 3) 상업용 마케팅에서는 광고 디자인 및 브랜드 이미지 형성에 사용됩니다. 이 소프트웨어의 다양성은 다양한 분야에서 널리 사용됩니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版
시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구