|
안녕하세요..
이곳에는 자주 와서 도움을 받는데, 글쓰기는 처음이군요..^^;
날씨가 또 무더워 지네요.. 건강 조심 하시기를..
한글과 영문입력의 차이때문에 지금 3일째 고생하고 있는 완전 초짜 입니다.
체크리스트박스 <--> 6개 에디터를 두고요,
에디터로 입력받아 체크리스트박스로 넘기는 작업입니다.
에디터는 각각 20컬럼을 가지고 있습니다.
여기서 발생하는 문제가 영문을 치다가 20컬럼이 넘어가면 다음 에디터로 잘 넘어가는데요,
한글을 치다가 20컬럼이 넘어가면 다음에디터로 안넘어 가게 됩니다.
여러 꽁수를 쓰다가 결국 여기에 이렇게 질문을 남겨 봅니다.
한가지 더 발생하는 문제가 한글 같은 경우는 다음 에디터로 넘어가면서 누른 키의 값을 잃어 버리는 것 입니다.
밑에는 제가 여태 작업해서 실패한 소스를 올립니다.
void __fastcall TfrmMain::Edit_KeyPress(TObject *Sender, char &Key)
{
int nMaxLength,ptrControl;
nMaxLength = dynamic_cast<TEdit *>(Sender)->Text.Length();
ptrControl = dynamic_cast<TEdit *>(Sender)->Tag;
if ((nMaxLength >= 18)&&(dynamic_cast<TEdit *>(Sender)->Text.c_str()[nMaxLength-1] & 0x80) == 0x80)
//바로 윗부분이 문제의 부분 입니다~!!
{
Caption = "18";
if(((Key == VK_RETURN)||(nMaxLength >= 18))&&(Key != VK_BACK))
{
SelectNext(ActiveControl,true,true);
}
else if((Key == VK_BACK)&&(nMaxLength==0))
{
if(ptrControl)
{
SelectNext(ActiveControl, false, true);
}
}
}
else
{
Caption = "19";
if((Key == VK_RETURN)||(nMaxLength >= 19)&&(Key != VK_BACK))
{ //Goto Next
SelectNext(ActiveControl,true,true);
}
else if((Key == VK_BACK)&&(nMaxLength==0))
{
if(ptrControl)
{
SelectNext(ActiveControl, false, true);
}
}
}
}
그럼 잘 부탁드리겠습니다. (__);;
|