为什么不用Common Dialog ?
很简单就可以调出PageSetupDlg 进行纸张设置和页边距及打印方向设置的。
CommonDialog1.Flags = &H42
CommonDialog1.ShowPrinter

解决方案 »

  1.   

    CommonDialog好像没有一个Flags可以设置成可以设置页边距的常量的说。!!!!!!
    而且在我的程序中有这样一段,是通过调用Common Dialog设置打印机的属性的:
    '===================================================================================================
        '1.直接用CommonDialog完成打印机设置对话框的调用
        '打印机的设置
        With cdgPrint
            .CancelError = True
            .Orientation = Printer.Orientation
            .Copies = Printer.Copies
            .flags = cdlPDPrintSetup
            .PrinterDefault = True
            .ShowPrinter        '在没有进行Cancel操作时,进行打印方向和打印分数的设置
            g_PageSetup.Orientation = .Orientation
            g_PageSetup.NumCopies = .Copies        '存储打印机的参数
            g_PrinterSetup.Height = Printer.Height
            g_PrinterSetup.Width = Printer.Width
            g_PrinterSetup.ScaleHeight = Printer.ScaleHeight
            g_PrinterSetup.ScaleWidth = Printer.ScaleWidth
    End With
        '=========================================================================================================
    就这样一段程序,可以在98操作系统中良好的运行的,每次我做了改变纸张和打印方向的操作以后,再次调用对话框的时候,对话框的参数也会相应地记录下我上次改动地值,这个操作象是
    commonDialog和Printer对象对windows注册表读写地操作,就是说,在我按ok键以后,改动的值自动存入注册表了。但是到2000操作系统下,这一段程序,完成不起作用,不会改变打印机对象
    Printer里面的参数,我反复做了很多次,都是如此。98和2000的差别还是很大的。看来,vb在对windows底层的操作是做得很差的,毕竟它也是用VC或者API写的嘛!
    这也是我不用Commondialog的一个原因吧。而且,commonDialog很占用系统资源的说。
    大侠们,在看看吧,研究一下API。我想我的pageSetupDlg调用程序中肯定还是有问题的。谢谢了。:)