Created
January 28, 2014 10:06
-
-
Save sinitcin/8665034 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
section '.data' data readable writable | |
class.form db 'STORAGE',0 | |
title.form db 'Главное окно',0 | |
hinstance dd ? | |
rc RECT | |
msg MSG | |
wc WNDCLASS | |
section '.code' code readable executable | |
start: | |
; инициализируем структуру WNDCLASS и регистрируем его, а дальше задаём | |
; Размеры окна | |
mov [rc.right],500 | |
mov [rc.bottom],390 | |
; Выравниваем окно по Х координате | |
aligne_x: | |
invoke GetSystemMetrics,SM_CXSCREEN ; Узнаем расширение Х экрана | |
mov ecx, eax | |
shr ecx, 1 ; Делим Х на 2 | |
mov eax, [rc.right] | |
shr eax, 1 ; Делим ширину формы на 2 | |
sub ecx, eax ; Отнимаем от половины ширины экрана половину ширины окна | |
mov [rc.left], ecx | |
; Выравниваем окно по Y координате | |
aligne_y: | |
invoke GetSystemMetrics,SM_CYSCREEN ; Узнаем расширение Y экрана | |
mov ecx, eax | |
shr ecx, 1 ; Делим Y на 2 | |
mov eax, [rc.bottom] | |
shr eax, 1 ; Делим высоту формы на 2 | |
sub ecx, eax ; Естественно отнимаем от половины высоты экрана половину высоты окна | |
mov [rc.top], ecx | |
invoke CreateWindowEx, 0, class.form, title.form, WS_VISIBLE+WS_OVERLAPPEDWINDOW, [rc.left], [rc.top], [rc.right], [rc.bottom], 0, 0, [hinstance], 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
И не сомненно меня бесит в первую очередь когда главное окно приложения создается с константами CW_USEDEFAULT - это просто бред, окно появляется в любом месте экрана по принципу фазы луны 0_О Самый простой вариант — это исправить вписать следующий код: