VC 6.0 怎样实现列表头居中,内容左对齐

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC 6.0 怎样实现列表头居中,内容左对齐相关的知识,希望对你有一定的参考价值。

我用了以下代码,但内容也跟着居中了
CHeaderCtrl* pHeader = m_ctrlList.GetHeaderCtrl();
HD_ITEM item;
item.mask = HDI_FORMAT;
item.fmt = HDF_CENTER |HDF_STRING;
pHeader->SetItem(0, &item);
pHeader->SetItem(1, &item);
pHeader->SetItem(2, &item);

怎样使内容左对齐呢?像这样

以下代码也是不行的:
m_ctrlList.InsertColumn(1, _T("进程名称"), LVCFMT_LEFT, 100);
m_ctrlList.InsertColumn(2, _T("进程PID"), LVCFMT_LEFT, 100);
m_ctrlList.SetExtendedStyle(LVS_REPORT | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
我用了三天都没能解决,连觉都睡不好,有高手解决过这样的问题吗?要是能有个Demo就更好了,我的E-mail:lxnes@qq.com

参考技术A 实际效果是 表头 不管怎么设置都是居左 参考技术B LVCFMT_CENTER //不就是居中吗?

数据插入的默认就是 左对齐的.

CSS:居中块,但内容向左对齐

【中文标题】CSS:居中块,但内容向左对齐【英文标题】:CSS: Center block, but align contents to the left 【发布时间】:2010-11-19 04:01:52 【问题描述】:

我希望整个块在其父块中居中,但我希望块的内容左对齐。

示例效果最好

在这个页面上:

http://yaml-online-parser.appspot.com/?yaml=%23+ASCII+Art%0d%0a---+%7c%0d%0a++%5c%2f%2f%7c%7c%5c%2f%7c%7c%0d%0a++%2f%2f+%7c%7c++%7c%7c__%0d%0a&type=python

ascii 艺术应该居中(如它所显示的那样),但它应该对齐并且看起来像“YAML”。

或者这个:

http://yaml-online-parser.appspot.com/?yaml=%3f+-+Detroit+Tigers%0d%0a++-+Chicago+cubs%0d%0a%3a%0d%0a++-+2001-07-23%0d%0a%0d%0a%3f+%5b+New+York+Yankees%2c%0d%0a++++Atlanta+Braves+%5d%0d%0a%3a+%5b+2001-07-02%2c+2001-08-12%2c%0d%0a++++2001-08-14+%5d%0d%0a

错误消息应该像在控制台中一样排列。

【问题讨论】:

【参考方案1】:

首先,创建一个父div,以text-align: center 为其子内容居中。接下来,创建一个子 div,它使用 display: inline-block 来适应其子的宽度,并使用 text-align: left 使其包含的内容根据需要向左对齐。

<div style="text-align: center;">
    <div style="display: inline-block; text-align: left;">
        Centered<br />
        Content<br />
        That<br />
        Is<br />
        Left<br />
        Aligned
    </div>
</div>

【讨论】:

清晰有效。谢谢! 不起作用,因为一旦 single 行文本不适合一行,它会换行文本并导致块全宽但文本小于全宽,因此即使块居中也没关系,因为文本不是包含块的全宽。示例请参阅***.com/questions/8702802/… 的图 2a 简单漂亮!谢谢 @user3338098 它确实有效,在您的情况下,您需要为文本设置最大宽度以阻止块扩展为不需要的大小。我实际上只是将这个完全相同的逻辑应用到我的工作中,并且能够实现图 1b + 2b。 简单、优雅、完美。谢谢楼主【参考方案2】:

重新发布另一个问题的有效答案:How to horizontally center a floating element of a variable width?

假设浮动并居中的元素是一个 id="content" 的 div ...

<body>
<div id="wrap">
   <div id="content">
   This will be centered
   </div>
</div>
</body>

并应用以下 CSS

#wrap 
    float: left;
    position: relative;
    left: 50%;


#content 
    float: left;
    position: relative;
    left: -50%;

这是关于http://dev.opera.com/articles/view/35-floats-and-clearing/#centeringfloats的一个很好的参考

【讨论】:

也适用于“包装”为pre 和“内容”code 不起作用,因为一旦This will be centered 不适合一行,它就会包裹文本并导致块是全宽但文本小于全宽,所以即使块居中并不重要,因为文本不是包含块的全宽。示例请参考***.com/questions/8702802/… 的图 2a。 尽量避免使用负值!它不会在所有浏览器中正常工作。【参考方案3】:

如果我理解你的话,你需要使用来居中一个容器(或块)

margin-left: auto;
margin-right: auto;

并将其内容左对齐:

text-align: left;

【讨论】:

那么,我在
 上放什么?我已经尝试过变体但失败了。
你尝试过使用 css 类吗? 另外,您可以将容器 div 用于 >pre> 我正在尝试一个容器 div,使其工作的唯一方法是使用固定宽度(我不想要)。【参考方案4】:

我发现在容器内居中和左对齐文本的最简单方法如下:

HTML:

<div>
  <p>Some interesting text.</p>
</div>

CSS:

P 
  width: 50%; //or whatever looks best
  margin: auto; //top and bottom margin can be added for aesthetic effect

希望这就是您要找的东西,因为我花了很多时间才找到这个非常基本的解决方案。

【讨论】:

【参考方案5】:

通常您应该在其他答案中提到的 div 上使用 margin: 0 auto ,但您必须为 div 指定宽度。如果您不想指定宽度,也可以(这取决于您要执行的操作)使用边距,例如 margin: 0 200px; ,这应该会让你的内容看起来像是居中一样,你也可以看到乐宇对my question的回答

【讨论】:

遗憾的是,您的解决方案使用强制水平滚动条创建了溢出。添加溢出:隐藏到父元素并不好,因为我的输出可能足够长以保证滚动条。对不起:( 实际上这不是我提到的我的解决方案,但无论如何,我不明白你的意思溢出:隐藏强制滚动条,它应该隐藏内容而不是强制滚动条。 您帖子中的解决方案会导致水平滚动条,因为内容实际上向右移动了 50%。这需要一个溢出:隐藏来删除这对我不起作用。【参考方案6】:
<div>
    <div style="text-align: left; width: 400px; border: 1px solid black; margin: 0 auto;">
         <pre>
Hello
Testing
Beep
         </pre>
    </div>
</div>

【讨论】:

另外,我不想要宽度:400px。没有那个可能吗? 问题是块级元素会扩展以填充可能的最大宽度,除非您对其进行限制。 所以,我想做的事情是不可能的? 可能有人知道我不知道的秘密,但据我所知,是的。 我同意戴夫的观点。也许,您可能会看看 tinyMCE 或其他富文本编辑器,它允许比标准 HTML 文本区域进行更多的自定义。不幸的是,您最终可能会花费大量时间来获得骇人听闻的结果。祝你好运!【参考方案7】:

这就是你要找的吗?弹性盒...

.container
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-content: center;
  align-items: center;

.inside
  height:100px;
  width:100px;
  background:gray;
  border:1px solid;
<section class="container">
  <section class="inside">
    A
  </section>
  <section class="inside">
    B
  </section>
  <section class="inside">
    C
  </section>
</section>

【讨论】:

【参考方案8】:

对于我们这些仍在使用旧版浏览器的人,这里有一些扩展的向后兼容性:

<div style="text-align: center;">
    <div style="display:-moz-inline-stack; display:inline-block; zoom:1; *display:inline; text-align: left;">
        Line 1: Testing<br>
        Line 2: More testing<br>
        Line 3: Even more testing<br>
    </div>
</div>

部分受到这篇文章的启发:https://***.com/a/12567422/14999964。

【讨论】:

【参考方案9】:

这行得通

<div style="display:inline-block;margin:10px auto;">
    <ul style="list-style-type:none;">
        <li style="text-align:left;"><span class="red">❶</span> YouTube AutoComplete Keyword Scraper software <em>root keyword text box</em>.</li>
        <li style="text-align:left;"><span class="red">❷</span> YouTube.com website <em>video search text box</em>.</li>
        <li style="text-align:left;"><span class="red">❸</span> YouTube AutoComplete Keyword Scraper software <em>scraped keywords listbox</em>.</li>
        <li style="text-align:left;"><span class="red">❹</span> YouTube AutoComplete Keyword Scraper software <em>right click context menu</em>.</li>
    </ul>
</div>

【讨论】:

您能解释一下您的代码及其优缺点吗?这样其他人就可以从中学习,而不仅仅是复制和粘贴他们可能完全理解或不完全理解的东西。

以上是关于VC 6.0 怎样实现列表头居中,内容左对齐的主要内容,如果未能解决你的问题,请参考以下文章

VC\MFC界面怎么设置列表框第一列文字居中,其他列的文本左对齐

将 div 居中对齐,并将其内容向左对齐

如何用CSS让文字左对齐,图片居中

Bootstrap - 内容居中,然后左对齐(相对于中心)

CSS:居中块,但内容向左对齐

居中网格内容,同时左对齐每一行的内容,具有任意项/列宽度