c++ - 底部边距不起作用。MFC 中的项目
问题描述
我正在使用适用于 WindowsCE 2013 的 C++ MFC 框架我的目的是准备正确的打印形式。我初始化PAGESETUPDLG
结构并用以下值初始化它不幸的是psd.rtMinMargin.bottom = 500;
,它应该具有像 0,5 英寸这样的值不起作用。无论打印输出上设置的值如何,它始终为 1 英寸。我无法解释这是什么原因。
BOOL Druk::Configuration()
{
TCHAR DriverName[256];
TCHAR DeviceName[256];
TCHAR OutputName[256];
ZeroMemory(&psd, sizeof(psd));
psd.lStructSize = sizeof(psd); // psd is member of PAGESETUPDLG structure
//psd.hwndOwner = hWnd;
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 = 100;
psd.rtMargin.left = 100;
psd.rtMargin.right = 100;
psd.rtMargin.bottom = 500;
psd.rtMinMargin.bottom = 500;
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;
hFontVertic = CreateFontIndirect(&lf_vertic);
hFontHorizont = CreateFontIndirect(&lf_horizont);
DWORD error;
if (PageSetupDlg(&psd) == TRUE)
{
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)));
//hDC = CreateDC(DriverName, DeviceName, OutputName, &dm); // Wersja dla WinAPI do usunięcia w wersji finalnej
hDC.CreateDC(DriverName, DeviceName, OutputName, NULL);
}
error = CommDlgExtendedError();
return TRUE;
解决方案
根据https://docs.microsoft.com/en-us/windows/win32/api/commdlg/ns-commdlg-pagesetupdlga
rtMinMargin
类型:
RECT
左、上、右和下边距的最小允许宽度。
PSD_MINMARGINS
如果未设置标志,系统将忽略此成员。
而且您没有PSD_MINMARGINS
设置该标志
推荐阅读
- java - WebMvcAutoConfiguration 未激活
- linux - 使用信号量时如何避免资源泄漏?
- apache-spark - 在 Windows 上使用 pyspark 不起作用-py4j
- php - 在 Woocommerce 3.2+ 中以编程方式向订单添加折扣
- html - 将图像放在另一个图像上并保持比例(HTML - CSS)
- php - 如何使用laravel制作带有特殊字符的密码
- arrays - 如何使用高阶函数获得对角线的总和?
- ssis - 从excel文件加载数据的SSIS问题
- excel - 从外部 vbs 运行时宏的行为不同
- java - 从 Java 中的 Tableau 仪表板中捕获表数据