Začínám s dynamickým vytvářením edit boxů. Cílem je vytvořit číselnou matici pomocí editboxů:
void createEditbox1(HWND dialog, int id, int x, int y, int w, int h){
HWND hwndEdit = CreateWindowEx(
0, "EDIT", // predefined class
NULL, // no window title
WS_CHILD | WS_VISIBLE | WS_BORDER |
ES_NUMBER,
x, y, w, h, // set size in WM_SIZE message
dialog, // parent window
(HMENU) id, // edit control ID
(HINSTANCE) GetWindowLong(dialog, GWL_HINSTANCE),
NULL); // pointer not needed
SendMessage(hwndEdit, WM_SETTEXT, 0, 0); // add text to window
}
void Display_Matrix(HWND dialog, int matrixSize = 4){
int w = 23;
int h = 16;
int paddingx = 2;
int paddingy = 2;
int offsetx = 130;
int offsety = 130;
int beginx = offsetx;
int beginy = offsety;
int stepx = w + paddingx;
int stepy = h + paddingy;
int endx = offsetx + ( matrixSize * stepx );
int endy = offsety + ( matrixSize * stepy );
int x, y, i = 0;
int count = matrixSize * matrixSize;
int id = 5000;
for (x = beginx; x <= endx; x += stepx )
for (y = beginy; y <= endy; y += stepx )
{
id++;
createEditbox1(dialog, id, x, y, w, h);
}
}
Mám dva, tři problémy možná víc.
1) Proč se mi nastavilo písmo jako u nadpisu okna? Je to velké tlusté písmo a očekával bych tam font který používám v oknech pro čtení běžného textu, asi Arial 10 normal. Jak toto opravit nebo nastavit aby se to nemuselo dodatečně opravovat?
2) nefungují mi tam taby na přepínání mezi prvky co s tím? Je třeba tam nastavit zachytávání zpráv? To je asi dost náročné na výkon a na kód nastavit všechny zprávy těm 100 edit boxům, co?
3) Jakým způsobem bych to měl udělat když bych chtěl zpracovat zprávy je nutné vytvořit pro každý control samostatnou funkci? To by bylo asi dost strašně nepřehledné. Vytvořit 100 funkcí na zachytávání zpráv? Se vsadím že by ta aplikace brzo zamrzla.