На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> MessageBox
    Вот я забыл как делается такая фтучко :D
    например имеем месадж бокс,с MB_OKCANCEL или же там еще с чем-то =)
    так вот,например если я нажимаю Ок,тогда выполняется определённое действие =)
    например закрыть приложение
    Ну как делается с обычными диалогами
    Заркрыть приложение?
    Ок\Отмена =)
      Не понятно, что требуется, переформулируй вопрос, пожалуйста

      Добавлено
      ExpandedWrap disabled
        .if ax==TRUE
         .....
        .else
         .....
      оно ?

      Добавлено
      в ax возвращается, нажал ты ок или cancel
        да оно,но только мне нуна,если только я нажал на ок
          Цитата Dimon-z @
          да оно,но только мне нуна,если только я нажал на ок

          ExpandedWrap disabled
             ax==TRUE(ok)
            .IF uMsg==WM_CLOSE
            invoke MessageBox,NULL,ADDR MsgText,ADDR MsgTitle,MB_OKCANCEL
            .IF ax==TRUE(ok)
            invoke PostQuitMessage,NULL
            .ENDIF
            error A2006: undefined symbol : ok
            Пробывал делать вместо MB_OKCANCEL, 1 и пробывал вместо ax eax==1,всё равно не получается..ну получается,но только если я нажму любую кнопку...а мне нуна только ок :(
              Цитата Dimon-z @
              .IF ax==TRUE(ok)

              гыгы :) да (ok) это типа комментария ;) надо прсото ax==TRUE.
                я ставил,я понял что типо коммента =)то я скопирывал...я вставлял тру,и пофиг...пробывал фалс и отмену тоже пофиг...на любую кнопочгу клачаеш и закрываеццо :(
                  Dimon-z, покажи весь код, тогда смогу помочь. ;)

                  Добавлено
                  Цитата Dimon-z @
                  я ставил,я понял что типо коммента =)то я скопирывал...

                  да и по ошибке
                  Цитата Dimon-z @
                  error A2006: undefined symbol : ok

                  не сказала бы, что ты не написал ok :ph34r:

                  Добавлено
                  Dimon-z, попробовала всё нормально, что у тебя после
                  Цитата Dimon-z @
                  .IF ax==TRUE(ok)
                  invoke PostQuitMessage,NULL
                  .ENDIF

                  идёт ?
                    ExpandedWrap disabled
                      invoke MessageBox,NULL,ADDR MsgText,ADDR MsgTitle,MB_OK or MB_YESNO
                      .IF ax==TRUE
                      invoke PostQuitMessage,NULL
                      .ENDIF
                      invoke PostQuitMessage,NULL ;<--  а это зачем?
                      вот процедура
                      там где выполняется...
                      думаю полный код не нужен т.к в нём ничего нету такого =)
                      ExpandedWrap disabled
                        WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
                        LOCAL hdc:HDC
                         
                        LOCAL ps:PAINTSTRUCT
                        LOCAL rect:RECT
                        .IF uMsg==WM_CLOSE
                        invoke MessageBox,NULL,ADDR MsgText,ADDR MsgTitle,MB_OKCANCEL
                        .IF ax==TRUE
                        invoke PostQuitMessage,NULL
                        .ENDIF
                        .ELSE
                        .IF uMsg==WM_DESTROY
                        invoke PostQuitMessage,NULL
                        .ELSEIF uMsg==WM_PAINT
                        invoke BeginPaint,hWnd,Addr ps
                        mov hdc,eax
                        invoke GetClientRect,hWnd,Addr rect
                        invoke DrawText, hdc,Addr MsgText,-1,Addr rect, \
                        DT_SINGLELINE or DT_CENTER or DT_VCENTER
                        invoke EndPaint,hWnd, ADDR ps
                        .ELSE
                        invoke DefWindowProc,hWnd,uMsg,wParam,lParam
                        ret
                        .ENDIF
                        .ENDIF
                        xor eax,eax
                        ret
                        WndProc endp


                      Добавлено
                      2quotter, то я тупанул чутог =)
                      убрал, но всё равно..
                      Сообщение отредактировано: Dimon-z -
                        Цитата Dimon-z @
                        это было в самом начале насчёт ок,я не обратил внимания...а потом пнял =)

                        понятно :) ну вот собственно на
                        ExpandedWrap disabled
                          .IF uMsg==WM_CLOSE
                          invoke MessageBox,NULL,ADDR MsgText,ADDR MsgTitle,MB_OKCANCEL
                           
                           .IF ax==TRUE
                          invoke PostQuitMessage,NULL
                          .ENDIF
                          ;invoke PostQuitMessage,NULL
                            
                           
                          .elseIF uMsg==WM_DESTROY
                          invoke PostQuitMessage,NULL
                          .ELSEIF uMsg==WM_PAINT
                          invoke BeginPaint,hWnd,Addr ps
                          mov hdc,eax
                          invoke GetClientRect,hWnd,Addr rect
                          invoke DrawText, hdc,Addr MsgText,-1,Addr rect, \
                          DT_SINGLELINE or DT_CENTER or DT_VCENTER
                          invoke EndPaint,hWnd, ADDR ps
                          .ELSE
                          invoke DefWindowProc,hWnd,uMsg,wParam,lParam
                          ret
                           
                          .ENDIF
                          xor eax,eax
                          ret
                          WndProc endp
                          end start
                          спасибо,а собственно где ошибка была?
                          просто когда удалил строку
                          ExpandedWrap disabled
                            ;invoke PostQuitMessage,NULL

                          всё равно такаяже фигня была...
                            Цитата Dimon-z @
                            всё равно такаяже фигня была...

                            я у себя откомпилил - все работает. по ОК окошко остается, по отмене - закрывается

                            Добавлено
                            то есть наоборот :)
                              Цитата quotter @
                              по ОК окошко остается, по отмене - закрывается

                              смешно, по-моему должно быть наоборот :)
                              Цитата Dimon-z @
                              где ошибка была?

                              в логических конструкциях. Просто, чтобы ты не нажал у тебя всё равно уничтожение окна
                              ExpandedWrap disabled
                                .ELSE
                                .IF uMsg==WM_DESTROY
                                invoke PostQuitMessage,NULL
                                .ELSEIF uMsg==WM_PAINT
                              поэтому нужно закрывать условные блоки правильно, и следить за логикой программы ;)

                              Добавлено
                              Цитата quotter @
                              то есть наоборот

                              :)
                                спасибо,Катька лови плюсиГ
                                  и здесь ещё
                                  Цитата quotter @
                                  MB_OK or MB_YESNO
                                  во первых не поняла почему или то или то :) а во-вторых они возвращают отличное значение от
                                  MB_OKCANCEL

                                  Добавлено
                                  Цитата Dimon-z @
                                  спасибо,Катька лови плюсиГ

                                  да ладно, не за что ;) обращайся ещё, чем смогу помогу :yes:
                                    Цитата Катька @
                                    во первых не поняла почему или то или то

                                    это я скопировал из поста Dimon-z, не обратив внимания
                                      Цитата quotter @
                                      это я скопировал из поста Dimon-z, не обратив внимания

                                      да я понимаю, просто он своё сообщение отредактировал, поэтому процетировала - твоё ;) не обращай, внимания ;)

                                      Добавлено
                                      В общем, пост 16 был полнстью адресован Димону :)
                                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                      0 пользователей:


                                      Рейтинг@Mail.ru
                                      [ Script execution time: 0,1034 ]   [ 15 queries used ]   [ Generated: 28.02.25, 21:11 GMT ]