其实也比较简单,但是一开始我也是找了好久才知道的,呵呵。 主要就是重新定义一个事件,当系统发送消息WM_PAINT给控件让其重画时,就运行我们写的程序,给EDIT画一个边框。 具体实现代码如下:.h void __fastcall MyPaint(TMessage &msg); .cpp Edit1->Ctl3D = false; // 平面 Edit1->WindowProc = MyPaint; // 开始就写 void __fastcall TForm1::MyPaint(TMessage &msg) { switch(msg.Msg){ case WM_PAINT:{ Edit1->Dispatch(&msg); TRect r; r.Left = 0; r.Top = 0; r.Right = Edit1->Width; r.Bottom = Edit1->Height; HDC dc= GetDC(Edit1->Handle); TCanvas * can = new TCanvas(); can->Handle = dc; can->Brush->Style = bsClear; can->Pen->Width = 1; can->Pen->Color = clLime; // 画绿边 颜色自己改 can->Rectangle(r); ReleaseDC(Edit1->Handle,dc); delete can; } break; default: Edit1->Dispatch(&msg); break; } }