Сейчас на форуме: vasilevradislav, Kybyx, Rio (+3 невидимых) |
eXeL@B —› Оффтоп —› MessageBox не закрывается о_О |
Посл.ответ | Сообщение |
|
Создано: 27 марта 2009 00:00 · Личное сообщение · #1 даж стыдно такое в раздел программирование постить. короче после такого кода: Code:
mesageBox не закрывается. Пример в атаче. e1d8_26.03.2009_CRACKLAB.rU.tgz - fileTypes.exe ----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 |
|
Создано: 27 марта 2009 00:16 · Личное сообщение · #2 |
|
Создано: 27 марта 2009 00:26 · Личное сообщение · #3 |
|
Создано: 27 марта 2009 00:50 · Личное сообщение · #4 Ara пишет: и не открывается тож =))) нажмай на "ОК". Jupiter пишет: первым параметром MessageBox указывай хэндл окна (hWnd) Это само собой просто надо с этим глюком разобратся для начала. Jupiter пишет: и проверку на BN_CLICKED проводи ДО Всмысле до switch (LOWORD(wParam)) ? PS: делать интерфейсы на более низком уровне чем Delphi VCL сложнее, но намного интереснее. ----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 |
|
Создано: 27 марта 2009 08:35 · Поправил: BoRoV · Личное сообщение · #5 Stack пишет: Jupiter пишет: и проверку на BN_CLICKED проводи ДО Всмысле до switch (LOWORD(wParam)) ? Code:
----- Лучше быть одиноким, но свободным © $me |
|
Создано: 27 марта 2009 13:59 · Поправил: Stack · Личное сообщение · #6 BoRoV, ну это я понял. Вопрос оптимизации кода я не затрагивал - все равно этот коллбэк для отладки кой какий функций диалога. все равно идрен-батон не закрывается. Мне просто интересно - как это происходит. Поковыряюсь еще чуть в дебагере. Add: Выяснил что функция мессагбокса не возвращает управление проге. И главное при других случаях все работает. И еще если убрать создание диалога все работает. ----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 |
|
Создано: 27 марта 2009 16:10 · Личное сообщение · #7 ну что ж ты ленивый то такой... я же уже ответил на твой вопрос! и не забывай возвращать FALSE там, где это требуется DefWindowProc НЕ МОЖЕТ выполняться ВСЕГДА !!! DefWindowProc выполняется ТОЛЬКО тогда, когда твой код не отработал и нужно стандартное действие системы! если ты и сейчас не понимаешь (может ну его, программирование, а?), мой те совет: почитай про оконную процедуру, что она должна возвращать, для чего служит DefWindowProc и т.д. ты удивляешься, почему твой код теряет управление, хотя сам же безусловно вызываешь DefWindowProc! case WM_COMMAND case WM_DESTROY case else !!! DefWindowProc здесь !!! ----- EnJoy! |
|
Создано: 27 марта 2009 16:14 · Поправил: Stack · Личное сообщение · #8 Jupiter это я не ленивый это пример того до чего человека VCL доводит. надо будет поподробнее о оконной процедуре почитать, а дефвинпроц значит в секции default надо обрабатывать. Да и к тому же ДО ДЕФВИНПРОЦА УПРАВЛЕНИЕ В СЛУЧАЕ МЕСАГБОКСА не доходит. Короче вы меня не правильно поняли скорее всего. А тему лучше закрою. ADD: не работало из-за непраильного цикла - надо нулл ставить. while (GetMessage(&msg, hWnd, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } ----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 |
eXeL@B —› Оффтоп —› MessageBox не закрывается о_О |