如何将值传递给MFC消息映射函数on_command

Ete*_*ner 1 c++ mfc ribbon message-map

我有一个函数,根据它收到的std :: string值执行特定的操作.

例如:

void performTaskOnStringValue(std :: string);

现在我有一组Ribbon Buttons(CMFCRibbonButton)需要通过在按钮点击时将它们各自的文本作为值传递来调用此函数.

我已经将这些按钮的id映射到带有按钮id的消息映射宏on_command.所有按钮共享一个共同的ID - 例如 -

ID_RIBBON_BUTTON_ID

消息映射如下

ON_COMMAND(ID_RIBBON_BUTTON_ID,&MyClass :: performTaskOnStringValue);

如何在ButtonClick上将按钮文本作为参数传递给此函数?

Mar*_*som 5

当所有按钮都具有相同的ID时,您无法使按钮执行不同的操作.命令处理程序不会指示按下了哪个按钮.

如果您可以为按钮分配连续的ID,则可以使用ON_COMMAND_RANGE.这将传递按钮的ID,您可以将其传递给GetDlgItemText以从按钮获取文本.