MenWiz has the ability to display a user screen, and the menu will invoke a function in your code when the menu times out.
What you need to do is format the string you want to display (with the 'live' data) and then call the menWiz function to display it for you. I think (from memory) that the menwiz example uses this to display the millis() (this is live) and the free memory (which is live but does not change much).
If your question is how to change the data screens, this code may help.
void myDisplay(void)
// Callback from the menu system to display my own screen data
{
static uint8_t state = 0;
static char buf[7];
static uint32_t tmStart = 0;
// switch user screens once every period
if (millis() - tmStart >= 3000)
{
state++;
tmStart = millis();
}
switch (state)
{
case 0:
// line 1
strcpy(menu.sBuf,"Uptime : ");
strcat(menu.sBuf, itoa((int)(millis()/1000), buf, 10));
// line 2
strcat(menu.sBuf,"\nFreeRAM: ");
strcat(menu.sBuf, itoa((int)menu.freeRAM(), buf, 10));
break;
case 1:
// line 1
strcpy(menu.sBuf,"Int8 : ");
strcat(menu.sBuf, itoa(varInt8, buf, 10));
// line 2
strcat(menu.sBuf,"\nInt16: ");
strcat(menu.sBuf, itoa(varInt16, buf, 10));
break;
case 2:
// line 1
strcpy(menu.sBuf,"Bool : ");
strcat(menu.sBuf, varBool ? "YES" : "NO");
// line 2
#if USE_FLOAT
strcat(menu.sBuf,"\nFloat: ");
strcat(menu.sBuf, dtostrf(varFloat, 0, FLOAT_DEC, buf));
#else
strcat(menu.sBuf,"\n");
#endif
break;
case 3:
// line 1
strcpy(menu.sBuf,"Short List: ");
strcat(menu.sBuf, itoa(varShortList, buf, 10));
// line 2
strcat(menu.sBuf,"\nLong List: ");
strcat(menu.sBuf, itoa(varLongList, buf, 10));
break;
default:
state = 0;
return; // don't update the screen
}
menu.drawUserScreen(menu.sBuf);
}