说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

怎么把TEdit 控件的边框变成单线的边框,不要3D样式

编辑:说三道四文库 发布时间:2017-01-24 11:27
HTML文档下载 WORD文档下载 PDF文档下载
我只能把 Edit 的边框设置成没有,但是怎么才能把立体的变成平面的 ???
就是在 TEdit 的外面有一个单线的黑筐。。。。。?????????????
救命啊。。。。。。。。。。。
Edit::BorderStyle 设为 bsNone
平面的改属性,把single改成none,黑线得自己画了吧
不行啊,这样边框就没有了。
我想要在外面有个 单线的筐。
可以用MoveTo,LineTo画

还有一个办法如有:
Edit1,Edit2两个TEdit控件 
它们的属性BorderStyle都弄成None
Edit1的颜色Color为黑色
把Edit2放在Edit1上面
调整一下Edit2位置外面就有一个单线的黑筐
放一个panel,BevelOuter设为bvLowered,
在把Edit放在panel上,BorderStyle 设为 bsNone ,
调好位置,发现下馅的效果.也不错
把panel的Color设为 黑色就可以了
解决办法不是很OOP。
大家能不能有个彻底的解决方法???
没有很OOP的办法,但这是一个很彻底的方法:
    DWORD dwStyle = GetWindowLong (Edit1->Handle, GWL_STYLE );
    DWORD dwExStyle = GetWindowLong (Edit1->Handle, WS_EX_CLIENTEDGE );

    dwStyle |= WS_BORDER;
    dwExStyle &= ~WS_EX_CLIENTEDGE;

    SetWindowLong (Edit1->Handle, GWL_STYLE, dwStyle );
    SetWindowLong (Edit1->Handle, GWL_EXSTYLE, dwExStyle );
    SetWindowPos (Edit1->Handle, 0,0,0,0,0, SWP_NOZORDER|SWP_NOSIZE|SWP_NOMOVE|SWP_FRAMECHANGED);
瞧我的:
放一个shape,画出一个框框,
再其中间放一个edit,single为bsnon就行了。

这样总行了吧。
欢迎c++的朋友来串门!
请再加一个TButten控件在TEdit控件的下面就可以实现了!
BorderStyle=bsNone  
还有Single 
打错了,第二句该是
    DWORD dwExStyle = GetWindowLong (Edit1->Handle, GWL_EXSTYLE );