|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 31, 2003 20:18:04 Создаю основное окно со стилем ws equ WS_VISIBLE+WS_BORDER+WS_POPUP invoke CreateWindowEx,WS_EX_TOPMOST,_class,ClassAsm,ws,350,2,280,20,NU LL,eax,[hinstance],NULL потом вызываю диалог по выбору пункта меню invoke DialogBoxParam,[hinstance],IDD_DLG1,[hwnd],Dialog_New_Project,0 диалог обьявляю так dialog new_project,3,'Новый проект',6,6,169,205,WS_VISIBLE+WS_POPUP+WS_CHILD dialogitem 'EDIT','',IDC_PATHPR,10,14,138,11,WS_VISIBLE dialogitem 'BUTTON','...',IDC_PATHPRBTN,150,14,14,11,WS_VISIBLE+SS_CENTER+WS_TABS TOP dialogitem 'STATIC','Путь к файлу проекта',IDC_STC1,12,3,132,9,WS_VISIBLE+SS_LEFT При вызове диалога появляются только итемы диалогового окна, но само окно не видно, почему? |
|
|
Дата: Май 31, 2003 20:29:46 · Поправил: Quantum dialog new_project,3,'Новый проект',6,6,169,205,WS_VISIBLE+WS_POPUP+WS_CHILD Зачем WS_CHILD??? Заменить на DS_CENTER + WS_POPUP + WS_CAPTION invoke DialogBoxParam,[hinstance],IDD_DLG1,[hwnd],Dialog_New_Project,0 Dialog_New_Project -- это OFFSET процедуры обработки? Удостовертесь... ЗЫ: Ещё стоит проверить саму функцию Dialog_New_Project |
|
|
Дата: Июн 1, 2003 00:36:53 Я уже нашёл ошибку она была в процедуре. |
|
|
Дата: Июн 3, 2003 17:23:07 pas Кстати, известный глюк :) В чём именно была ошибка? Кроме всего я часто наблюдаю следующию картину, когда диалог не перемещается. (Правда такая ошибка возникает на Фортране...) И всё таки интересено почему (может кто-то сталкивался?) |
|
|
Дата: Июн 3, 2003 20:42:55 Edmond Извини не запомнил. В первый раз я копировал процедуру по частям и у меня не работало. потом скопировал процедуру разом, заработало так, что сорри. |
|
|
Дата: Июн 4, 2003 03:37:48 Edmond Кстати, известный глюк :) Да, и у меня такое было... Точно не помню, но вроде проблема была в значении возвращаемом по умолчанию в обработчик DialogBox. Всегда нужно возвращать ноль: ... .ELSEIF msg == WM_INITDIALOG ... mov eax,1 .ELSE xor eax,eax ; <= здесь .ENDIF ret Кстати, фон не вырисовывался только под 2000 и XP (в ME всё было OK). |
|
|
Дата: Июн 6, 2003 17:59:51 Edmond у меня получилось вернуть этот глюк. так работает нормально. proc Dialog_New_Project,hwnd,wmsg,wparam,lparam enter push ebx esi edi cmp [wmsg],WM_LBUTTONDOWN je .close cmp [wmsg],WM_RBUTTONDOWN je .close xor eax,eax jmp .finish .close: invoke EndDialog,[hwnd],0 .processed: mov eax,1 .finish: pop edi esi ebx return Если mov eax,1 опустить после метки .finish: фон пропадает. Т.е. Quantum прав, едиты и кнопки реагируют нормальн. У меня Win98 милениум ставил, но не понравился снёс его через 2 дня. С уважением,pas. |
|
|
Дата: Июн 7, 2003 11:32:44 Кстати mov eax,1 - не самый лучший вариант. Правильнее будет написать xor eax,eax inc eax это занимает немного меньше места (если я не ошибаюсь, то на 2 байта). Хотя смысл тот же, но оптимизация на лицо. |
|
|
Дата: Июн 7, 2003 18:54:10 Если EndDialog возвращает TRUE, то зачем mov eax,1? Не логично... pas, наверное, имел ввиду xor eax,eax перед jmp .finish |
|
|
Дата: Июн 7, 2003 21:04:58 Quantum Я говорю как получается. Именно mov eax,1. |
|
|
Дата: Июн 9, 2003 19:20:58 Sk. Inc. Гм.... А mov al,1 :))) |
|
|
Дата: Июн 9, 2003 19:52:21 pas Если убрать xor eax,eax, то фон пропадёт (проверил) Зачем метка .processed, если на неё никто не ссылается? Edmond Или просто inc eax, ведь eax != -1 |
|
|
Дата: Июн 9, 2003 20:07:16 Quantum Брал с готового файла просто, что бы изучить добавление в диалог чекбоксов и радиобаттонов соответственно об оптимизации не заботился. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.080 |