in a dialog box ... i dont know where to put the rutine: LoadAccelerators ... call GetMessageA ... call TranslateAccelerator ... maybe in WM_INITDIALOG ? .. thx in advanced
Posted on 2000-11-14 15:43:00 by unknow
ok let me give an example: .CODE main: invoke GetModuleHandle, NULL mov hInstance,eax invoke GetCommandLine invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT invoke ExitProcess, 0 WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD LOCAL wc:WNDCLASSEX LOCAL msg:MSG LOCAL hDlg:HWND mov wc.cbSize,SIZEOF WNDCLASSEX mov wc.style, CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc, OFFSET DlgProc mov wc.cbClsExtra,NULL mov wc.cbWndExtra,DLGWINDOWEXTRA push hInst pop wc.hInstance mov wc.hbrBackground,COLOR_BTNFACE+1 mov wc.lpszMenuName,OFFSET MenuName mov wc.lpszClassName,OFFSET ClassName invoke LoadIcon,NULL,IDI_APPLICATION mov wc.hIcon,eax mov wc.hIconSm,eax invoke LoadCursor,NULL,IDC_ARROW mov wc.hCursor,eax invoke RegisterClassEx, addr wc invoke CreateDialogParam,hInstance,Addr DlgName,NULL,NULL,NULL mov hDlg,eax INVOKE ShowWindow, hDlg,SW_SHOWNORMAL INVOKE UpdateWindow, hDlg invoke LoadAccelerators,hInstance,addr accell mov haccel,eax .WHILE TRUE INVOKE GetMessage, ADDR msg,NULL,0,0 .BREAK .IF (!eax) invoke TranslateAccelerator,hDlg,haccel,addr msg INVOKE TranslateMessage, ADDR msg INVOKE DispatchMessage, ADDR msg .ENDW mov eax,msg.wParam ret WinMain endp and the rest is just the same like with DialogBoxParamA cu
Posted on 2000-11-17 15:56:00 by StaRik
but i dont want to make: invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT invoke ExitProcess, 0 WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD .. I only want to make: invoke CreateDialogParam,hInstance,Addr DlgName,NULL,NULL,NULL .. .. is not possible?
Posted on 2000-11-19 19:36:00 by unknow
You can eliminate wc and RegisterClassEx, but you still need the main message loop. That's where you put TranslateAccelerator. Is there a .CONTINUE in MASM?

    .WHILE TRUE
       INVOKE GetMessage, ADDR msg,NULL,0,0
       .BREAK .IF (!eax)

       invoke TranslateAccelerator,hDlg,haccel,addr msg
       .CONTINUE .IF (eax != 0)

       INVOKE TranslateMessage, ADDR msg
       INVOKE DispatchMessage, ADDR msg
    .ENDW
Posted on 2001-03-06 00:01:00 by tank