【发布时间】:2021-11-26 03:41:36
【问题描述】:
我在工具栏中嵌入了几个子窗口控件。我正在尝试使用 TextOut 在两个子窗口的正上方添加一个标签,以便用户知道这些控件的作用。但是,文本永远不会显示。工具栏似乎被绘制在它上面,覆盖了它。我的问题是,如何让文本出现在工具栏的顶部?而不是被它覆盖?这是我正在使用的代码 sn-p。抱歉,如果代码草率。我还在学习!如果您需要更多代码,请告诉我,我将提供完整的代码。
感谢您的意见,大卫 B。
case WM_CREATE:
LoadLibrary(TEXT ("Msftedit.dll"));
//Create Child Windows
RichEdit = CreateWindow(MSFTEDIT_CLASS, TEXT("EDITOR"), WS_CHILD | ES_MULTILINE | WS_VISIBLE | WS_BORDER,
0, 0, 0, 0, hwnd, RichEditorID, GetModuleHandle(NULL), NULL);
Toolbar = CreateWindow(TOOLBARCLASSNAME, NULL, WS_CHILD | TBSTYLE_FLAT, 0, 0, 0, 0, hwnd,
ToolBarID, GetModuleHandle(NULL), NULL);
ListboxType = CreateWindow(WC_LISTBOX, NULL, WS_CHILD| WS_VISIBLE, 0, 0, 0, 0, Toolbar, ChildID1 + 2,
GetModuleHandle(NULL), NULL);
ListboxArch = CreateWindow(WC_LISTBOX, NULL, WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, Toolbar, ChildID1 + 3,
GetModuleHandle(NULL), NULL);
hwndBuildButton = CreateWindow(WC_BUTTON, L"Build", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 0, 0, 0, 0, Toolbar, ChildID1 + 4,
GetModuleHandle(NULL), NULL);
EnumChildWindows(hwnd, EditorChildProc, (LPARAM)&rect);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
SetTextAlign(hdc, TA_TOP);
TextOut (hdc, archListBoxPos + 20, 5, ArchLabel, ARRAYSIZE(ArchLabel));
TextOut(hdc, btListBoxPos, 5, BuildLabel, ARRAYSIZE(BuildLabel));
EndPaint(hwnd, &ps);
return 0;
【问题讨论】:
-
哦!我想知道这一点。好的。谢谢!衷心感谢您的帮助。