menu - CMFCToolbar and CMFCMenubar displaying wrong tooltips -


question asked on https://social.msdn.microsoft.com/forums/vstudio/en-us/f64c99e5-f490-454f-951f-aee794e9506b/cmfctoolbar-and-cmfcmenubar-displaying-wrong-tooltips

i using visual studio 2010, suspect bug still present on 2013 version, compared winfrm.cpp file , ontooltiptext equal on 2 files.

the bug happening @ 7th, 8th or 16th element. although separators count elements counting, tooltips not appear on them.

element can textual menuitem, popup menu or toolbar button.

the string table defines are:

#define ids_seven            7 #define ids_eight            8 #define ids_nine             9 #define ids_ten             10 #define ids_eleven          11 #define ids_twelve          12 #define ids_thirteen        13 #define ids_fourteen        14 #define ids_fifteen         15 #define ids_sixteen         16 

and stringtable contents are:

ids_seven           "seven" ids_eight           "eight" ids_nine            "nine" ids_ten             "ten" ids_eleven          "eleven" ids_twelve          "twelve" ids_thirteen        "thirteen" ids_fourteen        "fourteen" ids_fifteen         "fifteen" ids_sixteen         "sixteen" 

so, when hover mouse pointer 7th, 8th or 16th element wrongly tooltip displaying string id (example:7th element displays "seven").

it happens toolbars , menus sufficient number of items, including in toplevel horizontal menubar.

i discovered guilty function is:

bool cframewnd::ontooltiptext(uint, nmhdr* pnmhdr, lresult* presult) 

as nid local variable not absolute id of command, positional order of button, starting 1 instead of 0.

if move strings ids out of range, whenever user wants add new strings, visual studio resource editor see space free , use it, filling again. , problem happen again. so, not valid solution.

i define strings commands. maintaining 4 tfs branches @ same time , change needs go branches, change potentially dangerous when doing merges after.

so, please solution recommend not display stupid tooltips?

update: didn't copy string table was. this:

ids_seven           "seven\nseven" ids_eight           "eight\neight" ids_nine            "nine" ids_ten             "ten" ids_eleven          "eleven" ids_twelve          "twelve" ids_thirteen        "thirteen" ids_fourteen        "fourteen" ids_fifteen         "fifteen" ids_sixteen         "sixteen\nsixteen" 

in update put stringtable more similar 1 had. had not noticed before common feature of 7, 8 , 16 th strings: had '\n' characters in contents.

i think nobody create menu more 512 menuitems nor toolbars more 512 buttons, solution change strings containing '\n' characters id below 512 numbers above 512.

and works.


Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -