Я пытаюсь сделать простой калькулятор среднего значения ватина с графическим интерфейсом, используя WIN32 API.Предполагается, что программа берет удары и время в битах и делит их, чтобы получить среднее значение ватин (формула среднего уровня = число попаданий / время в битах).У меня уже есть все элементы графического интерфейса, которые мне нужны, чтобы иметь возможность получать ввод от пользователя и выводить ответ.У меня также есть эта странная проблема, когда я набираю текст в текстовые поля, а текст невидим.
#include <windows.h>
#define CALC_BUTTON 1
LRESULT CALLBACK WindowProcedure(HWND,UINT,WPARAM,LPARAM);
void AddControls(HWND);
HWND hHits,hTimesAtBat,hOut;
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR args, int ncmdshow)
{
WNDCLASSW wc = {0};
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hInstance = hInst;
wc.lpszClassName = L"myWindowClass";
wc.lpfnWndProc = WindowProcedure;
if(!RegisterClassW(&wc))
return -1;
CreateWindowW(L"myWindowClass",L"Pedro's Batting Average Calculator",WS_OVERLAPPEDWINDOW | WS_VISIBLE ,100,100,500,500,NULL,NULL,NULL,NULL);
MSG msg ={0};
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WindowProcedure(HWND hWnd,UINT msg,WPARAM wp,LPARAM lp)
{
switch (msg)
{
case WM_COMMAND:
switch(wp)
{
case CALC_BUTTON:
//Insert Funtionally here
break;
}
case WM_CREATE:
AddControls(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProcW(hWnd,msg,wp,lp);
}
}
void AddControls(HWND hWnd)
{
CreateWindowW(L"Static",L"Hits:",WS_VISIBLE|WS_CHILD,150,70,98,38,hWnd,NULL,NULL,NULL); //Hits Text
hHits = CreateWindowW(L"Edit",L"",WS_VISIBLE|WS_CHILD|WS_BORDER,200,50,98,38,hWnd,NULL,NULL,NULL); //Enter Hits
CreateWindowW(L"Static",L"TimesAtBat:",WS_VISIBLE|WS_CHILD,100,110,98,38,hWnd,NULL,NULL,NULL); //Bats Text
hTimesAtBat = CreateWindowW(L"Edit",L"",WS_VISIBLE|WS_CHILD|WS_BORDER,200,90,98,38,hWnd,NULL,NULL,NULL); //Enter Bats
CreateWindowW(L"Static",L"Batting Average:",WS_VISIBLE|WS_CHILD,70,140,128,38,hWnd,NULL,NULL,NULL); //Batting Avg
hOut = CreateWindowW(L"Edit",L"",WS_VISIBLE|WS_CHILD|WS_BORDER,200,130,98,38,hWnd,NULL,NULL,NULL); //Answer Output
HWND hBut = CreateWindowW(L"Button",L"Calculate",WS_VISIBLE|WS_CHILD|WS_BORDER,150,190,98,38,hWnd,(HMENU)CALC_BUTTON,NULL,NULL); //Calculate Button
}