Witam,
problem w tym, że odpowiedzi które znajdujesz, o gotowych bibliotekach, są jak najbardziej sensowne. Bez bibliotek nic nie zrobisz, a do napisania własnych trzeba chyba coś więcej niż książka z C++...
Owszem, można samemu wszystko zbudować, ale to wymaga naprawdę sporej wiedzy. Zakładam, że piszesz w Windows, więc zobacz strony MSDN, tam jest naprawdę BARDZO dużo materiału. Tu jest np. o tworzeniu okna:
https://msdn.microsoft.com/library/windows/desktop/ms632679
Na mój mały rozumek, zanim zaczniesz wyważać otwarte drzwi (lub robić swoje, lepsze), zobacz jak są zbudowane już istniejące, poznaj ich działanie. Mają mocne strony i słabe, wypróbuj!
A przyciski nie muszą być rysowane osobno, są do tego funkcje. Przykład poniżej pochodzi z małego kalkulatora, który kiedyś napisałem. Jest mało finezyjny, niedopracowany, ale działał. Kalkulator działał, przykład to tylko fragment i sam nic nie zrobi, jest częścią większej całości - tylko dla zobrazowania.
HWND tab[10] = { p1, p2, p3, p4, p5, p6, p7, p8, p9 };
HWND *wsk;
wsk = tab;
LPWSTR l[10] = { L"1", L"2", L"3", L"4", L"5", L"6", L"7", L"8", L"9" };
HWND tab_dz[6] = { plus, minus, mnoz, dziel, pierwiastek, potega };
HWND *wsk_dz;
wsk_dz = tab_dz;
LPWSTR dz[6] = { L"+", L"^", L"-", L"\u221a", L"*", L"/"};
//do cyfr
for (int row = 0; row < 3; row++)
{
for (int col = 0; col < 3; col++)
{
int num = (row * 3) + col;//punkt przecięcia wiersz/kolumna, cyfra po row* zależy od ilości kolumn
*wsk = CreateWindowEx(
WS_EX_WINDOWEDGE,
przycisk,
l[num],
WS_CHILD | WS_VISIBLE,
10 + (col * 55),//położenie w poziomie
150 + (row * 35),//położenie w pionie
50, 30,//wymiary
hOkno, HMENU(num), hIn, NULL
);
wsk++;
zmiana_fontu(hOkno, num);
}
}
Nie chcę Cię zniechęcać, wręcz przeciwnie - sam odpadniesz, próbując tak, jak napisałeś. Naucz się używać istniejących bibliotek, potem pisz własne.
Ale rzecz jasna to tylko porada, jak Ci nie odpowiada - zignoruj. Tak czy owak - powodzenia.