繁体   English   中英

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

[英]C++ WINAPI - Draw ListView without borders

我有点麻烦

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

从这个角度看,人们会说有很多边界,但实际上并非如此。 如果使用完全相同的尺寸,则会截断ListView的很大一部分。 好吧,我可以尝试找到确切的值,这些值将为我提供“无边界”的ListView,但是即使这样做,Windows XP中的情况还是有些不同(我们谈论的是5-10像素)。

有没有正确的方法来本地绘制ListView以在所有平台上正常工作?

他们说图片值得一千个字...就这样

图片

您必须区分窗口大小和客户端大小。 如果您的父窗口是920x570,则这些是其外部尺寸。 客户区域较小,这就是您需要设置列表视图的尺寸以使其完全适合整个区域的原因。

看看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结构的右成员和下成员分别是窗口的宽度和高度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM