ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
می توان از یک Bitmap برای گرفتن یک تصویر استفاده و تصویر گرفته شده را در حافظه ذخیره نموده ، آنرا در یک محل دیگر در پنجره اپلیکیشن یا سایر پنجره ها نمایش داد.
در بعضی موارد ، ممکن است بخواهید اپلیکیشن تصاویر را گرفته و موقت ذخیره کند. برای مثال زمانیکه به یک تصویر ایجاد شده در برنامه دراوینگ مقیاس می دهید یا زوم می کنید ، برنامه یا اپلیکیشن باید موقتاً یک ویوی نرمال از تصویر ذخیره کند و نمای زوم شده را نمایش دهد. بعد ، زمانیکه کاربر ویوی نرمال را نتخاب می کند ، برنامه می بایست تصویر زوم شده را با یک کپی از ویوی نرمال جایگزین کرده تا آنرا موقتاً ذخیره نماید.
برای ذخیره موقت یک تصویر ، برنامه شما باید CreateCompatibleDC را برای ایجاد یک DC سازگار با DC پنجره جاری یا فعال فراخوانی کند. بعد از ایجاد یک DC سازگار ، می توان یک bitmap با ابعاد متناسب با فراخوانی تابع CreateCompatibleBitmap ایجاد کرد و سپس آنرا به داخل DC با فراخوانی تابع SelectObject انتخاب کرد.
بعد از ایجاد DC سازگار و bitmap متناسبی که داخل آن انتخاب شده ، می توان تصویر را گرفت یا ثبت کرد . تابع BitBlt تصاویر را می گیرد . این تابع انتقال بلوک بیت را انجام می دهد ، یعنی داده ها از یک Bitmap منبع را در یک Bitmap مقصد کپی می کند. وقتی BitBlt انتقال را کامل کرد، تصویر در حافظه ذخیره می شود . برای نمایش مجدد تصویر برای باز دوم این تابع را فراخوانی کنید و DC سازگار را بعنوان منبع DC و یک پنجره ( یا چاپگر ) را بعنوان DC هدف مشخص کنید.
Device Context :
یک ساختار داده ویندوز است که حاوی اطلاعاتی در مورد ویژگیهای طراحی یک دستگاه مانند نمایشگر یا چاپگر است . همه فراخوانی طراحی از طریق یک شئ DC انجام می شوند ، که API های ویندوز را برای ترسیم خطوط ، اشکال و متن محصور می کند . DC های دستگاه امکان طراحی مستقل از دستگاه در ویندوز را فراهم می کند . DC های دستگاه را می توان برای کشیدن به صفحه ، چاپگر یا MetaFile استفاده کرد.
memDC = CreateCompatibleDC ( hDC );
memBM = CreateCompatibleBitmap ( hDC, nWidth, nHeight );
SelectObject ( memDC, memBM );
تابع EnumDisplayDevices این امکان را می دهد که اطلاعاتی در مورد دستگاه های نمایشگر به دست آورید.
ساختار DISPLAY_DEVICE :
const cchdevicename as long = 32
const cchformname as long = 32
Type display_device
cb as long
devicename as string * cchdevicename
devicestring as string * 128
stateflags as long
deviceid as string * 128
devicekey as string * 128
End Type
Dim indAdapter As Long
indDisplay As Long
Dim ddAdapters As DISPLAY_DEVICE
ddDisplays As DISPLAY_DEVICE
ddAdapters.cb = Len(ddAdapters)
ddDisplays.cb = Len(ddDisplays)
indAdapter = 0
Do Until EnumDisplayDevices(vbNullString, indAdapter, ddAdapters, 0) = 0
تابع EnumDisplaySettings اطلاعات مربوط به یکی از حالت های گرافیکی یک دستگاه نمایشگر را بازیابی می کند. برای بازیابی اطلاعات برای همه حالت های گرافیکی یک دستگاه نمایشگر ، یک سری فراخوانی با این عملکرد برقرار کنید.
یادداشت : برنامه هایی که برای هدف ویندوز ۸ و نسخه های جدیدتر طراحی می کنید ، دیگر نمی توانند پرس و جو کنند یا حالت های نمایش کمتر از ۳۲ بیت در هر پیکسل را تنظیم کنند.
Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSize As Integer
dmYResolution As Integer
dmPelsWidth As Long
dmPelsHeight As Long
End Type
Dim dmode As DEVMODE
dmode.dmSize = Len(dmode)
EnumDisplaySettings DeviceName, ENUM_CURRENT_SETTINGS, dmode
MsgBox "Width: " & dmode.dmPelsWidth
MsgBox "Height: " & dmode.dmPelsHeight