I'm confused regarding the purpose of this program's purpose as the overall idea isn't so clear.
However...
A wParam is a WINAPI type, like an int, float, string, char, or double in C++, that is a basic message parameter.
A lParam is another WINAPI type that is a bit different than wParam. (wParam is a UINT_PTR where lParam is a LONG_PTR)
For the key codes, those values (0x83/0x84) represent the keys themselves. They are literally key codes.
You can find a little index of key codes here on the MSDN WINAPI website:
https://msdn.microsof*****m/en-us/library
dows/desktop/dd375731(v=vs.85).aspx
To figure them out on the calculator, you're going to have to either test these codes in your program and find out which keys do what or find your calculator key binds. The former option is much better than the latter just because it's a bit more educational.
I will break the "SendMessage(hwndCalc, WM_COMMAND, MAKEWPARAM(0x84, BN_CLICKED), 0);" down for you:
First, we initiate the function SendMessage that takes 2 mandatory parameters (the hWnd and Msg) along with 2 additional parameters (wParam and lParam).
The hWnd parameter represents the location where you would like to initiate the mouse click at.
The Msg parameter represents your literal message, however, instead of telling the program to
initiate text (a string) as the message, you tell it that you want to initiate a command (WM_COMMAND)
that CAN but does not require two more parameters (wParam and lParam).
So, what you have been given in your code is a wParam that says you literally want to make a wParam (MAKEWPARAM()) that initiates a button click located at 0x84.
The 0/FALSE/NULL, at the end, just tells SendMessage() that you don't want to initiate a lParam.
So overall, you've told the function to send a command message that initiates the button at 0x84 which I think is F1.
Good luck!