تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 8 12345 ... آخرآخر
نمايش نتايج 1 به 10 از 77

نام تاپيک: برنامه نویسی در ویندوز

  1. #1
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض برنامه نویسی در ویندوز

    سلا به همه دوستان عزیز
    من تقریبا c++ رو یاد گرفتم و تازه برنامه نویسی در ویندوز رو شروع کردم. در واقع دارم با API های ویندوز آشنا می شم. طبیعتا در این راه با سوالات زیادی مواجه می شم. می خواستم از شما دوستان عزیز کمک بگیرم تا به جواب سوالاتم برسم.
    ممنون می شم اگه جواب بدید

  2. #2
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

    Hinstance با Hwnd چه فرقی داره؟ هر دوشون رو تو Msdn نوشته نوع Handle هستند.
    Last edited by amsjavan; 10-08-2008 at 09:41.

  3. #3
    اگه نباشه جاش خالی می مونه Ho$∑∫N's Avatar
    تاريخ عضويت
    Oct 2007
    محل سكونت
    یه جهنم دره ای روی کره ی زمین
    پست ها
    235

    پيش فرض

    بهتر نیست به این راهنمای بسیار جامع مراجعه کنی؟ :


    msdn

  4. این کاربر از Ho$∑∫N بخاطر این مطلب مفید تشکر کرده است


  5. #4
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

    پست اولم رو به دلیل واضح بودن سوال ویرایش کردم.
    سوال بعدیم اینه که CALLBACK چه معنایی داره. تو MSDN نوشته define هست به _stdcall اما بیشتر توضیح نداده. این _stdcall چیه؟
    Last edited by amsjavan; 10-08-2008 at 09:48.

  6. #5
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    DWORD برای تعریف مقادیر عددی 32 بیتی استفاده میشه و در MSDN به این شکل تعریف شده
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    LPSTR که مخفف long point string هست یه اشاره گر به آدرس یک رشته هست و در به این شکل تعریف شده
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    HINSTANCE یه هندل برای برنامه هست و در به این شکل تعریف شده
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و موارد استفادشون رو هم بهتره از خود MSDN پیدا کرد.

    شاد باشید

  7. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  8. #6
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

    خیلی ممنون از توضیحاتتون.
    من تو Msdn دیدم که Hbrush به این شکل تعریف شده:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    -حالا می تونم هر جای برنامه به جای HBRUSH، بنویسم HANDLE ؟ یه جایی این کار رو کردم اشکال گرفت

    - یه کلاس ویندوز تعریف کردم و فیلد های اونو که پر کردم تو قسمت hbrBackground اشکال گرفت گفت نمیتونه void * یه HBRUSH * تبدیل کنه در صورتی که جایی که من دیدم بدون تبدیل نوشته بود:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یعنی در واقع باید تابع GetStockObject رو به این صورت بنویسم: (HBRUSH)GetStockObject(BLACK_BRUSH)
    من این رو از رو کتاب خوندم. یعنی اشتباه نوشته بود؟ یا مشکل از جای دیگست؟
    Last edited by amsjavan; 10-08-2008 at 14:34.

  9. #7
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    سعی کنید تا حد ممکن مطالبی که از کتابهای دیگه میخونین با مطالب MSDN هم مطابقت بدین
    وقتی میخوایم برای ویندوز برنامه بنویسیم باید یکسری قواعد و قوانینی که توسط ماکروسافت عرضه شده رو هم رعایت کنیم
    یعنی جایی که لازمه از HBRUSH استفاده بشه همینو استفاده کنیم و جایی که HANDLE باید استفاده ما هم از هندل استفاده کنیم
    پس در درجه اول مرجع اصلی ما MSDN باید باشه نه چیز دیگه،
    اینجوری موقع کامپایل، کامپایلر هم میدونه با چه داده ای سرو کار داره و تا حد ممکن ایرادات هم رفع میشه

    در مورد GetStockObject هم همونطور که خودتون گفتین درسته (HBRUSH) رو قبلش قرار بدین

    شاد باشید

  10. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  11. #8
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    پست اولم رو به دلیل واضح بودن سوال ویرایش کردم.
    سوال بعدیم اینه که CALLBACK چه معنایی داره. تو MSDN نوشته define هست به _stdcall اما بیشتر توضیح نداده. این _stdcall چیه؟
    تو ویندوز چند نوع فراخانی تابع داریم که هر کدوم خصوصیات خاصی دارن، از نظر فرستان آرگومان به تابع، پاک کردن
    stack و ...

    مانند اینا:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    API های ویندوز از stdcall__ برای فراخانی استفاده میکنه، و این خصوصیاتشه :
    1- آرگومانها از راست به چپ به تابع فرستاده میشه
    2- تابع وظیفه پاک کردن stack رو داره
    3- ابتدای تابع "_" قرار میگیره بعد علامت "@" و بعد مقدار بایتی که تو stack لازم داره

    این لینک توضیحات بیشتری داره بد نیست ببینید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شاد باشید

  12. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  13. #9
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

    خیلی ممنون از توضیحات خوبتون

    می خواستم یه cursor که خودم درست کردم برای پنجره بزارم اما هر کاری می کنم نمیشه یعنی وقتی موس رو می برم رو صفحه هیچی نشون نمیده و موس غیب میشه. resource file هم درست کردم. مشکل از کجاست؟
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  14. #10
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    این خط رو

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    به این تغییر بدین

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته بد نیست مثالی که تو این سایت هم هست نگاه کنید کمکتون میکنه:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شاد باشید

  15. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


صفحه 1 از 8 12345 ... آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •