會員書架
首頁 > 遊戲競技 > 電腦十萬個為什麼 > 第18部分

第18部分(第2/5 頁)

目錄
最新遊戲競技小說: 到底是不是三國上古卷軸:龍裔記事本【五夏】摯友是你們小情侶的藉口老公喪盡天良,夫郎瘋癲入場救命!宿主又被主神拐跑了!斬神:CP林七夜?可我是男妹妹救世群英傳之大有可為全職之槍王榮耀進化遊戲Zero超高校學府破碎時空之瑪法大陸從搭上NBA末班車開始無限白帝我的召喚師生涯為何這般LOL:大司馬首徒,治癒全世界如懿傳如意歡心我的世界:無限紀元三世沉淪之傾世半妖有錢人可能是看上我了成神從地縛靈開始

2、使用 Image 屬性儲存的用畫圖命令(如 Line,Cirele,Pset 或 Print)畫出來的圖形總是以 BMP 檔案格式儲存。但在程式設計時如果使用窗體或圖片框的 Picture 屬性載入或在程式執行時透過 LoadPicture 函式載入的圖象,使用 SavePicture 語句儲存時,儲存的檔案格式同其載入前的檔案格式一樣(如 ICO 格式等)。

102;Q:在 Visual Basic 中如何拖動窗體或控制元件?

A:現在的許多 windows 下的應用程式,都採用了圖形化的介面,但是在這樣的介面下就不能使用 Windows 原來的標題條了,否則會影響介面的美觀。那麼在沒有標題條的情況下如何用滑鼠拖動窗體或者其它的控制元件呢?

其實,採用 API 函式呼叫很容易實現,下面我們以拖動窗體 Form1 為例來具體講一下實現方法:

1、新建立一個專案,名稱為 test。vbp;

2、填加一個模組,名稱為 test。bas,並且在宣告部分加入以下程式碼:

Declare Function ReleaseCapture Lib 〃user32〃 () As Long

Declare Function SendMessage Lib 〃user32〃 Alias 〃SendMessageA〃 (ByVal hwnd As Long; ByVal wMsg As Long; ByVal wParam As Long; lParam As Any) As Long

Public Const WM_SYSMAND = &H112

Public Const SC_MOVE = &HF012

其中 ReleaseCapture 函式是用來釋放滑鼠捕獲的,SendMessage 函式是一個在 Windows API 中非常重要的函式,在這裡的作用是用來向 Windows 傳送移動窗體的訊息。WM_SYSMAND 是向 Windows 傳送訊息的常量。SC_MOVE 是控制移動窗體的常量。請注意:這裡 SC_MOVE 的賦值是 &HF012,表示滑鼠物件。

3、在窗體的 MouseDown 過程中加入以下程式碼:

Private Sub Form_MouseDown(Button As Integer; Shift As Integer; X As Single; Y As Single)

ReleaseCapture

SendMessage Me。hwnd; WM_SYSMAND; SC_MOVE; 0

End Sub

其中 ReleaseCapture 函式用來釋放滑鼠捕獲,SendMessage 函式向 Windows 傳送移動窗體的訊息。

4、儲存並執行程式,按下滑鼠,你會發現窗體會隨著滑鼠的移動而移動。

以上講述瞭如何在 VB 中用滑鼠拖動窗體,其實,控制元件的拖動的原理是一樣的。例如以下程式碼可以實現圖片框的拖動:

ReleaseCapture

SendMessage Picture1。hwnd; WM_SYSMAND; SC_MOVE; 0

(注:以上程式在 Windows98、VB5。0/6。0 下除錯透過。在 NT4。0、VB6。0 下不能執行。)

103;Q:用 Delphi5。0 程式設計實現 Windows 桌面的隱藏和顯示

A:實現原理是呼叫 Windows 的 API 函式。程式程式碼如下:

procedure TForm1。Button1Click(Sender: TObject);

var hDesktop:Thand

本章未完,點選下一頁繼續。

目錄
裊裊炊煙闖入夢境去遨遊含笑關山月珞瓔繽紛月河雪 by 玉隱[皇后傾國之暗殺天下 不離 著 ]
返回頂部