VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 852|回复: 6

[已解决] 单文档view调整的问题

[复制链接]
01_avatar_middle
在线会员 发表于 2015-10-14 22:06:39 | 显示全部楼层 |阅读模式
3驿站币
本帖最后由 硫酸亚铜 于 2015-10-15 12:56 编辑

各位大虾好,我想请教一个问题,我做了一个单文档程序。
单文档view调整的问题
我想在窗口大小变化的时候,view整个都会随着变化,但是现在是我在窗口的左边缘拉动窗口的大小
结果
单文档view调整的问题
右边多出来了一部分
然后我处理事件WM_SIZE消息
函数如下:
void CCRemoteView::OnSize(UINT nType, int cx, int cy)
{
        CListView::OnSize(nType, cx, cy);

        // TODO:  在此处添加消息处理程序代码
        CRect rec;
        double iWidth;
        ::GetWindowRect(m_hWnd, &rec);
        iWidth = rec.right - rec.left;
        GetListCtrl().SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);        //设置网格线
        GetListCtrl().InsertColumn(0, TEXT(""), 0, 0, -1);
        GetListCtrl().InsertColumn(1, TEXT("IP地址"), LVCFMT_CENTER, static_cast<int>(iWidth / 4.0), -1);
        GetListCtrl().InsertColumn(2, TEXT("计算机名"), LVCFMT_CENTER, static_cast<int>(iWidth / 4.0), -1);
        GetListCtrl().InsertColumn(3, TEXT("操作系统"), LVCFMT_CENTER, static_cast<int>(iWidth / 4.0), -1);
        GetListCtrl().InsertColumn(4, TEXT("内存大小"), LVCFMT_CENTER, static_cast<int>(iWidth / 4.0), -1);
}
结果更乱了
单文档view调整的问题
下面出现了滚动条并且上面标题部分
单文档view调整的问题
内容不断重复
程序应该如何修改
还请各位大虾不吝赐教啊

最佳答案

查看完整内容

在 OnSize 的处理中不应该是调用 InsertColumn 插入新列,而是对原有列宽度的设定,这样改完就可以了




上一篇:一个关于C单链表调用的问题
下一篇:字符数组的拼接
51_avatar_middle
online_admins 发表于 2015-10-14 22:06:40 | 显示全部楼层
在  OnSize 的处理中不应该是调用 InsertColumn 插入新列,而是对原有列宽度的设定,这样改完就可以了
01_avatar_middle
ico_lz  楼主| 发表于 2015-10-15 00:39:08 | 显示全部楼层
本帖最后由 硫酸亚铜 于 2015-10-15 00:41 编辑
Syc 发表于 2015-10-14 22:09
在  OnSize 的处理中不应该是调用 InsertColumn 插入新列,而是对原有列宽度的设定,这样改完就可以了


前面这个问题通过删除所有行然后重新插入也能解决,老大,再问一个问题就是我这个窗口生成了,但是我通过在内部调整,比如下面这样
单文档view调整的问题
我不想出现右边的那些空白,不管在内部如何拉,都保持内部为四列,应该如何处理呢?期待你的回复,谢谢
51_avatar_middle
online_admins 发表于 2015-10-15 09:38:53 | 显示全部楼层
硫酸亚铜 发表于 2015-10-15 00:39
前面这个问题通过删除所有行然后重新插入也能解决,老大,再问一个问题就是我这个窗口生成了,但是我通 ...

你这样效率太低了,一 改变窗口大小就删除所有列重新插入,好的办法还是按照我说的动态的调整列的宽度,根据窗口的大小动态的按比例分配
01_avatar_middle
ico_lz  楼主| 发表于 2015-10-15 10:23:39 | 显示全部楼层
Syc 发表于 2015-10-15 09:38
你这样效率太低了,一 改变窗口大小就删除所有列重新插入,好的办法还是按照我说的动态的调整列的宽度, ...

谢谢老大,还有前面那个问题呢?我在窗口生成之后,手动调整了行的宽度,然后右边多出来一块的多余的,见上面截图,我现在想不管怎么调整都只有四行,而不会多出来,应该如何处理呢?
51_avatar_middle
online_admins 发表于 2015-10-15 10:35:25 | 显示全部楼层
硫酸亚铜 发表于 2015-10-15 10:23
谢谢老大,还有前面那个问题呢?我在窗口生成之后,手动调整了行的宽度,然后右边多出来一块的多余的,见 ...

你手动往左拖的话肯定是有空白的啊
01_avatar_middle
ico_lz  楼主| 发表于 2015-10-15 12:56:07 | 显示全部楼层
Syc 发表于 2015-10-15 10:35
你手动往左拖的话肯定是有空白的啊

非常感谢!
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-8-19 12:55

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表