關於用 做更漂亮的窗體的思考

2022-07-30 02:21:14 字數 2349 閱讀 9554

首先申明:以下純屬個人觀點!

近來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就行了.它們只要兩張就夠了.自己畫還是引用 就隨你便了.

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

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

只要大家敢想什麼都會變成現實!

希望我也能拋磚引玉啊,當然前提是老大們能用啊!

顯示選擇框的更漂亮的方式

a prettier way to display select boxes if you re selecting objects if you re using a v for on objects.如果在物件上使用v for,則在選擇物件時顯示選擇框的更漂亮的方式。no special dep...

MDI窗體 的再度思考

早在敲學生管理系統的時候,青山師哥就跟我說過 mdi 窗體 跟 子窗體的事情,當時只是簡單的查詢 小小的用了一下,沒有太在意 當再次面對著這個東西更深層的時候才想起師哥那句話 好好研究一下這個東西吧,以後會經常用的。這下記住了,學長的話一定要好好的聽 好好的實踐.mdi多窗體程式由mdi主窗體與md...

讓你的軟體介面更漂亮 三

讓你的軟體介面更漂亮 三 朱一松 實現令人滿意的風格統一的軟體介面確實很難,象提到的messagebox filedialog fontdialog 目錄選擇對話方塊等mfc內部甚至系統dll內的對話方塊,要想讓它變臉可不容易。有人說hook技術可以,hook技術確實可以,hook可以說是無孔不入,...