Вопрос по FASM

Тема в разделе "WASM.BEGINNERS", создана пользователем GeNeZiS, 13 май 2008.

  1. Loginanton

    Loginanton New Member

    Публикаций:
    0
    Регистрация:
    8 май 2008
    Сообщения:
    74
    такой вопрос: как определять нада ставить квадратные скобочки или нет? Пример:
    Код (Text):
    1. invoke ShowWindow, [_hwnd], SW_SHOW
     
  2. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    Loginanton
    Пишу на MASM, но предположительно в зависимости от того, интересует ли Вас смещение переменной _hwnd или значение соответствующей ячейки памяти
     
  3. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    [_hwnd] значение переменной
    _hwnd адрес переменной
     
  4. Loginanton

    Loginanton New Member

    Публикаций:
    0
    Регистрация:
    8 май 2008
    Сообщения:
    74
    Я немного другое хотел узнать. Я хотел чтоб мне обьяснили как определять нужно ли ставить скобки или нет, или подсказали где почитать на эту тему
     
  5. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Нужно ставить, так как

    BOOL ShowWindow(
    HWND hWnd,
    int nCmdShow );

    тоесть надо передавать значение hWnd а не указатель.
     
  6. Loginanton

    Loginanton New Member

    Публикаций:
    0
    Регистрация:
    8 май 2008
    Сообщения:
    74
    Люди а как сделать чтоб окно моё по середине экрана было? Я обратил внимание что это от хендла зависит
     
  7. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    1. SetWindowPos

    Код (Text):
    1. BOOL SetWindowPos(
    2.  
    3.     HWND hWnd,  // описатель(хендл) окна
    4.     HWND hWndInsertAfter,   // расположение
    5.     int X,  // горизонталь
    6.     int Y,  // вертикаль
    7.     int cx, // ширина
    8.     int cy, // высота
    9.     UINT uFlags     // флаги
    10.    );
    2. CreateWindowEx

    Код (Text):
    1. HWND CreateWindowEx(
    2.  
    3.     DWORD dwExStyle,    // расширеный стиль окна
    4.     ....
    5.     ....
    6.     ....
    7.    );
    invoke CreateWindowEx, WS_EX_WINDOWEDGE or WS_EX_TOPMOST...
     
  8. Loginanton

    Loginanton New Member

    Публикаций:
    0
    Регистрация:
    8 май 2008
    Сообщения:
    74
    нет ну вот для CreateWindowEx есть параметры X и Y, для которых можно написать значение CW_USEDEFAULT, которое вроде и должно выставлять окно по центру, а оно, у меня к примеру, не по центру
     
  9. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Код (Text):
    1. TopXY proc wDim:DWORD, sDim:DWORD
    2.     shr sDim, 1      ; divide screen dimension by 2
    3.     shr wDim, 1      ; divide window dimension by 2
    4.     mov eax, wDim    ; copy window dimension into eax
    5.     sub sDim, eax    ; sub half win dimension from half screen dimension
    6.     mov eax,sDim
    7.     ret
    8. TopXY endp
    9.  
    10. RegClass proc x:dword,y:dword,wnd:dword,ClassName:dword,AppName:dword
    11. ....
    12. LOCAL Wtx  :dword
    13. LOCAL Wty  :dword
    14. ......
    15.  
    16. invoke  GetSystemMetrics,SM_CXSCREEN
    17. invoke  TopXY,x,eax
    18. mov Wtx, eax
    19.    
    20. invoke  GetSystemMetrics,SM_CYSCREEN
    21. invoke  TopXY,y,eax
    22. mov Wty, eax
    23.  
    24. invoke  CreateWindowEx,WS_EX_OVERLAPPEDWINDOW or WS_TILED,ClassName,AppName,\
    25.             WS_OVERLAPPED or WS_SYSMENU,Wtx,Wty,x,y,0,0,hInstance,0
    x,y это ширина и высота окна
    Wtx,Wty положение на экране
     
  10. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    для диалога достаточно стиля DS_CENTER - пусть система сама парится