这样做的意义是什么? 我没看出SaveDC和RestoreDC有什么意义。而且好像有没有这两句话,效果都一样啊。 if(StartDoc(pdc,&di)> 0){
StartPage(pdc); //打印机走纸,开始打印
//SaveDC(pdc); //保存打印机设备句柄
TextOut(pdc,1,1, "这是一个例子 ",12);
MoveToEx(pdc,20,20,NULL);
LineTo(pdc,120,120);
//RestoreDC(pdc,-1);//恢复打印机设备句柄
EndPage(pdc); //打印机停纸,停止打印
EndDoc(pdc); //结束一个打印作业
MessageBox(NULL, "打印完毕! ", "提示 ",MB_ICONINFORMATION);
}
StartPage(pdc); //打印机走纸,开始打印
//SaveDC(pdc); //保存打印机设备句柄
TextOut(pdc,1,1, "这是一个例子 ",12);
MoveToEx(pdc,20,20,NULL);
LineTo(pdc,120,120);
//RestoreDC(pdc,-1);//恢复打印机设备句柄
EndPage(pdc); //打印机停纸,停止打印
EndDoc(pdc); //结束一个打印作业
MessageBox(NULL, "打印完毕! ", "提示 ",MB_ICONINFORMATION);
}
http://zhidao.baidu.com/question/88377159.html
讲的很清楚
idSaved = SaveDC(hdc); 现在,可以改变一些属性,在想要回到调用SaveDC前存在的设备描述表时,调用: RestoreDC(hdc,idSave); 恢复SaveDC之前的状态简单的说,这对函数就是可以让你在独立的函数中保证CDC对象的属性不会被修改,这样你的多个操作就不会造成相互影响了
idSaved = SaveDC(hdc); 现在,可以改变一些属性,在想要回到调用SaveDC前存在的设备描述表时,调用: RestoreDC(hdc,idSave); 恢复SaveDC之前的状态简单的说,这对函数就是可以让你在独立的函数中保证CDC对象的属性不会被修改,这样你的多个操作就不会造成相互影响了