關於用VB做更漂亮的表單的思考

來源:互聯網
上載者:User
首先申明:以下純屬個人觀點!

近來VB版中有一部分人問關於介面的美化問題.其實作為一個菜鳥.我也無法提供很專業的代碼給大家.想必大家對如下代碼應該很熟悉吧!

以下為引用的內容:
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_NCLBUTTONDOWN = &HA1
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
--------------------------------------------Private Sub Form_Load()
Me.BackColor = &HFF0000
Dim rtn As Long
BorderStyler = 0
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, &HFF0000, 0, LWA_COLORKEY
End Sub

--------------------------------------------

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, 2, 0

End Sub

這是美化表單的時候很好的辦法,比用編程語句描述一個特殊形狀的表單要簡單的多,只要選自己合意的圖片即可!

我們都知道象PICTUREBOX,COMBOX,菜單,等等其實都是表單.由此可以推出我們可以用替換法將其替換.當然這是我的設想了;畢竟我不是高手.

舉個例子:

我想做一個圖形化的按紐.那麼我們可以用IMAGE來摸擬.用IMAGELIST放三張圖片用來表示MOUSE_ON,MOUSE_DOWN,MOUSE_UP.當然如果你要求高一點可以用API來彌補其中的不足,使之更完善.

當然象CHECKBOX,OPTIONS用IMAGE來類比都足足有餘.-------------

只要設一個全域變數為BOOLEAN就行了.它們只要兩張圖片就夠了.自己畫還是引用 就隨你便了.

好了例子也舉完了.總結一下:

我想說的就是其實做介面並不是技術高才能做的.轉個圈其實用一些簡單的方法也可以解決的.

只要大家敢想什麼都會變成現實!
希望我也能拋磚引玉啊,當然前提是老大們能用啊!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.