我有点小麻烦。
对于父窗口,我使用了维度920x570。对于ListView 900x500。
从这个维度来看,人们会说有相当多的边界,然而在现实中却不是这样。如果我使用完全相同的尺寸,我得到相当大一部分的ListView切断。好吧,我可以尝试找到给我提供“无边界”ListView的确切值,但即使这样做,Windows中的情况也略有不同(我们讨论的是5-10像素)。
是否有正确的方法将ListView“无边界”地绘制为在所有平台上工作?
他们说图片值几千字..。所以它开始了
图片
发布于 2014-03-10 22:03:49
您必须区分窗口大小和客户端大小。如果父窗口是920x570,那么这些就是它的外部维度。客户区域更小,这就是您需要设置listview的维度,以使其适合整个区域。
看看GetClientRect函数。您需要将ListView的维度设置为使用这个Fun广子获得的维度。
编辑
您的代码可以如下所示
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结构的右成员和底部成员分别是窗口的宽度和高度。
https://stackoverflow.com/questions/22310548
复制相似问题