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

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




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 13

نام تاپيک: balloon

  1. #1
    داره خودمونی میشه cpplover's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    esfarayen
    پست ها
    127

    14 balloon

    با عرض سلام خدمت به اعزای این تالار گفتگو :
    کسی هست که بتونه به این سوال پاسخ بده؟ ممنون میشم اگه جواب بدید
    ایجاد بالون (روی ایکن try )
    visual c ++
    ممنون میشم اگه کسی بتونه کمک کنه
    با تشکر

  2. #2
    حـــــرفـه ای
    تاريخ عضويت
    Aug 2006
    پست ها
    793

    پيش فرض

    سلام.
    دوست عزیز از ایجاد چند %Dice:1Man:"ssdp:discover"MX:3D8

  3. #3
    داره خودمونی میشه cpplover's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    esfarayen
    پست ها
    127

    14 سوال

    سلام دوست گرامی
    خسته نباشید
    متاسفانه برنامه واسه من سرتاسر از eror بود
    اولا m_nid دقیقا چیه؟ احتمالا باید توسط یک struct تعریف بشه ؟ مگه نه ؟
    واون struct چیه ؟
    من فقط حدس زدم که شاید نیاز به struct ، NOTIFYICONDATAباشه اما اینطور نبود
    ضمنا اگه ممکنه در مورد برنامه های دیالوگ بگین کد باید کجا کپی شه ؟
    بعد هم در این برنامه ها میشه لطف کنید بگید این کد های بزرگ رو
    چطور میشه یاد گرفت ؟ مثلا علامت ::=
    و یا _T یعنی چی ؟ ممنون میشم .
    خطاها :
    'm_nid' : undeclared identifier
    error C2228: left of '.cbSize' must have class/struct/union type
    error C2228: left of '.uFlags' must have class/struct/union type

    و خطاهای مشابه
    ضمنا منظوذتون از %Dice:1Man:"ssdp:discover"MX:3D8 چی بود؟
    با تشکر

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

    پيش فرض

    آخر منو میخوایین ایجاد کنین یا بالون ؟ (منظورتون از بالون مثل اینی هست که برای Windows Update میاد دیگه؟
    (مثلا برای نشون دادن پیغام))
    -
    شاید اگه توی همون تاپیک ادامه میدادیم بهتر بود چون دوباره باید ارجاع بشه به اون Icon ی که درست کردیم...
    -
    پ.ن : الان تاپیک های دیگه رو دیدم چرا چند تا تاپیک زدین؟
    پیشنهاد میکنم متن تاپیک Balloon And Contex Menu رو که کامل تره کپی کنین همین جا و ادمین محترم هم اون اضافی ها رو حذف کنن.
    -
    چیزی که شما توی اون تاپیک نوشته بودین و روشی که گفته بودین مربوط به MFC یا پروژه های قبلی ++Visual C نمیشه مربوط به پروژه های Windows Form هستن که شما میتونی توی ++C هم مثل VB و #C کل محیط برنامه رو Design کنی (اسم پیش فرض پنجره Form هست) که این نوع پروژه رو که با ++C بتونی اینطوری برنامه بنویسی توی VS2005 دیدم که توی این نوع پروژه ها شما مثل #C یا VB.NET از تلنولوژی دات نت توی برنامه ی ++C استفاده میکنی...
    اما ظاهرا که شما میخوای برنامه ی MFC بنویسی پس با این روش کاری نداری.
    برای نشون دادن منوی توی MFC میتونی اون منو رو اول طرای کنین(توی قسمت Resource ها فایل Resource برنامه رو انتخاب کنین و بعد از راست کلیک Add Resource رو بزنین) و بعد از طراحی منو اون رو Load کنین و نشون بدین.
    بعد از طراحی یک عضو برای کلاس Dialog توی بگیرین. این کار شی کار لود و نشون دادن رو انجام میده :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    لود کردن رو مثلا توی پروژه های Dialog Based میتونین در OnInitDialog انجام بدین:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ضمن اینکه IDR_SYSTRAYMENU آیدی منویی هست که طراحی کردین.
    خوب حالا شما 2 کار باید بکنین.یکی اینکه وقتی روی آیکن کلیک میشه منو رو نشون بده یکی هم اینکه وقتی یکی از آیتم های منو انتخاب شد کاری که میخواهین رو انجام بدین.
    طیق چیزهایی که توی تاپیک قبلی برای کار با SysTrayIcon گفتم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با دادن this به عنوان پارامتر آخر TrackPopUpMenu خود کلاس مسئول عکس العمل مناسب در مقابل کلیک شدن منو ها هست و پیغام های کلیک شدن بهش ارسال میشه.
    تقریبا باید مثل کاری که برای SysTrayIcon انجام دادم انجام بدیم.
    یک متد برای کلاس دیالوگمون برای گرفتن پیغام مربوط به کلیک شدن آیتم اول منو تعریف میکنیم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و بعد توی فایل cpp دیالوگ توی قسمت MESSAGE_MAP کد لازم رو برای فراخوانی این متد هنگام دریافت پیغام مینویسیم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    که اینجا ID_FIRST_ITEM آیدی آیتم اول منو هست که موقع طراحی منو بهش دادیم.
    بعد هم متد رو پیاده سازی میکنیم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    توصیه میشه که قبل از بسته شدن دیالوگ Resource های رو به اصطلاح آزاد کنین.واسه این کار میتونین از متد OnDestroy استفاده کنین.
    طبق قبل نمونه اولیه رو به قسمت تعریف کلاس اضافه کنین :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و توی MESSAGE_MAP هم اضافه کنین :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و توی پیاده سازی هم متد DestroyMenu ی m_SysTrayMenu رو فراخوانی کنین . ضمن اینکه میتونین کار حذف کردن SysTrayIcon رو هم اینجا انجام بدین :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد دوستمون رو هم میتوی برای Baloon استفاده کنی. m_nid همون Struct مربوط به ساختن آیکن هست.شما میتونی این رو به عنوان یه خصوصیت برای کلاس Dialog ت در نظر بگیری و توی مثلا OnInitDialog مثل کدی که دوستمون داده Icon رو درست کنی.
    توی این حالت همزمان با درست شدن آیکن, بالون هم ظاهر میشه.
    اگه بخوانی توی یه زمان خاص(مثلا کلیک شدن یه دکمه) بالون بیاد باید با استفاده از گرفتن اطلاعات همین ساختار و فراخوانی Shell_NotifyIcon با مقدار NIM_MODIFY بالون رو نشون بدین.
    Last edited by m3hrz4d; 04-01-2008 at 00:45.

  5. #5
    داره خودمونی میشه cpplover's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    esfarayen
    پست ها
    127

    11 ادامه بحث

    سلام دوست من :
    باید قبل از هر چیز به شما تبریک بگم واسه مهارتی که در نوشتن اینطور برنامه ها که
    واقعا یه آرزو برای من هست ، دارید. با تشکر و اینکه باید بگم اون برنامه همونطوری
    که من میخواستم اجرا شد و حتی چند منوی دیگه روایجاد واسه آزمایش ایجاد کردم و خیلی
    عالی جواب گرفتم.
    در ضمن از بابت ایجاد دو تایپیک با یک عنوان معذرت خواهی میکنم و از انجام این کار در آینده صرف نظر میکنم.
    اما خوب متاسفانه و یا شاید خوشبختانه باید بگم سوالای من یه مقدار زیادن!!!
    از اینکه زیاد میپرسم باید منو ببخشید.
    در ادامه من میخوام در مورد ایجاد بالن (مثل بالن های به قول شما windows update یا نرم افزارهایی
    مثل jetaudio و ...) بپرسم و از همون نوعی که خدتون اشاره کردید یعنی فرضا با ایجاد یک رویداد مثل
    فشردن یک دکمه با لون رو ایجاد کرد ؟ البته من با جستجو فقط کد برنامه هایی مثل VB رو پیدا کردم و واسه یک
    سری اکتیوایکس هم در codeproject جستجو کردم اما در هر حال موفق نشدم .
    ممکنه لطفی کنید و در مورد Shell_NotifyIcon و NIM_MODIFY توضیح بدید ؟

  6. #6
    داره خودمونی میشه cpplover's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    esfarayen
    پست ها
    127

    پيش فرض

    ممکنه واسه بالون راهنمایی بیشتری بدید؟ ممنون میشم

  7. #7
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2007
    پست ها
    205

    پيش فرض

    شما یک عضو کلاس دیالوگ برای ساختار NotifyIcon بگیرین :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و توی OnInitDialog , آیکن رو بدون دادن مشخصات بالون درست کنین:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا فرض میکنیم 2 تا دکمه برای Show و Hide کردن میخواهیم داشته باشیم. توی کلاس نمونه اولیه رو وارد میکنیم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و توی MESSAGE_MAP هم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    که قسمت های Bold شده طبق معمول آیدی دکمه ها هستن.
    حالا پیاده سازیشون میکنیم :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    البته قسمت نوشتن نمونه اولیه و MESSAGE_MAP رو معمولا خود Visual Studio با کلیک کردن روی دکمه هایی که ساختیم انجام میده.
    توی OnDestroy هم میتونیم Icon رو حذف کنیم تا بعد از اتمام برنامه از SysTray خارج بشه:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همونطور که میبینین تا دادن مقدار خالی به متن Balloon اون رو Hide کردیم.البته روش دیگه هم واسه این کار باید باشه..

  8. #8
    داره خودمونی میشه cpplover's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    esfarayen
    پست ها
    127

    13

    با سلام

    چند تا اشکال در کدهای قبلی بود که من متاسفانه نتونستم اونا رو برطرف کنم :
    1) error C2065: 'WM_SYSTRAYICON' : undeclared identifier
    2)و در خطوط زیر هم این اشکالها موجود بودن:

    void CBalloonDlg::OnBtnShowBalloonClicked()
    {
    m_SysTrayIcon.uFlags = NIF_INFO;
    strcpy(m_SysTrayIcon.szInfo, _T("Text"));
    strcpy(m_SysTrayIcon.szInfoTitle, _T("Title"));
    Shell_NotifyIcon(NIM_MODIFY,&m_SysTrayIcon);
    }

    void CBalloonDlg::OnBtnHideBalloonClicked()
    {
    m_SysTrayIcon.uFlags = NIF_INFO;
    strcpy(m_SysTrayIcon.szInfo, _T(""));
    strcpy(m_SysTrayIcon.szInfoTitle, _T(""));
    Shell_NotifyIcon(NIM_MODIFY,&m_SysTrayIcon);
    }
    1) error C2065: 'NIF_INFO' : undeclared identifier
    2) error C2039: 'szInfo' : is not a member of '_NOTIFYICONDATAA'
    3) error C2039: 'szInfoTitle' : is not a member of '_NOTIFYICONDATAA'
    4) error C2039: 'szInfo' : is not a member of '_NOTIFYICONDATAA'
    5) error C2039: 'szInfoTitle' : is not a member of '_NOTIFYICONDATAA'

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

    پيش فرض

    WM_SYSTRAYICON رو شما باید توی فایل CPP بالای همه تعریفش میکردین! بدون اینکه این کار کنه شما چطوری از منو ها جواب گرفتین؟؟!
    -
    برای رفع مشکل های بعدی هم اگه شما از Visual Studio 98 استفاده میکنین Library ش قدیمیه و این اعضا برای این Structure تعریف نشدن! اگه هم از ورژن 2003 به بعد استفاده میکنین و همچین Error ی داره, توی فایل stdafx.h که توی پروژه تون ساخته شده یه جایی شبیه این هست :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    عددی که Bold ش کردم ممکنه برای شما کمتر باشه. اون رو به همین 500 تغییر بدین.

  10. #10
    داره خودمونی میشه cpplover's Avatar
    تاريخ عضويت
    Dec 2007
    محل سكونت
    esfarayen
    پست ها
    127

    12 تشکر

    دوست من باز هم باید از زحمات شما تشکر کنم
    چون به همون دلیلی که گفتید برنامه های من در مورد ایجاد بالون کار نمی کردند
    من از ویژال 2005 استفاده کردم و بالون ها به خوبی نمایش داده شدند
    ممنونم

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

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

User Tag List

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

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