Just add DynamicVariables=1 to the Button meter that is using measure results in the ButtonImage= statement, and you should be all set.
This works for me with an image named 500.png in the current path:
[Rainmeter]
Update=1000
DynamicWindowSize=1
[Measure1]
Measure=Calc
Formula=(250 * 2)
[MeterButton]
Meter=Button
ButtonImage=#CURRENTPATH#[Measure1].png
ButtonCommand=!Execute ["
http://cnn.com"]
DynamicVariables=1
Few notes:
* You can remove the DynamicVariables=1 statements from the WebParser measures, they don't need them. The ability to use URL=[MeasureName] is specifically built-into WebParser "child" measures, and plugins can never use dynamic variables other than that case. DynamicVariables=1 is ignored on all plugin measures.
* W= and H= have no effect on a button image. A Button meter cannot be resized, it will be the actual size of the bitmap used.
* Not sure I would use LeftMouseUpAction on the button. It works that way, but a button meter has a built-in ButtonCommand= statement. Up to you I guess, works either way, just seems easier to follow for someone looking at your skin code with ButtonCommand. The exception for me would be if I was using multiple commands on the Button meter like:
LeftMouseUpAction=!Execute ["
http://cnn.com"]
MiddleMouseUpAction=!Execute ["
http://msnbc.com"]
Then it would make the different commands and how you execute them more clear. Just a nitpick really... On a Button meter, LeftMouseUpAction and ButtonCommand are functionally identical.
* You don't need MouseActionCursor=1 on a Button meter, that state would be the default. You would only use MouseActionCursor=0 if you didn't want the hand cursor.
* As far as I can tell, AntiAlias=1 has no effect on a Button meter. Other image manipulation functions like GreyScale/ImageTint/ImageFlip/ColorMatrix(x) were added to Button meters, but I don't think AntiAlias was. Doesn't hurt anything to have it there, but I suspect it may be just an extra line of code you don't need.