PDA

View Full Version : Windows message چیست ؟



Mehrdad Tehrani
جمعه 01 تیر 1386, 12:21 عصر
سلام دوستان

- من توی بعضی از پروژها و توی همین سایت مسائلی درباره پیغام هایی که ویندوز به برنامه می فرسته می بینم ، این یعنی چی ؟ کجا ازش استفاده میشه ؟ میشه کنترلش کرد ؟


لطفا کامل توضیح بدید ممنون میشم :چشمک:

CodeMasterX
جمعه 01 تیر 1386, 12:37 عصر
من تو بخش مقالات وی بی یه تاپیک با همین اسم باز کردم که یکی از کاربران هم بهش جواب مختصر و مفیدی دادن.لطف کنید یه جستجو قبل از ایجاد تاپیک بکنید.

- بله با توابع Win32 API فابل دسترسی و کنترل هستند.

mehdi.mousavi
جمعه 01 تیر 1386, 12:59 عصر
سلام دوستان

- من توی بعضی از پروژها و توی همین سایت مسائلی درباره پیغام هایی که ویندوز به برنامه می فرسته می بینم ، این یعنی چی ؟ کجا ازش استفاده میشه ؟ میشه کنترلش کرد ؟


لطفا کامل توضیح بدید ممنون میشم :چشمک:

سلام.
برای پاسخ به این سوال، باید به سوال دیگه ای پاسخ داده بشه و اون سوال اینه: ویندوز چطوری کار می کنه؟ جواب به این سوال رو Peter Norton در کتاب Windows 3.1 Programming و Charles Petzold (پدر ویندوز) 19 سال پیش در پر فروش ترین کتاب خودش یعنی Programming Windows (http://www.amazon.com/Programming-Windows-Fifth-Charles-Petzold/dp/157231995X/ref=pd_bbs_sr_1/102-3976496-5965723?ie=UTF8&s=books&qid=1182506265&sr=1-1)داد. برای همین توصیه می کنم یکی از این دو کتاب رو حتما مطالعه کنید اگر میخواهید تو کارتون موفق باشید.

اما یه توضیح مختصر: هر کاری (تکرار میکنم، هر کاری) که شما تو ویندوز می کنید (مثل فشار دادن یکی از کلیدهای صفحه کلید) یا تغییر دادن سایز یه پنجره یا حتی بستن یه پنجره، یک Message تولید میشه. Message چیه؟ یه کد که نشون میده شما فلان کلید رو زدید، پنجره رو Resize کردید و یا بستید.... این Message ها در صفی که بهش Message Pump یا Mesage Queue میگن قرار میگیره. هر Application ای در ویندوز دارای حداقل یک Message Pump هست. کار اصلی هر Application ای (در ویندور) بررسی مرتب این صف هست. پیام اول رو از صف در میاره و اونرو Dispatch میکنه. یعنی چی؟ یعنی اینکه دست ماژول مورد نیاز میرسونه و اون ماژول باعث فراخوانی OnKeyDown در برنامه شما میشه! البته بعد از گذشتن از چندین مرحله...). به این ترتیب شما براحتی در تابع OnKeyDown کد مورد نظر خودتون رو مینویسید.

سپس Message Loop (همون حلقه ای که دونه دونه پیامها رو از صف در میاره و Disptach میکنه) میره سراغ پیام بعدی که مثلا Resize کردن بوده. بسته به نوع پیام، اطلاعات اضافی ای هم در مورد اون پیام ممکنه نگهداری بشه. مثلا در این حالت، مختصات جدید ویندو رو صفحه همراه پیام دخیره در صف قرار داده میشه و ....

ابزاری بنام Spy همراه Visual Studio هستش که کلیه پیامهای ارسال شده به یک ویندو رو (بعنوان مثال) نمایش میده....

کلام آخر: حتما کتاب Petzold رو بخونید.

Mehrdad Tehrani
جمعه 01 تیر 1386, 17:24 عصر
مهدی جان یک دنیا ممنون ، خیلی کامل بود

senator_aka
جمعه 01 تیر 1386, 23:41 عصر
.


کلام آخر: حتما کتاب Petzold رو بخونید.


سلام دوست عزیز.

اطلاعات شما بسیار خوب و جالب بود

میشه آن کتابهایی که گفته بودی را بطور کامل معرفی کنی ؟؟
اینکه مال چه انتشاراتی هستند و از کجا میشه پیداشون کرد و قیمت که خیلی مهم هست ؟؟ :چشمک:

mehdi.mousavi
شنبه 02 تیر 1386, 10:27 صبح
سلام دوست عزیز.

اطلاعات شما بسیار خوب و جالب بود

میشه آن کتابهایی که گفته بودی را بطور کامل معرفی کنی ؟؟
اینکه مال چه انتشاراتی هستند و از کجا میشه پیداشون کرد و قیمت که خیلی مهم هست ؟؟ :چشمک:

سلام.
من لینک به کتاب رو در Amazon گداشته بودم، اما فکر میکنم تو تهران میتونید از انتشارات غزال تهییه کنید: http://www.gzle.com اگر اینا هم نداشتن، باید به یکی از شعب شهر کتاب مراجعه کنید، سفارش بدید تا ظرف یک ماه از خارج وارد کنن. قیمتش رو هم قیمت روی جلد میگیرن ازتون + هزینه حمل و نقل.

البته من الان دقت کردم متوجه شدم که این انجمن متعلق به VB هستش. لطفا اینو در نظر داشته باشید که کتابهایی که اسم بردم هر دو به زبان برنامه نویسی C توضیح داده شدن و هیچگونه ارتباطی با VB ندارن.