Как писать свой контрол? Код (Text): ; Структура с данными контрола CUSTOMCTRLSTRUCT struct ; ... CUSTOMCTRLSTRUCT ends ; Вызываем где-нибудь эту процедуру InitCustomCtrl proc hInst:DWORD LOCAL wc:WNDCLASSEX mov wc.cbSize,sizeof wc mov wc.lpszClassName,offset szCustomCtrl m2m wc.hInstance,hInst mov wc.lpfnWndProc,offset CustomCtrlWndProc invoke LoadCursor,hInst,IDC_ARROW mov wc.hCursor,eax mov wc.hIcon,0 mov wc.lpszMenuName,0 mov wc.hbrBackground,COLOR_BTNFACE mov wc.style,0 mov wc.cbClsExtra,0 mov wc.cbWndExtra,0 mov wc.hIconSm,0 invoke RegisterClassEx,addr wc ret InitCustomCtrl endp Что нужно делать в сообщении WM_NCCREATE, чтоб она создала новую переменную типа CUSTOMCTRLSTRUCT (Структура с данными контрола) и чтоб во время WM_NCDESTROY она освободила память под эту переменную?
Видел пример на Си, там это делалось так: Код (Text): switch(msg) { case WM_NCCREATE: // Allocate a new CustCtrl structure for this window. ccp = malloc( sizeof(CustCtrl) ); // Failed to allocate, stop window creation. if(ccp == NULL) return FALSE; ... case WM_NCDESTROY: free(ccp); } Как это осуществить в MASM?
http://www.wasm.ru/forum/viewtopic.php?id=7308 Первая ссылка не идет, вторую я смотрел (пример в #2 - оттуда)
В общем ладно. Все молчат... хотя может они и правы. А я - новичек, поэтому сужу не строго. Ну как? WinAPI, конечно. Например VirtualAlloc/VirtualFree. Есть еще HeapCreate/HeapAlloc и иже с ними, но в Вашей задаче в них необходимости нету... если конечно 150 своих контролов создавать/удалять/пересоздавать не собираетесь. Остальные ф-ии работы с памятью (GlobalAlloc/LocalAlloc) вроде уже устарели. А вообще MSDN в таких случаях.