第18部分(第2/5 頁)
;
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
本章未完,點選下一頁繼續。