国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

實現StatusBar的Flat風格

2019-11-18 18:15:11
字體:
來源:轉載
供稿:網友
具有Flat風格的StatusBar  效果見右圖,OfficeXP里就是這樣的風格,其實實現很簡單,不必專門在網上找別人控件。
  把StatusBar的SimplePanel設為False,點擊Panels添加StatusPanel,把所有StatusPanel的Bevel設為pbNone、Style設為psOwnerDraw因為我們要自己繪制Flat風格。下面是StutasBar的OnDrawPanel事件代碼:

PRocedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
var
    uAlign: UINT;
    R: TRect;
begin
    case Panel.Alignment of
        taLeftJustify  : uAlign := DT_LEFT;
        taCenter       : uAlign := DT_CENTER;
        taRightJustify : uAlign := DT_RIGHT;
    end;
    uAlign := uAlign or DT_VCENTER;
    with StatusBar.Canvas do begin
        Pen.Color := $E1E1E1;
        Brush.Color := StatusBar.Color;
        Rectangle(Rect);
        Brush.Style := bsClear;
        R.Left := Rect.Left + 1;
        R.Right := Rect.Right - 1;
        R.Top := Rect.Top + 1;
        R.Bottom := Rect.Bottom - 1;
        DrawText(StatusBar.Canvas.Handle, PChar(Panel.Text), -1, R, uAlign);
    end;
end;

  右圖的界面中,第一StatusPanel應該是自動調整大小的,所以還得處理StatusBar.OnResize事件,代碼如下:
procedure TForm1.StatusBar1Resize(Sender: TObject);
var
    i, w: integer;
begin
    w := StatusBar1.Width;
    for i:=1 to StatusBar1.Panels.Count-1 do
        w := w - StatusBar1.Panels[i].Width;
    StatusBar1.Panels[0].Width := w;
end;

  效果還不錯吧

上一篇:SQLServer中按某字段排列名次

下一篇:來自SVG的靈感

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 木兰县| 金昌市| 武夷山市| 石阡县| 梁平县| 林芝县| 蒙山县| 盐边县| 昌平区| 大石桥市| 甘肃省| 涿鹿县| 杨浦区| 内黄县| 肥城市| 武平县| 吴江市| 牟定县| 唐河县| 南木林县| 呈贡县| 泗水县| 城口县| 通许县| 雅江县| 伊春市| 年辖:市辖区| 义乌市| 巴中市| 昌吉市| 莒南县| 达拉特旗| 荥经县| 墨玉县| 平塘县| 苏尼特右旗| 卢龙县| 云和县| 崇左市| 梁河县| 崇左市|