[[TableOfContents]] == ¿µ¾î ÀÔ·Â == attachment:IME1.png == ÇÑ±Û ÀÔ·Â 1 == attachment:IME2.png == ÇÑ±Û ÀÔ·Â 2 == attachment:IME3.png == ÇÑ±Û ÀÔ·Â 3 == attachment:IME4.png == ÇÑ±Û ÀÔ·Â 4 == attachment:IME5.png == ÀϺ»¾î È÷¶ó°¡¶ó ÀÔ·Â 1 == attachment:IME6.png == ÀϺ»¾î È÷¶ó°¡¶ó ÀÔ·Â 2 == attachment:IME7.png == ÀϺ»¾î È÷¶ó°¡¶ó ÀÔ·Â 3 == attachment:IME8.png == TIP == === Á¶ÇÕ ÁßÀÎ ¹®ÀÚ Á¦°Å === {{{#!vim cpp const HIMC hIMC = ::ImmGetContext( m_hWnd ); ImmNotifyIME(hIMC, NI_COMPOSITIONSTR, CPS_CANCEL, 0); ::ImmReleaseContext( m_hWnd, hIMC ); }}} === Á¶ÇÕ À©µµ¿ì À§Ä¡ Á¶Á¤ === {{{#!vim cpp /// @brief Á¶ÇÕ À©µµ¿ìÀÇ À§Ä¡¸¦ ¼³Á¤ÇÑ´Ù. /// @param x Á¶ÇÕ À©µµ¿ì ½ÃÀÛ xÀ§Ä¡°ª /// @param y Á¶ÇÕ À©µµ¿ì ½ÃÀÛ yÀ§Ä¡°ª void SetCompositionWindow(const int & x, const int & y) { HIMC hImc; COMPOSITIONFORM cf; memset(&cf, 0, sizeof(COMPOSITIONFORM)); cf.dwStyle = CFS_POINT; cf.ptCurrentPos.x = x; // x cf.ptCurrentPos.y = y; // y hImc = ImmGetContext(g_hWndMain); // Á¶ÇÕ À©µµ¿ìÀÇ À§Ä¡¸¦ ¼³Á¤ÇÑ´Ù. ImmSetCompositionWindow(hImc, &cf); ImmReleaseContext(g_hWndMain, hImc); } }}} === Èĺ¸ À©µµ¿ì À§Ä¡ Á¶Á¤ === {{{#!vim cpp /// @brief Èĺ¸ À©µµ¿ìÀÇ À§Ä¡¸¦ ¼³Á¤ÇÑ´Ù. /// @param x Èĺ¸ À©µµ¿ì ½ÃÀÛ xÀ§Ä¡°ª /// @param y Èĺ¸ À©µµ¿ì ½ÃÀÛ yÀ§Ä¡°ª void SetCandidateWindow(const int & x, const int & y) { HIMC hImc = ImmGetContext(g_hWndMain); CANDIDATEFORM cf; memset(&cf, 0, sizeof(CANDIDATEFORM)); cf.dwStyle = CFS_CANDIDATEPOS; cf.ptCurrentPos.x = x; cf.ptCurrentPos.y = x; ImmSetCandidateWindow(hImc, &cf); ImmReleaseContext(g_hWndMain, hImc); } }}} == »ùÇà ¼Ò½º == attachment:IME_src.zip == Âü°í ¸µÅ© == [http://msdn2.microsoft.com/en-us/library/ms776076.aspx MSDN Input Method Editor (IME) Functions] [http://msdn2.microsoft.com/en-us/library/ms776094.aspx MSDN Input Method Editor (IME) Reference] [http://forums.belution.com/ja/vc/000/083/98s.shtml ÀϺ» Ä¿¹Â´ÏƼ?] ¹ø¿ª±â µ¹·Á¼­ º¸¼¼¿ä^^ == °Ô½ÃÆÇ == [[Comment]]