سؤال

انا املك CMFCRibbonStatusBar في حاسوبي الرئيسي الذي أقوم بإضافة ملف CMFCRibbonButtonsGroup الذي لديه مرة أخرى CMFCRibbonButton.هذا الزر له نفس معرف إدخال القائمة.

يتم إنشاء الزر على النحو التالي:

CMFCRibbonButtonsGroup* pBGroup = new CMFCRibbonButtonsGroup();

CMFCToolBarImages images;
images.SetImageSize(CSize(32, 16)); // Non-square bitmaps
if(images.Load(IDB_STATUSBAR_IMAGES))
{
    pBGroup->SetImages(&images, NULL, NULL);
}

m_pStatusButton = new CMFCRibbonButton(ID_STATUS_SHOWSTATUS,
                                       _T(""),
                                       IMAGEINDEX_DEFAULTSTATUS);

pBGroup->AddButton(m_pStatusButton);

m_wndStatusBar.AddExtendedElement(pBGroup, _T(""));

أريد استخدام هذا الزر كمؤشر للحالة.

أرغب في عرض تلميح أداة في الحالتين التاليتين:

  • عندما يتغير الوضع و
  • عندما يقوم المستخدم بتحريك الماوس فوق الزر.

ليس لدي أي فكرة عن كيفية البدء في المقام الأول.لقد نظرت إلى ToolTipDemo و DlgToolTips نماذج من المشاريع ولكن لم تتمكن من معرفة كيفية القيام بذلك لأن كل ما يفعلونه هو عرض تلميحات الأدوات لعناصر شريط الأدوات أو أزرار الحوار (CWnd- مشتق بدلا من CMFCRibbonButton).

إذا كنت على دراية ToolTipDemo مشروع عينة:نظرًا لوجود عدة طرق للقيام بالأشياء، فإنني أفضل أن يبدو تلميح الأداة مثل تلميح الأداة "المستند إلى Extended Visual Manager" كما يلي: يظهر في لقطة الشاشة هذه.

شكرًا!

هل كانت مفيدة؟

المحلول

لا أعتقد أنه من الممكن إظهار تلميح الأداة دون أن يكون مؤشر الماوس فوق عنصر التحكم.ويتم كل ذلك تلقائيًا.

ومع ذلك، إذا كنت تريد الحصول على تلميح أدوات ذو مظهر جميل كما هو الحال في لقطة الشاشة، فأنت بحاجة إلى الاتصال SetToolTipText و SetDescription, ، مثله:

CMFCRibbonButton* pBtn = new CMFCRibbonButton(12345, _T(""), 1);
pBtn->SetToolTipText("This is the bold Title");
pBtn->SetDescription("This is the not-so-bold Description");
pGroup->AddButton(pBtn);

نصائح أخرى

انا استخدم CMFCRibbonButton الضوابط داخل أ CMFCRibbonButtonGroup, ، والذي يضاف إلى CMFCRibbonStatusBar.يحيط علما بالمعلمة الرابعة في CMFCRibbonButton() البناء، bAlwaysShowDescription, ، حيث يبدو أن هذا يؤثر على السلوك اعتمادًا على ما إذا كان SetDescription() وقد دعا.

على وجه التحديد، إذا SetDescription() لم يتم استدعاؤه، لا يهم ما إذا كان bAlwaysShowDescription TRUE أو FALSE - يتم عرض تلميح الأداة (كما أتوقع).لو SetDescription() تم تعيين و bAlwaysShowDescription خطأ، عند التمرير فوق الزر، يتم عرض تلميح الأداة مع الوصف الموجود أسفله.

ما يبدو غير بديهي نظرا لهذا الاسم bAlwaysShowDescription المعلمة، هو أنه عندما يكون هذا صحيحا و SetDescription() تم ضبطه، لا يظهر تلميح الأداة ولا الوصف.أتساءل عما إذا كان هذا مرتبطًا بهذه المشاركة:https://connect.microsoft.com/VisualStudio/feedback/details/399646/cmfcribbonbutton-wont-show-tooltip-if-balwaysshowdescription-1

آمل أن يساعدك هذا وأن تتمكن من تحقيق ما تحتاجه باستخدام مجموعات مختلفة من bAlwaysShowDescription المعلمة وما إذا كان SetDescription() تم تعيينه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top