2015-07-22 38 views
11

Cách đây không lâu, tôi đã cố gắng thêm chú giải công cụ cho mục đích thử nghiệm trên một mục CMenu. Bây giờ tôi sẽ cần nó, và tôi phải đối mặt với cùng một vấn đề một lần nữa.Thêm chú giải công cụ vào các mục của CMenu

Câu hỏi và trả lời này: MFC : How to add tooltip in Cmenu items?
không giúp tôi chút nào vì "ma thuật dòng mới" này không hoạt động.

Ngoài ra, nó có vẻ như tôi không phải là người duy nhất gặp vấn đề với nó: MFC CMenu tooltip not being displayed

void CTextListCtrl::CreateMenu(void) 
{ 
    m_Menu.CreateMenu(); 
    CMenu submenu; 
    submenu.CreatePopupMenu(); 
    submenu.AppendMenuW(MF_STRING, IDC_RESEND_POPUP, L"&Resend\nShow me the tooltip"); 
    //Other menu items... 
    m_Menu.AppendMenuW(MF_POPUP, reinterpret_cast<UINT_PTR>(submenu.m_hMenu), L""); 
    submenu.Detach(); 
} 

Kết quả là thế này:

enter image description here

Tuy nhiên, tăng các chữ cái của văn bản dẫn đến một menu pop-up lớn hơn, không phải là một chú giải công cụ menu.

Tôi đã thấy các liên kết khác trong câu trả lời này và đã chọn chúng và các dự án. Nhưng đây không phải những gì tôi muốn.

Có ai đó biết tôi đã làm gì sai hay có giải pháp/nguồn khác có thể hữu ích không?


Edit: Như tôi đã đề cập trước đây trong một comment, đây là một sample solution với yêu cầu tối thiểu để tạo lại vấn đề. (Xem CMenuListCtrl.cpp(100))
Thử nghiệm với VS2010 & VS2015 (cùng kết quả).

+0

có lẽ nó chỉ là về thay thế \ n bởi \ r \ n được mong đợi của MFC cho ngắt dòng. – Totonga

+0

@Totonga Không, tôi đã thử kết quả này. – Blacktempel

Trả lời

1

Đây là mẹo giúp khắc phục sự cố của bạn, "ma thuật dòng mới" sẽ hoạt động chắc chắn.

Đảm bảo rằng bạn đang sử dụng phiên bản 6 của ComCtl32.dll.

Thêm khối dưới đây vào tệp stdafx.h và xây dựng lại dự án của bạn.

#pragma comment(linker, "\"/manifestdependency:type='win32'\ 
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \ 
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 

enter image description here

+0

Đây là mặc định trong 'stdafx.h' và nó không hoạt động. – Blacktempel

+0

Bạn có thể chia sẻ với tôi giải pháp VC++ của bạn không? – user1

+0

[Giải pháp được tải lên] (http://s000.tinyupload.com/index.php?file_id=07597732216098941519) với các yêu cầu tối thiểu để tái tạo sự cố. Giả sử 'CMenu' có thể ở trong bất kỳ lớp hoặc điều khiển nào khác. – Blacktempel

Các vấn đề liên quan