Раз уж мы ушли в оффтоп в ветке EasyShot, давайте продолжим где-то здесь.
Немного мыслей вслух.
На ассемблере раньше как оно было и в большинстве случаев остается:
Code:
mov eax,8
mov edi,11
mov ebx,10*65536+100
...
je eax,11
...
Местами стало получше:
Code:
mov eax,SF_DEFINE_BUTTON
mov edi,BTN_APPLY
mov ebx,POSX*65536+100
...
je eax,BTN_APPLY
...
В плане С-- я пришел к мысли, что структуры - это хорошо и элементы ООП вроде инкапсуляции - просто прекрасно. Большую программу без ООП написать НАМНОГО сложнее, чем с ним.
Так что чем дальше, тем больше
Code:
DefineButton(10,20,100,20, 30, 0xFFFfff);
WriteText(.............., "Appy")
if (id==30) dosmth();
Превращается в
Code:
button Apply = { "Appy" };
Apply.draw(10, 20);
if (Apply.click(id)) dosmth();
id выделяется автоматически, и мы оперируем не им, а объектом.
У объекта есть функции и свойства. Наверное, для многих избитые истины.
Да, это немного увеличивает размер бинарника, но дает возможность удобного чтения, контроля и расширения. Скажем, в будущем можно будет сделать перемещение по разным элементам с помощью TAB.