在复制到剪贴板前,需要调用SetMapMode函数,将绘图模式设置为MM_TEXT,再进行复制操作。否则,GetTextExtent函数返回的字符串长度可能会受到不同的绘图模式影响,导致坐标值无法正确对齐。代码示例:

// 将绘图模式设置为MM_TEXT
SetMapMode(hDC, MM_TEXT);

// 使用GetTextExtent获取字符串长度
SIZE size;
GetTextExtentPoint32(hDC, str, strlen(str), &size);

// 将图像复制到剪贴板
OpenClipboard(hwnd);
EmptyClipboard();
SetClipboardData(CF_BITMAP, hBitmap);
CloseClipboard();
用vc画图为了让x坐标上各数值的位置右对齐用TextOut使用了GetTextExtent函数来获得坐标值的字符串长度。当把图复制到剪贴板时相当于在剪贴板里画这个函数返回的坐标字符串长度就不正确。怎么实现上面要求的功能

原文地址: https://www.cveoy.top/t/topic/epDP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录