۲۸-اردیبهشت-۱۳۸۶, ۰۰:۱۴:۰۸
۲۸-اردیبهشت-۱۳۸۶, ۰۲:۴۳:۳۳
دوست من سلام
شرط استفاده کردن از کنترل تایمر لزوم وجود پنجره هست . در واقع از نظر تکنیکی ویندوز در زمان خواسته شده یا همون interval ، یک پیغام WM_TIMER رو به صف پیغام پنجره برنامه شما میفرسته که برنامه های ویژوال بیسیک اونها رو با کنترل تایمر دریافت و بررسی می کنند ! پس اگر پروژه شما پنجره نداشته باشه استفاده کردن از کنترل تایمر امکان پذیر نیست . در این حالت ایجاد تایمر فقط با کمک Win32 API ممکن هست یا نوع خاصی از تایمر با نام Multimedia Timer که برای کارهای بسیار بسیار دقیق بکار میره و کاربردش در اینجا توصیه نمیشه .
این دو روش به جای ارسال پیغام به پنجره برنامه شما ، از توابع CALLBACK استفاده میشه .
توابع CALLBACK توابعی هستند که شما اونو صدا نمیزنید بلکه یک عامل خارجی مثل سیستم عامل اون رو توی برنامه شما صدا میزنه !
یعنی ویندوز یک تابع خاص رو مرتب و در زمان های معین شده توی برنامه شما صدا میزنه . شما در اون تابع کد خودت رو مینویسی و آدرسش اون تابع رو به ویندوز میدی که هر بار صداش بزنه و اینطوره که یک تایمر بوجود میاد !
مثال ساده ای که از توابع API و توابع CALLBACK برای ساخت تایمر معمولی استفاده میکنه رو توی لینک زیر ببینید :
http://www.planet-source-code.com/vb/scr...7&lngWId=1
شرط استفاده کردن از کنترل تایمر لزوم وجود پنجره هست . در واقع از نظر تکنیکی ویندوز در زمان خواسته شده یا همون interval ، یک پیغام WM_TIMER رو به صف پیغام پنجره برنامه شما میفرسته که برنامه های ویژوال بیسیک اونها رو با کنترل تایمر دریافت و بررسی می کنند ! پس اگر پروژه شما پنجره نداشته باشه استفاده کردن از کنترل تایمر امکان پذیر نیست . در این حالت ایجاد تایمر فقط با کمک Win32 API ممکن هست یا نوع خاصی از تایمر با نام Multimedia Timer که برای کارهای بسیار بسیار دقیق بکار میره و کاربردش در اینجا توصیه نمیشه .
این دو روش به جای ارسال پیغام به پنجره برنامه شما ، از توابع CALLBACK استفاده میشه .
توابع CALLBACK توابعی هستند که شما اونو صدا نمیزنید بلکه یک عامل خارجی مثل سیستم عامل اون رو توی برنامه شما صدا میزنه !
یعنی ویندوز یک تابع خاص رو مرتب و در زمان های معین شده توی برنامه شما صدا میزنه . شما در اون تابع کد خودت رو مینویسی و آدرسش اون تابع رو به ویندوز میدی که هر بار صداش بزنه و اینطوره که یک تایمر بوجود میاد !
مثال ساده ای که از توابع API و توابع CALLBACK برای ساخت تایمر معمولی استفاده میکنه رو توی لینک زیر ببینید :
http://www.planet-source-code.com/vb/scr...7&lngWId=1