+ if (!m_strAccel.IsEmpty())
+ {
+ // measure the accelerator string, and add it's width to
+ // the total item width, plus 16 (Accelerators are right justified,
+ // with the right edge of the text rectangle 16 pixels left of
+ // the right edge of the menu)
+
+ int accel_width, accel_height;
+ dc.GetTextExtent(m_strAccel, &accel_width, &accel_height);
+ *pwidth += accel_width;
+ }
+
+ // add space at the end of the menu for the submenu expansion arrow
+ // this will also allow offsetting the accel string from the right edge
+ *pwidth += (size_t) (GetDefaultMarginWidth() * 1.5);
+