gpt4 book ai didi

c++ - 如何将窗口默认滚动条移动到状态栏上方?

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:40 25 4
gpt4 key购买 nike

每个程序的状态栏上方都有滚动条。正确的?嗯,不是我的。

当我尝试在我的程序中设置我自己的滚动条时,我出乎意料地让它们起作用了!所以我也设法让状态栏工作了!欢呼! :-) ...但是状态栏在滚动条上方,而它应该在滚动条下方。我如何移动滚动条?我找不到任何关于移动滚动条的功能。除非我自己创建一个滚动条窗口,但效果不是很好(它有一些奇怪的错误:当我使用默认高度时,它变得完全不可见滚动条,当我使用我定义的高度时,滚动条有 Windows98 主题或者什么 o_O !)

这是我的状态栏创建代码:

// Create status bar
hStatus = CreateWindowEx(
0,
STATUSCLASSNAME,
NULL,
WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP,
0, 0, 0, 0,
hWnd,
(HMENU)IDC_MAIN_STATUS,
GetModuleHandle(NULL),
NULL
);

和窗口创建:

if (!(hWnd=CreateWindowEx(dwExStyle,            // Extended Style For The Window
"OpenGL", // Class Name
title, // Window Title
dwStyle | // Defined Window Style
WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS |
WS_CLIPCHILDREN | WM_HSCROLL | WM_VSCROLL, // Required Window Style
0, 0, // Window Position
WindowRect.right-WindowRect.left, // Calculate Window Width
WindowRect.bottom-WindowRect.top, // Calculate Window Height
NULL, // No Parent Window
NULL, // No Menu
hInstance, // Instance
NULL))) // Dont Pass Anything To WM_CREATE

一定有一些巧妙的技巧我还没有意识到,谁能告诉我如何正确地做到这一点?

最佳答案

运行记事本并使用 spy++ 检查它,您会看到带有滚动条和状态栏的区域是两个具有共同父窗口的对等窗口。您也需要这样做,然后在您的父窗口改变大小或位置时使用 SetWindowPos() 将您的两个窗口相对定位。

关于c++ - 如何将窗口默认滚动条移动到状态栏上方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/622672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com