ايران ويج

نسخه‌ی کامل: ای پی آی برای برش فرم به شکل عکس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
دو تا سؤال:
سؤال اول: یک Bitmap به عنوان عکس زمینه فرم قرار دادم و میخوام با استفاده از توابع API یک رنگ خاص را Transparent کنم. لطفا راهنمایی کنید.
یک OCX پیدا کردم ولی به چیزی غیر از سورس اطمینان ندارم.
یک سورس هم پیدا کردم که چون تمام عکس رو پیمایش میکرد، سرعتش پایین بود.
چیزی که من میخوام اینه: قبل از اجرا
[تصویر:  p0s4m.jpg]

بعد از اجرا
[تصویر:  24n03ft.jpg]

من دیدم که از BeginPath و EndPath برای برش فرم استفاده میشه و بینشون هم از TextOut
آیا تابعی برای رسم عکس هست که مثل TextOut عمل کنه و بین BeginPath و EndPath فراخوانیش کنیم؟
TransparentBlt که جواب نمیده.

سؤال دوم: اصلا از کجا بفهمیم که کدوم توابع بین BeginPath و EndPath عمل می کنند یا نه؟
SetLayeredWindowAttributes

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 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

Dim Retval As Long

Private Sub Command1_Click()
Retval = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Retval = Retval Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Retval
SetLayeredWindowAttributes Me.hWnd, RGB(255, 0, 0), 0, LWA_COLORKEY
End Sub
حرف نداشت علی آقا Clap
حتی قسمت هایی از Titlebar رو هم که شامل رنگ تعیین شده بودند پاک کرد.
خیلی حال کردم. سپسگزارم.
بایستی از region و توابعی مثل CombineRgn و FillRgn وCreateEllipticRgn استفاده کنین
lord_viper نوشته است:بایستی از region و توابعی مثل CombineRgn و FillRgn وCreateEllipticRgn استفاده کنین
نمونه کدی که از CombineRgn استفاده کرده بود تمام پیکسل های تصویر رو پیمایش می کرد و سرعتش پایین بود. من هم که خودم بلد نیستم از CombineRgn استفاده کنم.
SetLayeredWindowAttributes کارمو راه انداخت ولی بدم نمیاد کار با این سه تابع رو هم یاد بگیرم.