C 自定義Winform無邊框窗體

2021-08-18 13:15:22 字數 3295 閱讀 2643

在實際專案中,winform窗體或者控制項不能滿足要求,所以就需要自己設計窗體等,當然設計介面可以用的東西很多,例如wpf、或者一些第三方的庫等。本例中將採用winform設計乙個扁平美觀的窗體。

需要的可以參考:c#自定義button按鈕控制項

窗體效果:

///是否允許最大化

3///

4private

bool maxvisible = true

;5 [description("

是否允許最大化")]

6public

bool

maxvisible79

set10

17else

1822}23

}242526

///27

///窗體標題

28///

29private

string

titletext;

30 [description("

窗體標題")]

31public

string

titletext

3234

set3540}

41///

42///

窗體標題是否顯示

43///

44private

bool titlevisible = true

;45 [description("

窗體標題是否顯示")]

46public

bool

titlevisible

4749

set5054}

5556

///57

///視窗預設大小

58///

formsize.normal or formsize.max

59///

60private formsize defaultformsize =formsize.normal;

61 [description("

視窗預設大小")]

62public

formsize defaultformsize

6365

set6676}

77 }

1

const

int wm_nchittest = 0x0084;2

const

int htleft = 10; //

左邊界3

const

int htright = 11; //

右邊界4

const

int httop = 12; //

上邊界5

const

int httopleft = 13; //

左上角6

const

int httopright = 14; //

右上角7

const

int htbottom = 15; //

下邊界8

const

int htbottomleft = 0x10; //

左下角9

const

int htbottomright = 17; //

右下角

protected

override

void wndproc(ref

message m)

}

1

///2

///最小化按鈕事件

3///

4///

5///

6private

void btnexmin_buttonclick(object

sender, eventargs e)710

11///

12///

最大化按鈕事件

13///

14///

15///

16private

void btnexmax_buttonclick(object

sender, eventargs e)

1720

21///

22///

關閉按鈕事件

23///

24///

25///

26private

void btnexclose_buttonclick(object

sender, eventargs e)

2730

31///

32///

滑鼠按下標題欄

33///

34///

35///

36private

void titlebar_mousedown(object

sender, mouseeventargs e)

3740

41///

42///

滑鼠在移動

43///

44///

45///

46private

void titlebar_mousemove(object

sender, mouseeventargs e)

4752}53

54private

void titlebar_doubleclick(object

sender, eventargs e)

5558

5960

///61

///最大化和正常狀態切換

62///

63private

void

maxnormalswitch()

6471

else

7279

this.invalidate();//

使重繪80}81

Qt 無邊框視窗自定義標題欄

實現了自定義標題欄的最小化,最大化 自適應工作列 關閉,拉伸,拖曳。因為不想引入其他資源,所以按鈕,背景都是系統提供的。效果圖 直接上 用法 include widget.h int main int argc,char argv pragma once include class qtoolbut...

Qt之自定義介面(實現無邊框 可移動)

ui設計是指對軟體的人機互動 操作邏輯 介面美觀的整體設計。好的ui設計不僅是讓軟體變得有個性 有品位,還要讓軟體的操作變得舒適簡單 自由,充分體現軟體的定位和特點。愛美之心人皆有之。其實軟體介面就像工業造型一樣,是產品的重要賣點。乙個產品擁有美觀的介面會給人帶來舒適的視覺享受,拉近人與產品的距離,...

WinForm 建立自定義控制項

雖然vs為我們提供了很多控制項可以使用,但有時候這些控制項仍然不能滿足我們的要求,比如我們要對部分控制項進行一些個性化的定製,例如美化控制項,這時候就需要自己繪製控制項,或是在原有控制項的基礎上進行修改 自定義控制項分為三種 1 組合控制項 compositecontrols 在原有控制項的基礎上根...