2017-04-15 2 views
3

그림 상자가 있고 내용이 인쇄됩니다. 나는 밀리미터 단위로 텍스트의 정확한 텍스트 폭을 알고 싶다. 그러나 나는 틀린 가치를 얻는다. 여기에 내가 그것을 48mm 입니다 종이에 인쇄 출력에서 ​​측정 할 때 내 코드텍스트 폭이 밀리미터 단위로 올바르게 표시되지 않습니다. vb6

me.scalemode = vbmillimeters 
picturebox.scalemode = vbmillimeters 

picturebox.fontname = "Arial" 
picturebox.fontsize = 12 
debug.print textwidth("AB.C.D.E. FGHIJKLMN") 

이지만 32.97mm

잘못입니다 좀 도와주세요 보여줍니다. 사전에 감사

답변

4

당신은 그림 상자에 인쇄 된 텍스트의 폭, 사용을해야하는 경우 :

PictureBox.textwidth("AB.C.D.E. FGHIJKLMN")

당신이 실제로하고 있습니다 : textwidth("AB.C.D.E. FGHIJKLMN")은 양식에 인쇄 된 동일한 텍스트를 (mesuring한다 Me).

과 같이 수행하는 것이 덜 오류가 발생하기 쉬운 :

With SelectedPrinter.... 
+0

감사의 친구 :

Dim TextWidth as Single With PictureBox .ScaleMode = vbMillimeters .FontName = "Arial" .FontSize = 12 TextWidth = .TextWidth("AB.C.D.E. FGHIJKLMN") End With 

당신이 다음 종이로 전환하는 경우, 당신은 쉽게 컨텍스트 전환 할 수 있기 때문에

. 어리석은 실수 였어. – srinivasan

+1

물론 일부 높은 DPI 설정에서는 오류가 발생합니다. VB6은 200 % (192 DPI)와 같은 일부 DPI 설정에서 조금 벗어난 크기 조정을 수행하기 위해 OLE에서 무언가를 사용합니다. 7.5 twips/pixel은 내부적으로 7로 잘라내어 모든 것을 던집니다. Microsoft가이 문제를 해결할 것으로 기대하지 마십시오. 프로그램에 DPI 인식이 표시되어 있지 않으면이 메시지가 표시되지 않습니다. – Bob77