View Full Version : سوال: عکس گرفتن از یک پنچره ای که hWnd آن را داریم.
Hamedm
سه شنبه 20 بهمن 1383, 12:38 عصر
سلام
راهی برای عکس گرفتن از یک پنجره بخصوص که hWnd اونو داریم و فرستادن عکس به Picture سراغ دارید.
من خودم برای این کار بوسیله توابع API فشار دادن دکمه PrintScreen و Alt رو شبیه سازی کردن. اما این کار پنجره هایی که توی Screen است رو عکس میگیره. من میخواهم پنجره هایی راکه دیده نمیشوند و نیز پنجره هایی را که بزرگتر از Screen هستند را نیز بطور کامل توی Picture بفرسته.
لطفا منو راهنمایی کنید. کارم خیلی ضروریه
موفق باشید و پرتوان
حامد مصافی
سه شنبه 20 بهمن 1383, 13:32 عصر
این API بک تصویر از یک کنترل را در یک کنترل گرافیکی قرار می دهد
Private 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
1 - hDestDC : هندل نپجره ای که باید تصویر از آن کپی شود
2 - X : فاصله تصویر از سمت چپ والد
3 - Y : فاصله تصویر از بالای والد
4 - nWidth : عرض تصویر
5 - nHeight : طول تصویر
6 - hSrcDC : هندل پنجره مقصد
7 - XSrc : طول نقطه ای که باید تصویر برداری آغاز شود
8 - YSrc : عرض نقطه ای که باید تصویر برداری آغاز شود
9 - dwRop : نحوه کپی تصویر ( ثابت های زیر )
Private Const SRCAND = &H8800C6
Private Const SRCCOPY = &HCC0020
Private Const SRCERASE = &H440328
Private Const SRCINVERT = &H660046
Private Const SRCPAINT = &HEE0086
در ضمن شما باید hdc یک پنجره رو داشته باشید نه hwnd اون رو! برای این منظور از این API استفاده کنید
Private Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
Hamedm
سه شنبه 20 بهمن 1383, 13:46 عصر
در ضمن شما باید hdc یک پنجره رو داشته باشید نه hwnd اون رو!
درست میگی اشتباه گفتم. :oops:
Hamedm
سه شنبه 20 بهمن 1383, 14:11 عصر
BlackDal از راهنماییت ممنون :flower: .
این تابع رو تاحالا ندیده بودم. اگر میتونی برای همین کار یک مثال از این تابع بزن.
موفق باشید و پرتوان
حامد مصافی
سه شنبه 20 بهمن 1383, 23:36 عصر
BlackDal از راهنماییت ممنون گل .
این تابع رو تاحالا ندیده بودم. اگر میتونی برای همین کار یک مثال از این تابع بزن.
موفق باشید و پرتوان
سلام
خواهش می کنم
یه مثال نوشتم و ضمیمه کردم ، امیدوارم کارت راه بیفته
Hamedm
چهارشنبه 21 بهمن 1383, 07:30 صبح
یه مثال نوشتم و ضمیمه کردم ، امیدوارم کارت راه بیفته
:flower:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.