Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > установить поверх остальных окон


Автор: piritus 28.2.2007, 12:08
какие парамерты нужно дать окну или диалогу, что бы оно
всегда было поверх остальных окон?

Автор: anwe 28.2.2007, 14:34
piritus, а как на счет msdn и там посмотреть?

Автор: Ant 28.2.2007, 14:40
Создать окно со стилем WS_EX_TOPMOST = 00008h

Добавлено @ 14:43 
Код


; Template for program using standard Win32 headers

format PE GUI 4.0
entry start

include 'win32w.inc'

section '.data' data readable writeable

  _class TCHAR 'FASMWIN32',0
  _title TCHAR 'Win32 program template',0
  _error TCHAR 'Startup failed.',0

  wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,COLOR_BTNFACE+1,NULL,_class

  msg MSG

section '.code' code readable executable

  start:

    invoke    GetModuleHandle,0
    mov    [wc.hInstance],eax
    invoke    LoadIcon,0,IDI_APPLICATION
    mov    [wc.hIcon],eax
    invoke    LoadCursor,0,IDC_ARROW
    mov    [wc.hCursor],eax
    invoke    RegisterClass,wc
    test    eax,eax
    jz    error

    invoke    CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_DLGFRAME+WS_SYSMENU + WS_EX_TOPMOST,128,128,256,192,NULL,NULL,[wc.hInstance],NULL] ; вот так примерно
    test    eax,eax
    jz    error

  msg_loop:
    invoke    GetMessage,msg,NULL,0,0
    cmp    eax,1
    jb    end_loop
    jne    msg_loop
    invoke    TranslateMessage,msg
    invoke    DispatchMessage,msg
    jmp    msg_loop

  error:
    invoke    MessageBox,NULL,_error,NULL,MB_ICONERROR+MB_OK

  end_loop:
    invoke    ExitProcess,[msg.wParam]

proc WindowProc hwnd,wmsg,wparam,lparam
    push    ebx esi edi
    cmp    [wmsg],WM_DESTROY
    je    .wmdestroy
  .defwndproc:
    invoke    DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
    jmp    .finish
  .wmdestroy:
    invoke    PostQuitMessage,0
    xor    eax,eax
  .finish:
    pop    edi esi ebx
    ret
endp

section '.idata' import data readable writeable

  library kernel32,'KERNEL32.DLL',\
      user32,'USER32.DLL'

  include 'api\kernel32.inc'
  include 'api\user32.inc'


Автор: piritus 28.2.2007, 16:13
anwe, а где я там посмотрю?
я не умею составлять фразы на английском, только еле-еле слова перевожу...

Ant, спасибо

Автор: anwe 28.2.2007, 18:55
Да, но это простое окно. Окно же диалога - как модальное системное с параметром DS_SYSMODAL.

Автор: piritus 1.3.2007, 14:38
благодарю за уточнение, anwe

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)