मैं एक विनफॉर्म एप्लिकेशन के अंदर अपने ediatble क्षेत्र में कोरियाई पाठ टाइप करना चाहता हूँ।Winform में कोरियाई इनपुट कैसे लें?
लेकिन वर्ण दोहरा रहे हैं, मैं डिफ़ॉल्ट WndProc
, लेकिन कुछ भी काम कर रहे ओवरराइड करने के लिए कोशिश की है।
switch (m.WParam.ToInt32())
{
case Common.Interop.Window.WM_IME_CHAR:
break;
case Common.Interop.Window.WM_IME_ENDCOMPOSITION:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_CHAR:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_IME_NOTIFY:
break;
case Common.Interop.Window.WM_IME_COMPOSITION:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_IME_COMPOSITIONFULL:
break;
जब मैं अंग्रेजी में टाइप करें, ब्रेकपाइंट हिट WM_CHAR
, लेकिन जब मैं कोरियाई में टाइप यह पहली चरित्र पर WM_IME_COMPOSITION
मारता है, और उसके बाद पहले वर्ण के बाद यह WM_IME_COMPOSITION
पहले हिट और फिर WM_CHAR
पूरी करता है।
मैंने देखा है कि यह पहला चरित्र सही टाइप करता है। उदा। ㅁ (कोरियाई कैरेक्टर) दूसरे अक्षर टाइप करने पर। ㅁㅂㅁ (पहला चार, दूसरा चार, पहला चार)। मुझे व्यवहार चाहिए क्योंकि यह नोटपैड
स्विच स्टेटमेंट भी दिखाएं। –
शायद यह लिंक आपकी मदद करेगा। http://stackoverflow.com/questions/3287180/putting-ime-in-a-custom-text-box-derived-from-control –
यह किस प्रकार का नियंत्रण है? मानक 'टेक्स्टबॉक्स'? क्या यह किसी भी तरह से उपclassed है? क्योंकि अन्यथा यह ठीक काम करना चाहिए। नोटपैड में टेक्स्ट एरिया एक सादे ईडीआईटी नियंत्रण पर भी आधारित है, जिसने डिफ़ॉल्ट रूप से सभी आवश्यक आईएमई सामानों को तार दिया है। डब्ल्यूपीएफ एक अलग कहानी होगी, लेकिन WinForms नहीं। – dlatikay