我想把DateTimePicker的边框去掉,就像Edit一样,我试着在我继承的DateTimePicker控件中把Edit的设边框的代码加进去,属性是有了可没效果

解决方案 »

  1.   

    这个基本上是没有办法解决的,因为它是系统画的,不过可这样来,系统画完后,我们再画上去覆盖它:unit MYDATETIMEPICKER;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ComCtrls;type
      TMYDATETIMEPICKER = class(TDateTimePicker)
      private
        { Private declarations }
        procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
      protected
        { Protected declarations }
      public
        { Public declarations }
      published
        { Published declarations }
      end;procedure Register;implementationprocedure Register;
    begin
      RegisterComponents('Standard', [TMYDATETIMEPICKER]);
    end;{ TMYDATETIMEPICKER }procedure TMYDATETIMEPICKER.WMPaint(var Message: TWMPaint);
    var
      BtnFaceBrush, WindowBrush: HBRUSH;
      dc : hdc;
      r : TRect;
    begin
      inherited;
      DC := GetWindowDC(Handle);
       try
          BtnFaceBrush := CreateSolidBrush(GetSysColor(COLOR_BTNFACE));
          WindowBrush := CreateSolidBrush(GetSysColor(COLOR_WINDOW));
          try
             GetWindowRect(Handle, R);
             OffsetRect (R, -R.Left, -R.Top);
             FrameRect (DC, R, BtnFaceBrush);
             InflateRect (R, -1, -1);
             FrameRect (DC, R, BtnFaceBrush);
             InflateRect (R, -1, -1);
             FrameRect (DC, R, WindowBrush);
          finally
             DeleteObject (WindowBrush);
             DeleteObject (BtnFaceBrush);
          end;
       finally
          ReleaseDC(Handle, DC);
       end;
    end;end.
      

  2.   

    把DateTimePicker缩小成只有一个下拉箭头,在旁边加个EDIT,看起来就想DateTimePicker平面化了。
      

  3.   

    考虑用三方控件,比如RZDATETIMEPICKER就可以
      

  4.   

    >>我想把DateTimePicker的边框去掉,就像Edit一样,
    那你直接用個Edit 來顯示, 操作, 不行嗎??
    旁邊加個按鈕就行!!