|
civilian님의 말씀데로 바꿔봤는데요....
그래도 결과가 같아요.
도대체 뭐가 문제죠?
근데요...
제가 쓴 이 함수요...
인수가 맞게 써지긴 한건가요?
ResetDC(Printer->Handle, pDMode);
알수가 없네요... 워낙에 초보라서... 원... ㅠ,.ㅠ;
혹시 아시는 분 부탁드립니다.
고맙습니다.... ^^;
civilian,안영제 님이 쓰신 글 :
: 임영우 님이 쓰신 글 :
: : ResetDC() 를 써 봤는데요....
: : 이렇게 쓰는 것이 맞나요?
: : 결과가 변화가 없기에.... 제가 잘못 사용한 것 같아서요... 도와주세요...
: :
: : //---------------------------------------------------------------------------
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: : {
: : char Device[256];
: : char Driver[256];
: : char Port[256];
: : THandle hDMode;
: : PDEVMODE pDMode;
: : TPrinter *P = Printer();
: :
: : ShowMessage( "A" );
: : ShowMessage( P->PageWidth );
: : ShowMessage( P->PageHeight );
: : P->PrinterIndex = P->PrinterIndex;
: : P->GetPrinter( Device, Driver, Port, hDMode );
: : if( hDMode != 0 )
: : {
: : pDMode = (PDEVMODE)GlobalLock((void*)hDMode);
: : if( pDMode != NULL )
: : {
: : /*
: : pDMode->dmFields = pDMode->dmFields | pDMode->dmPaperSize;
: : pDMode->dmPaperSize = DMPAPER_LEGAL; // Windows.pas?? DMPAPER_ ? ???? ???? ?????
: : */
: : pDMode->dmOrientation = DMORIENT_PORTRAIT;
: : pDMode->dmFields = pDMode->dmFields |
: : DM_ORIENTATION |
: : DM_PAPERSIZE |
: : DM_PAPERWIDTH |
: : DM_PAPERLENGTH;
: : pDMode->dmPaperSize = DMPAPER_USER;
: : pDMode->dmPaperWidth = 20;
: : pDMode->dmPaperLength = 999;
: :
: : pDMode->dmFields = pDMode->dmFields | DMBIN_MANUAL;
: : pDMode->dmDefaultSource = DMBIN_MANUAL;
:
: // 여기에 넣어 보세요.
: //=======================================================
: ResetDC(Printer->Handle, pDMode);
: //=======================================================
: :
: : GlobalUnlock( (void *)hDMode );
: : }
: : }
: : P->PrinterIndex = P->PrinterIndex;
: :
: : ShowMessage( "B" );
: : ShowMessage( P->PageWidth );
: : ShowMessage( P->PageHeight );
: :
: : ///////////////////// 여기 이거요... 이렇게 쓰는 것 맞나요?//////////////////
: : ResetDC( (void*)P, pDMode );
: :
: : ShowMessage( "C" );
: : ShowMessage( P->PageWidth );
: : ShowMessage( P->PageHeight );
: :
: : /*
: : P->BeginDoc();
: : // for( int i=0, j=0; i<40 && j<2; i++ )
: : for( int i=0; i<40; i++ )
: : {
: : // if( i*P->Canvas->TextHeight("W") > P->PageHeight - 100 )
: : // {
: : // P->NewPage();
: : // i=0;
: : // j++;
: : // }
: : P->Canvas->TextOut(1,i*P->Canvas->TextHeight("W"), "TestTestTestTestTestTestTestTestTestTestTest");
: : }
: : P->EndDoc();
: : */
: : }
: : //---------------------------------------------------------------------------
: :
: :
: :
: : 임영우 님이 쓰신 글 :
: : : 그렇군요...
: : : 그런 것이 제공되는군요.
: : : 근데... 프린터를 북경 중관촌이라는 곳에서 싸구려를 샀걸랑요.
: : : 제공되는 메뉴얼에 명령어(케쉬박스열기등등....)가 몇가지 있는 것이 다예요.
: : : 콤퍼넌트 같은 것도 없구요. ㅠ,.ㅠ;
: : : 드라이버가 다예요.
: : : 그나마 드라이버도 좀 요상하구요. ㅠ,.ㅠ;
: : : 후~~~!. 이걸 어째야 할지 원... 참... 난감하네요.
: : : 일단 윗 분이 말씀하신데고 RestDC를 함 뒤져 봐야겠네요. ^^;
: : : 그래도 한가지 방법을 더 알려주셔서 넘 감사합니다.
: : : ^^;
: : : 그럼...경험있으신 분들의 더 많은 답변 기다릴께요... 부탁해요..
: : : ^^;
: : : .
: : :
: : : 무심코 님이 쓰신 글 :
: : : : 제가 영수증 프린터 출력 프로그램을 개발할때
: : : : 프린터 업체에서 제공하는 라이브러리로 컴포넌트 했구요
: : : : 예제 소스로 제공되어진 VB 소스를 째려보면서
: : : : 개발을 했는데요! 아무런 문제가 없이 개발이 되었어요!
: : : :
: : : : 혹시 프린터 제공업체에서 제공되는 라이브러니나 예제 소스가
: : : : 없는지 확인을 해보시는 것도 좋은 것 같아서요!
: : : :
: : : : 오늘은 별 도움이 안되는 얘기만 남기네요!
|