史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2009-07-27, 12:05 PM   #2 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時級別:99 | 在線時長:10211小時 | 升級還需:189小時
註冊日期: 2002-12-07
文章: 13533
精華: 0
現金: 26957 金幣
資產: 3024887 金幣
預設

可以使用兩個 PictureBox 加 圖形處理 API函數
(假設一個是目的 TPictureBox
一個是用來載入用的SPictureBox,所以 SPictureBox之 .Visible可以設為隱藏 =False)

一般常用的圖形處理 API函數有
BitBlt (宣告如下)
語法:
Public Declare Function BitBlt Lib "gdi32" ( _
    ByVal hDestDC As Long, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal hSrcDC As Long, _
    ByVal xSrc As Long, _
    ByVal ySrc As Long, _
    ByVal dwRop As Long) As Long
及 StretchBlt
語法:
Public Declare Function StretchBlt Lib "gdi32" ( _
    ByVal hDestDC As Long, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal hSrcDC As Long, _
    ByVal xSrc As Long, _
    ByVal ySrc As Long, _
    ByVal nSrcWidth As Long, _
    ByVal nSrcHeight As Long, _
    ByVal dwRop As Long) As Long
個人通常會選擇使用 StretchBlt ※A (因為可以縮放圖)
語法:
StretchBlt TPictureBox.hDC, X, Y, W, H, SPictureBox.hDC, 0, 0, SPictureBox.ScaleWidth, SPictureBox.ScaleHeight, SRCCOPY
而這兩個函數之最後面一個參數
常用的如下
語法:
Public Const SRCCOPY = &HCC0020     '(DWORD) dest = source
Public Const SRCAND = &H8800C6      '(DWORD) dest = source AND dest
Public Const SRCERASE = &H440328    '(DWORD) dest = source AND (NOT dest )
Public Const SRCINVERT = &H660046   '(DWORD) dest = source XOR dest
Public Const SRCPAINT = &HEE0086    '(DWORD) dest = source OR dest
你的例子只要使用 SRCCOPY即可

至於如何實現你的例子
主要在於控制 X及Y座標 (這裡請自己想吧)
提示1:
X=X+SPictureBox.ScaleWidth
Y=Y+SPictureBox.ScaleHeight
使用兩層For迴圈

提示2:
'先載入圖檔
SPictureBox.Picture=LoadPicture(FileName)
'這裡加入控制 X及Y座標,最後再使用 ※A式 將來源圖(SPictureBox)複製到 目的(TPictureBox)上

提示3:
其他相關屬性
SPictureBox.AutoSize = True
SPictureBox.AutoRedraw = True
SPictureBox.ScaleMode = 3 '像素
mini 目前離線  
送花文章: 2061, 收花文章: 8087 篇, 收花: 26943 次
回覆時引用此帖
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
如何開啟自動排列 west8988 軟體應用問題討論區 3 2003-07-25 12:09 PM
我的文件中自動排列被隱藏 wenhan 軟體應用問題討論區 1 2003-01-16 11:52 PM


所有時間均為台北時間。現在的時間是 12:49 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2026, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1