在MFC中设置边距长度的问题

问题描述

如何在此代码中设置边距 我应该类似构造likie DriverName,DeviceName,OutputName吗? 实际上,程序正在编译,但是页边距设置不起作用。 我不知道为什么?

这是MFC项目

    BOOL Druk::Configuration()
{
    //CPageSetupDialog psd;
    //CPageSetupDialog psd(PSD_MARGINS | PSD_INTHOUSANDTHSOFINCHES,NULL);
    //PAGESETUPDLG m_psd;
    ZeroMemory(&psd,sizeof(psd));
    psd.lStructSize = sizeof(psd); // psd is member of PAGESETUPDLG structure
    psd.hwndOwner = NULL;
    psd.hDevMode = NULL; // Don't forget to free or store hDevMode.
    psd.hDevNames = NULL; // Don't forget to free or store hDevNames.
    psd.Flags = PSD_INTHOUSANDTHSOFINCHES | PSD_MARGINS;
    psd.rtMargin.top = 2000;
    psd.rtMargin.left = 2000;
    psd.rtMargin.right = 2000;
    psd.rtMargin.bottom = 2000;
    //psd.rtMinMargin.bottom = 5000;
    lf_vertic.lfheight = 30; // is member of LOGFONT structure
    lf_vertic.lfWidth = 0;
    //lf.lfOrientation = 2700;
    lf_vertic.lfEscapement = 0;
    lf_vertic.lfUnderline = FALSE;
    lf_vertic.lfWeight = FW_BOLD;
    lf_horizont.lfheight = 30;
    lf_horizont.lfWidth = 0;
    //lf.lfOrientation = 2700;
    lf_horizont.lfEscapement = 2700;
    lf_horizont.lfUnderline = FALSE;
    lf_horizont.lfWeight = FW_BOLD;

    lf_exam_param.lfheight = 30;
    lf_exam_param.lfWidth = 0;
    lf_exam_param.lfEscapement = 2700;
    lf_exam_param.lfUnderline = FALSE;
    lf_exam_param.lfWeight = FW_norMAL;

    hFontVertic = CreateFontIndirect(&lf_vertic);
    hFontHorizont = CreateFontIndirect(&lf_horizont);
    hFontExamParam = CreateFontIndirect(&lf_exam_param);
    if (PageSetupDlg(&psd) == TRUE)
    //if (IDOK == psd.DoModal())
    {
        memcpy(&dm,(DEVMODE *)(psd.hDevMode),sizeof(DEVMODE));
        lstrcpy(DriverName,((TCHAR *)((BYTE *)psd.hDevNames + ((DEVNAMES *)psd.hDevNames)->wDriverOffset)));
        lstrcpy(DeviceName,((TCHAR *)((BYTE *)psd.hDevNames + ((DEVNAMES *)psd.hDevNames)->wDeviceOffset)));
        lstrcpy(OutputName,((TCHAR *)((BYTE *)psd.hDevNames + ((DEVNAMES *)psd.hDevNames)->wOutputOffset)));
        lstrcpy(OutputName,((TCHAR *)((BYTE *)psd.hDevNames + ((DEVNAMES *)psd.hDevNames)->wOutputOffset)));
        //lstrcpy(BottomMargin,psd.rtMargin + ((DEVNAMES *)psd.hDevNames)->wOutputOffset)));
    }
    //error = CommDlgExtendedError();
    return TRUE;
    
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)