就是一个简单的单击菜单后显示对话框,但是显示速度实在是太慢了,这是怎么回事啊??

解决方案 »

  1.   

    ;**************************************************************************************************
    ;规则对话框窗口过程
    _ProcDlgLow proc uses ebx esi edi hWnd,wMsg,wParam,lParam

    mov eax,wMsg
    .if eax == WM_CLOSE
    invoke EndDialog,hWnd,NULL
    .elseif eax == WM_INITDIALOG
    invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,hIcon
    invoke UpdateWindow,hWinMain
    .elseif
    mov eax,FALSE
    ret
    .endif mov eax,TRUE
    ret
    _ProcDlgLow endp
    这是代码
      

  2.   


    用DialogBoxParam创建吧
    ;菜单响应
    Case IDM_DIALOG
         invoke DialogBoxParam, hInstance, IDD_DLGMAIN, hWin, DialogProc, NULL
    ;窗口过程
    ialogProc proc hwndDlg:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD   Switch uMsg
         Case WM_CLOSE
           invoke EndDialog, hwndDlg, NULL
         Case  WM_INITDIALOG
           invoke SendMessage,hwndDlg,WM_SETICON,ICON_BIG,hIcon
           invoke GetParent, hwndDlg
           invoke UpdateWindow,eax
       Endsw
       
       xor eax,eax
       ret
    DialogProc endp;对话框资源定义
    #define  IDD_DLGMAIN 101IDD_DLGMAIN DIALOGEX 0, 0, 316, 183
    STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
    CAPTION "Dialog"
    FONT 8, "MS Shell Dlg", 400, 0, 0x1
    BEGIN
       
    END;
    ICON_LARGE equ 700
    IDM_DIALOG equ 1011
    IDD_DLGMAIN equ 101
      

  3.   

    编译器为masm win7下运行正常
      

  4.   

    从代码上没看出问题,检查下其他的代码吧。
    另外可以修改下代码看看效果如何,不处理任何消息:ProcDlgLow proc uses ebx esi edi hWnd,wMsg,wParam,lParammov eax,FALSE
    ret_ProcDlgLow endp
      

  5.   

    我郁闷的是,invoke MessageBox,NULL,NULL,NULL,NULL 都会卡下再跳出来对话框……