|
현재 메모장에 글자를 출력 하고 있습니다.
그런데..메모장을 Line으로 출력다보니 문제가 생겼습니다.
라인에서 어떤부분의 글자 하나를 지우고 제가 다른 글자로 입력하게 하고
출력되게 한뒤 carot은 다음 글자를 가리키게 하고 싶습니다..
(글자가 밀리게 하는 것이 아니라 제가 친 내용은 글자가 대치..)
void TForm1::Draw(long id)
{
AnsiString str;
Memo1->Clear();
for(int j = 0; j < height; j++)
{
str = DrawLine(id*j*height, j);
Memo1->Lines->Add(str);
}
}
AnsiString TForm1::DrawLine(long i, int pos)
{
//여기서 한 라인의 글자를 리턴해줍니다.
for(i=0; i<width; i++) {
chr = *(kk+i); // 메모리의 번지에서 글자를 읽습니다.
sprintf(tp, "%02X ", chr);
strcat(ccc, tp)
return (AnsiString)ccc;
}
위의 Drqw 함수를 호출하여 그리고 있습니다.
메모리의 번지의 글자를 읽을때는 바뀐 글자를 읽습니다
외부에서 키보드로 글자를 바꾸면
*(kk+i) = Key; //바로 그메모리의 글자를 바꿔버립니다.
그러고 난뒤 Draw를 호출하니 라인만 출력하면
그 라인은 바뀐 내용이 출력되지만 캐럿은 다음 라인을 가리키게 되고
키보드에서 받은 글자는 다음 라인에 출력되고 캐럿은 글자다음에 위치합니다.
메모장의 SetFocus는 메모장을 선택하는거지 라인까지 정확히 찾니는 못하더군여..
강제로 올기고 샆지만 잘 모르겠구..
또 키보드에서 받는 글자는 어떻게 지워야 될지..
초보라..난감합니다..
|