找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 8323|回复: 9

[求助] 关于label的特殊要求实现方法

 火.. [复制链接]

1

主题

16

回帖

0

精华

初来乍到

积分
31
发表于 2010-4-3 14:32:06 | 显示全部楼层 |阅读模式
目前窗体上存在一个label、准备显示长度不固定字符串、为了让label能显示所有的文本、把autosize=true、但是这样有个问题、如果字符串过长、则会显示到窗体外、有什么办法能让label中的文本、显示到窗体边界后自动换行显示?(显示的字符串中本身也包含换行符)(记得曾经看到过print窗体、可以让文本自动换行、本来想参考下、可是却发现到时没有保存、、)

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2010-4-4 14:37:22 | 显示全部楼层
不用这么麻烦吧

直接把Label设置为窗体宽度,然后再拖高点就行了呀,又能显示完又会自动的换行.....
我就是嗷嗷叫的老马了......

1

主题

16

回帖

0

精华

初来乍到

积分
31
 楼主| 发表于 2010-4-9 15:05:52 | 显示全部楼层
回复 2# 马大哈
谢谢、、
我也这么想过、不过呢、、我文本的长度无法预知、可能会出现显示满整个窗体还无法完全显示、这时我就需要再扩大窗体、然后继续拉大label、问题在于如何判断这个呢

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2010-4-9 15:26:08 | 显示全部楼层
回复 3# gam2046


    我觉得这个问题不应该是由软件来完成.

你想想自己使用记事本打开一个文本文件时,记事本是自动根据文本内容大小进行调整大小的吗?

那还不是由你自己决定使用什么样的大小来显示,从而控制记事本的大小.

话又说回来,如果文本内容有1M大小,想一次显示完?怕是目前最大的显示器也无法完成的....

加个滚动条吧,由用户决定什么时候应该用什么大小来显示.
我就是嗷嗷叫的老马了......

1

主题

16

回帖

0

精华

初来乍到

积分
31
 楼主| 发表于 2010-4-10 07:23:35 | 显示全部楼层
额、、好吧、、目前还想不出有更好的方法、谢谢、、

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2010-4-10 22:57:39 | 显示全部楼层
不客气.

要是你后面想到啥好招,并且方便的话,希望能共享一下
我就是嗷嗷叫的老马了......

4

主题

16

回帖

0

精华

初来乍到

积分
0
发表于 2010-4-14 22:21:38 | 显示全部楼层
用text控件不行吗?
www.daruisoft.com

1

主题

16

回帖

0

精华

初来乍到

积分
31
 楼主| 发表于 2010-4-17 16:29:14 | 显示全部楼层
换了个思路、、用DrawText、不过有点问题、、代码如下:
    Dim a          As RECT
    Dim TextHeight As Long
    Me.Cls
    GetClientRect Me.hwnd, a
    TextHeight = DrawText(Me.hdc, "这里的文本长一些", -1, a, DT_LEFT Or DT_WORDBREAK)

    If TextHeight > Me.Height / 15 Then MsgBox "大于窗体"
    Debug.Print TextHeight
    Debug.Print Me.Height / 15
无论如何、都不会弹出提示、而且好像DrawText不受窗体AutoRedraw属性影响、希望大家能开导我一下、、

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2010-4-21 23:23:17 | 显示全部楼层
DrawText的返回值会不会只是字高,而不是输出区域的总高?

貌似是字高哎.
我就是嗷嗷叫的老马了......

1

主题

16

回帖

0

精华

初来乍到

积分
31
 楼主| 发表于 2010-4-23 15:36:42 | 显示全部楼层
囧、、发现了一个很搞笑的问题、、
label设置AutoSize=True、WordWrap=True就都OK了、、郁闷唉、还绕这么大个圈子

对了、有个小问题、最近新学VC++、发现C++是个很不错的语言、不过同时发现一个蛮严重的问题、通过MFC创建应用程序、对于创建界面完全依靠代码实现、简单的创建一个按钮都要N久调试、才能找准位置、VC++有没有类似VB、delphi的创建界面的方法?至少可以让布置界面来简单一点的方法?我百度很久无良方
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

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