我试图将一些只读文本框堆叠在一起,以制作一个可以剪切和粘贴的长滚动列表。
所以我创建了一个具有巨大高度的简单文本框....
HWND aTextBox=CreateWindow("Edit",theText.c(), WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_AUTOVSCROLL|ES_READONLY, 10, 10,aWidth-20,9999, aWindow, NULL, NULL, NULL);
SendMessage(aTextBox, WM_SETFONT, (WPARAM)gTextFont, 0);
...现在我想弄清楚文本的高度,以便我可以调整文本框的高度以适应。 我现在正在这样做:
HDC aHDC=GetDC(aTextBox);
RECT aRect;
DrawText(aHDC,theText.c(),theText.Len(),&aRect,DT_CALCRECT|DT_LEFT);
// Now size the textbox...
SetWindowPos(aTextBox,NULL,0,0,aWidth-20,aRect.bottom-aRect.top,SWP_NOMOVE);
我得到了一些似乎很接近的奇怪结果......但并不准确。有些太大,有些太小,有些是现货。
任何人都知道我在这里做错了吗?