مشاهده نسخه کامل
: تایمر
cpplover
12-01-2008, 16:08
با عرض سلام
من در ویژال یک تایمر به روش زیر ایجاد کردم می خواستم بدانم چطور می شود تایمر را قطع کرد؟
در OnInitDialog() این کد رو می نویسم : (برای زمان یک ثانیه )
SetTimer(1,1000,NULL)
بعد در WM_Timer کد های لازم رو برای اجرا در هر ثانیه می نویسم
ضمنا آیا راه بهتری برای ایجاد تایمر وجود داره ؟
وسوال دیگه اینکه دربرنامه های مبتنی بر کادر تبادلی که توسط ویژال ایجاد می شود تابع OnInitDialog() در فایل cpp وجود دارد. اما زمانی که یک دیالوگ جدید در همین پروژه ایجاد می کنیم این تابع وجود ندارد و حتی در لیست توابعی که با wm شروع می شود نیست
در ویژال سی 6 در قسمت messages این تابع وجود داشت اما در ویژال 2005 من نتونستم این تابع رو برای اضافه کردن پیدا کنم.
ممکنه راهنمایی بدید ؟ ممنون میشم.
دوباره سلام.
فرض کنیم برای فرم جدید شما کلاسی به نام CMyForm ایجاد کردین.
در برگه ClassView روی این کلاس راست کلیک کرده و Properties رو انتخاب کنین :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
از برگه باز شده برای در اختیار داشتن Message ها روی شکل آن کلیک کنین تا لیست پیغام ها به شما
نمایش داده شود :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برای استفاده از توابع Override مثل OnInitDialog روی شکل آن کلیک کنین
در شکل زیر :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برای اضافه کردن یک تابع Override کافیه از لیست توابع اون رو انتخاب و از Combo ی کنار اون اسم
تابع رو اضافه کنین :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اما در مورد تایمر :
برای متوقف کردن یک تایمر از تابع KillTimer استفاده کنین که یک آرگومان داره و اون هم ID تایمر مورد نظر
شماست. برای ایجاد تایمر از روش های ++C میتونین استفاده کنین که در لینک زیر معرفی شدن :
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
روش های دیگه هم وجود داره که مربوط به SDK و API میشن که پیچیده تر هست و ضنما شما باید
با مقدماتی مثل Threading و همزمانی یا synchronixe و ... آشنا باشین.
ولی ساده ترین راه استفاده از همین Event تایمر یعنی WM_TIMER هست.
موفق باشین.
cpplover
12-01-2008, 23:49
از دقت بالای شما در پاسخها تشکر می کنم
فقط یک سوال کوچیک؟
زمانی که برای یک object مثل دکمه یا edit text یک متغیر (از هر نوعی ) تعریف می کنیم اگه نیاز به حذف اون متغیر داشته باشیم در ویژوال 2005 دقیقا باید چکار کنیم ؟ چون در اونجا هیچ گزینه ای برای حذف اون متغیر وجود ندارد .
ممنونم
دوباره سلام
متاسفانه از گونه 2002 به بعد ویزاردی برای حذف وجود نداره.
یا اگه هم وجود داره من تا حالا با اون برخورد نکردم.
اما برای حذف یک متغییر باید به شکل زیر عمل کنین :
1- از فایل h مربوط به کلاس Dialog :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2- از Constructor کلاس Dialog :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته در صورتی که Category یا نوعش Value باشه نه Control
3- از تابع DoDataExchange
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشین.
cpplover
14-01-2008, 20:32
با سلام
فقط در مورد کدی که در سازنده گفته بودید با اینکه متغیر از نوع value بود اما این جور کدی ایجاد نشده بود
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوست من!
شما تنها در فایل h رو جستجو کردین. هر کلاس یک فایل h و یک فایل Cpp داره.
فقط مورد اول که گفتم در فایل h هست ، مثلا MyTestDlg.h
مورد دوم و سوم در فایل Cpp قرار دارن ، مثلا MyTestDlg.Cpp
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.