امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
کلاس CWnd
نویسنده پیام
yeketaz آفلاین
کاربر با تجربه
****

ارسال‌ها: 744
موضوع‌ها: 123
تاریخ عضویت: اسفند ۱۳۸۶

تشکرها : 520
( 1050 تشکر در 294 ارسال )
ارسال: #1
کلاس CWnd
با سلام و خسته نباشید به شما دوستان عزیز

من یه سوال داشتم :

این کلاس CWnd که یک سری توابع توشه ماله چیه که اکثرا برای کار با پنجره ها و کنترل ها و گرافیک می باشد

و بعضی از این توابع مثل FindWindow که توی VB مقداری از نوع Long رو بر می گردونه

من یه بار یه متغیر از نوع long برای این تابع تعریف کردم ولی کامپایلر خطایی رو اعلام کرد بر مبنای

ناتوانی در تبدیل CWnd به Long

ما که دیگه توی ایران ویج پیر شدیم 040 کم کم باید جامون رو بدیم به جوونا 028
۰۶-مرداد-۱۳۸۷, ۱۲:۰۰:۵۰
وب سایت ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #2
RE: کلاس CWnd
نقل قول: این کلاس CWnd که یک سری توابع توشه ماله چیه که اکثرا برای کار با پنجره ها و کنترل ها و گرافیک می باشد

این کلاس پنجره برنامه رو در ویندوز نمایندگی میکنه یعنی اینکه هر پنجره ای که در برنامه های MFC وجود دارند از این کلاس مشتق شدن . یک سری وظایف دیگه هم داره مثلا اگر شما توی پنجره برنامه Menu یا Tool Bar داشته باشید این کلاس بصورت پیشفرض وظیفه داره که پیغام های مربوطه رو هندل کنه .

نقل قول: بعضی از این توابع مثل FindWindow که توی VB مقداری از نوع Long رو بر می گردونه . من یه بار یه متغیر از نوع long برای این تابع تعریف کردم ولی کامپایلر خطایی رو اعلام کرد بر مبنای ناتوانی در تبدیل CWnd به Long

من همیشه به دوستان اکیدا توصیه میکنم قبل از کار با MFC اول باید مفاهیم ++C رو یادبگیرند ولی هنوز ظاهرا کسی این توصیه ما رو جدی نگرفته . خب یکی از علت هایی که من میگم باید ابتدا زبان ++C رو خوب یادبگیرید همینه . حالا این مشکل از کجا آب میخوره ؟؟؟ مشکل از اینجاست که تابع FindWindow هم یک تابع API هست هم یکی از توابع کلاس CWnd . در همچین حالتی اگر شما FindWindow رو همینجوری صدا بزنید کامپایلر بدبخت که فکر شما رو نمیتونه بخونه پس حساب میکنه منظور شما تابع موجود در همون کلاس هست . تابع FindWindow در کلاس CWnd کاملا با اون تابع API فرق میکنه و مقدار بازگشتی اون اشاره گری هست به شی CWnd . لینک زیر رو ببین تا تعریف تابع داخل کلاس رو ببینی :
http://msdn.microsoft.com/en-us/library/...S.80).aspx

حالا چطور باید این مشکل رو حل کنیم ... یعنی چطور میتونیم در اینچنین حالتی تابع API رو صدا کنیم ، خب اینجا میشه همون دانستن زبان ++C !! شما باید از Resolution Operator یا :: پشت اسم تابع استفاده کنید . این به کامپایلر میگه که تابعی که من دنبالش هستم خارج از کلاس تعریف شده ( در اینجا Global هست یعنی همون تابع API ) اینطوری دیگه کامپایلر گیج نمیشه . مثلا اینطوری :

کد:
result = ::FindWindow("Type32_Main_Window", NULL);

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
(آخرین ویرایش در این ارسال: ۰۶-مرداد-۱۳۸۷, ۱۳:۳۰:۴۶، توسط Mamad2003.)
۰۶-مرداد-۱۳۸۷, ۱۳:۲۷:۴۱
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C salehjg 3 3,742 ۲۴-اردیبهشت-۱۳۹۵, ۱۶:۰۸:۱۷
آخرین ارسال: salehjg
  مقدار دهی textbox در کلاس c# aleas 0 2,627 ۲۸-اسفند-۱۳۹۱, ۱۸:۰۲:۵۱
آخرین ارسال: aleas
  کلاس شی و ارایه پویا fgcosoft 0 2,218 ۰۷-دى-۱۳۹۱, ۲۱:۵۶:۴۲
آخرین ارسال: fgcosoft
Question کلاس DateTime در C++ javaweb 0 2,457 ۱۷-آذر-۱۳۹۱, ۱۱:۱۳:۴۵
آخرین ارسال: javaweb
  کتابخانه با کلاس ها m.saba 1 3,526 ۰۷-اردیبهشت-۱۳۹۰, ۲۳:۳۵:۵۳
آخرین ارسال: mhd.group
  تابع مخرب کلاس mojtabamalaekeh 7 11,106 ۱۹-اردیبهشت-۱۳۸۹, ۱۹:۳۰:۵۳
آخرین ارسال: dreamvbfox
Rolleyes مشل با یه کلاس مشتق شده mig 2 3,464 ۱۷-فروردین-۱۳۸۹, ۱۹:۰۴:۱۳
آخرین ارسال: محمد حسینی
  کمک در مورد کلاس ماتریس Nariman619 4 6,219 ۰۷-آبان-۱۳۸۸, ۱۰:۱۱:۳۴
آخرین ارسال: mehrdad372
  کلاس اعداد مختلط وبارگزاری اضافه اپراتورهای جمع وتفريق adameh_bahal 9 17,822 ۱۵-خرداد-۱۳۸۸, ۲۰:۳۷:۴۴
آخرین ارسال: محمد حسینی
  کلاس ماتريس adameh_bahal 15 15,103 ۱۲-خرداد-۱۳۸۸, ۲۳:۲۶:۴۲
آخرین ارسال: adameh_bahal

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS