89 lines
1.9 KiB
C++
89 lines
1.9 KiB
C++
#include "KUIDefine.h"
|
|
#include <DIMM.h>
|
|
#define MAX_STRING 1024
|
|
/// typedef DWORD HIMC;
|
|
class KUIIMEObject
|
|
{
|
|
public :
|
|
KUIIMEObject();
|
|
~KUIIMEObject();
|
|
|
|
/// update
|
|
bool IsUpdate() { return m_bUpdate; }
|
|
|
|
/// selection
|
|
void SetSel( int nStart, int nEnd );
|
|
void GetSel( int& nStart, int& nEnd );
|
|
|
|
/// caret pos
|
|
int GetCaretPos() { return m_nCurCaretPos; }
|
|
|
|
|
|
/// forcus
|
|
void SetFocus( bool bFocus );
|
|
bool IsFocus() { return m_bFocus; }
|
|
void KillFocus();
|
|
|
|
/// string
|
|
void SetLimitText( int nLength );
|
|
int GetStringLen() { return m_nStringLen; }
|
|
void SetString( const char* szStr );
|
|
char* GetString() { return m_szString; }
|
|
void ClearBuffer() { ZeroMemory(m_szString, MAX_STRING); m_nStringLen = 0; }
|
|
|
|
|
|
/// UTIL
|
|
bool IsEnglishMode();
|
|
void EnableHagulMode();
|
|
void EnableEnglishMode();
|
|
|
|
public :
|
|
bool WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
|
|
|
|
private :
|
|
/// ime enter/leave
|
|
HIMC Enter();
|
|
void Leave();
|
|
|
|
int IsHangul(char* OutText, int Len);
|
|
|
|
/// for IME Message
|
|
void OnIMEStartComposition( WPARAM wParam, LPARAM lParam );
|
|
void OnIMEComposition( WPARAM wParam, LPARAM lParam );
|
|
void OnIMEEndComposition( WPARAM wParam, LPARAM lParam );
|
|
void OnIMEChar( WPARAM wParam, LPARAM lParam );
|
|
void OnIMEKeyDown( WPARAM wParam, LPARAM lParam );
|
|
void OnIMEKeyUp( WPARAM wParam, LPARAM lParam );
|
|
void OnBackMove(int Space, int Position = -1);
|
|
|
|
|
|
private :
|
|
HIMC m_hIMC;
|
|
bool m_bFocus;
|
|
bool m_bUpdate;
|
|
|
|
// Select
|
|
int m_nSelectPos;
|
|
int m_nStart;
|
|
int m_nEnd;
|
|
|
|
int m_nCurCaretPos; ///< 캐럿 위치
|
|
|
|
|
|
BOOL m_bComp; ///< 한글 조합중인가?
|
|
|
|
// 조합 변수
|
|
char m_szComp[4]; ///< 화면에 조합하는 중인 글자
|
|
|
|
// string 변수
|
|
int m_nLength;
|
|
int m_nStringLen;
|
|
char m_szString[MAX_STRING]; ///< 실제 입력한 글자 (화면에 보이는 글자)
|
|
|
|
// mode
|
|
bool m_bIsEnglishMode; ///< 이전의 입력상태를 보관
|
|
|
|
|
|
};
|
|
|