[ad_1]
मैं इस एप्लिकेशन को विकसित कर रहा हूं और यह सुनिश्चित करने के लिए कि सामग्री को पृष्ठ आकार में समायोजित किया गया है, एप्लिकेशन वर्तमान फ़ॉन्ट आकार और GetTextExtentPoint32 द्वारा लौटाए गए मान का उपयोग करता है ताकि आउट को थोड़ी देर के लूप में फीड करके पृष्ठ आकार को समायोजित किया जा सके। मुझे यह जानकर आश्चर्य हुआ कि फ़ॉन्ट-आकार कम होने के बावजूद GetExtentPoint32 समान मान लौटा रहा है। ऐसा क्यों है, मैं इस चुनौती को कैसे हल कर सकता हूँ?
प्रासंगिक कोड नीचे दिखाए गए हैं:
GetTextExtentPoint32(hdc, wstSchoolName11.c_str(), lstrlen(wstSchoolName11.c_str()), &size); if ((iTextLeft + size.cx) > (iPaperWidth - iPictureWidth - iOffsetX)) { iFontSize--; hNewFont = CreateAppFont(iFontSize, FW_BOLD); hOldFont = (HFONT)SelectObject(hdc, hNewFont); GetTextMetrics(hdc, &tm); //int iTextTop11 = iTop + iOffsetY; //int iTextLeft11 = iImageLeft + iPictureWidth + 5 * dOneMMX; wstring wstSchoolName11 = utf8_decode(stSchoolName); CharUpper(&wstSchoolName11[0]); //SIZE size11; GetTextExtentPoint32(hdc, wstSchoolName11.c_str(), lstrlen(wstSchoolName11.c_str()), &size); } else { bMaximumWith = true; }
int iWindowExtX = 1000 * GetDeviceCaps(hDC,HORZSIZE); int iWindowExtY = 1000 * GetDeviceCaps(hDC, VERTSIZE); int iViewPortX = GetDeviceCaps(hDC, HORZRES); int iViewPortY = GetDeviceCaps(hDC, VERTRES); SetMapMode(hDC, MM_ISOTROPIC); SetWindowExtEx(hDC, iWindowExtX, iWindowExtY, nullptr); SetViewportExtEx(hDC, iViewPortX, iViewPortY, nullptr);
CreateFont ऐप की परिभाषा नीचे दिखाई गई है। क्या इसमें कुछ ग़लत है?
HFONT CreateAppFont(int cHeight, int cWeight, DWORD bItalic = 0, int cEscapement = 0, DWORD bUnderline = 0, LPCWSTR pszFaceName = L"Times New Roman"); HFONT CreateAppFont(int cHeight, int cWeight, DWORD bItalic, int cEscapement, DWORD bUnderline, LPCWSTR pszFaceName) { return CreateFont(cHeight, 0, cEscapement, cEscapement, cWeight, bItalic, bUnderline, FALSE, DEFAULT_CHARSET, OUT_OUTLINE_PRECIS, CLIP_DEFAULT_PRECIS, CLEARTYPE_QUALITY, VARIABLE_PITCH, pszFaceName); }
मैंने क्या प्रयास किया है:
मैंने डिबगिंग में उचित समय बिताया है। परिणाम ने इस पद को अस्वीकार कर दिया।
समाधान 1
खैर मैंने अभी इसका परीक्षण किया है और आकार मान उपयोग में आने वाले फ़ॉन्ट को दर्शाते हैं। मुझे लगता है कि आपको विशिष्ट संदर्भ के साथ, अपने कोड में क्या चल रहा है, इस पर अधिक बारीकी से गौर करने की आवश्यकता है CreateAppFont
समारोह।
[ad_2]
コメント