rect 안에 텍스트를 그려야합니다. 그러나 텍스트가 길면 여분의 텍스트를 잘라냅니다. 텍스트를 줄 바꿈해야 텍스트의 첫 번째 줄에 맞지 않는 부분이 다음 줄로 이동하게됩니다.MFC에서 DrawTextEx로 단어 줄 바꾸기
저는 Google에 DrawText() 대신 DT_CALCRECT 플래그가있는 DrawTextEx()를 사용하라는 제안이있었습니다. 하지만 여전히 작동하지 않습니다.이 플래그를 사용할 때 텍스트가 표시되지 않습니다.
DRAWTEXTPARAMS lpDTParams;
lpDTParams.cbSize = sizeof(lpDTParams);
lpDTParams.iLeftMargin = 1;
lpDTParams.iRightMargin = 1;
lpDTParams.iTabLength = 4;
lpDTParams.uiLengthDrawn = 0;
pDC->DrawTextExA(sTemp, rc, DT_NOCLIP|DT_CENTER|DT_WORDBREAK|DT_CALCRECT, &lpDTParams);
모든 의견을 크게 기뻐합니다. 감사합니다.
글쎄, 그것은 당신이 당신의 CRect를 어떻게 설정 했느냐에 달려 있습니다. DT_CALCRECT는 텍스트의 모든 줄에 맞게 밑면을 늘리지 만 너비는 충분해야합니다. DT_CALCRECT를 사용하지 않는 것이 좋습니다. 고정 된 영역을 그리려는 곳이 있고 (텍스트가 너무 큰 경우 DT_NOCLIP에서 어떤 일이 일어나는지 고려하십시오). 마지막으로 CRect 내용을 확인하십시오. ** 반드시 텍스트 너비에 맞게 충분히 커야합니다. –
또한 DT_CALCRECT를 전달하면 아무 텍스트도 그려지지 않으며, rect를 모두 맞춰야하는 정도를 계산하는 것입니다. 계산 된 rect를 사용하여 그리려면 DrawTextEx를 다시 호출해야합니다. –
답장을 보내 주셔서 감사합니다. – dearvivekkumar