gpt4 book ai didi

C++ WINAPI - 绘制无边框的ListView

转载 作者:行者123 更新时间:2023-11-27 23:07:46 25 4
gpt4 key购买 nike

我遇到了一些麻烦。

对于父窗口,我使用了 920x570 的尺寸。对于 ListView 900x500。

从这个维度来看,会说有不少边界,但实际上并非如此。如果我使用完全相同的尺寸,我会切断 ListView 的很大一部分。好吧,我可以尝试找到给我“无边界”ListView 的确切值,但即使我这样做,在 Windows XP 中也略有不同(我们谈论的是 5-10 像素)。

是否有正确的方法可以在所有平台上原生地“无边界”地绘制 ListView?

他们说图片胜过千言万语......所以就这样

Picture

最佳答案

您必须区分窗口大小和客户端大小。如果您的父窗口为 920x570,则这些是其外部尺寸。客户区较小,这就是您需要将 ListView 的尺寸设置为使其适合整个区域的尺寸。

看看GetClientRect功能。您需要将 ListView 的尺寸设置为使用此函数获得的尺寸。

编辑

您的代码可能如下所示

HWND outerWnd = CreateWindowEx(...);
RECT clientRect;
GetClientRect(outerWnd, &clientRect);
HWND listView = CreateWindowEx(..., WC_LISTVIEW, "", WS_CHILD|..., 0, 0, clientRect.right, clientRect.bottom, outerWnd, NULL, hInstance, NULL);

对于 GetClientRect,RECT 结构的右侧和底部成员分别是窗口的宽度和高度。

关于C++ WINAPI - 绘制无边框的ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310548/

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