Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2011, 12:46   #1
Ibanez Wizard
Адский тунеядец
Форумчанин
 
Аватар для Ibanez Wizard
 
Регистрация: 11.06.2010
Сообщений: 164
По умолчанию Show Window возвращает нуль.

Написал окно, на основе статей Icezeliona. Посмотрел в отладчике и увидел, что ShowWindow возвращает нуль. Так должно быть? Потому что сама программа работает.


Код:
.386
.model flat, stdcall
option casemap : none
include\masm32\include\kernel32.inc
include\masm32\include\windows.inc
include\masm32\include\user32.inc
includelib\masm32\lib\kernel32.lib
includelib\masm32\lib\user32.lib

WinMain proto : DWORD, :DWORD, :DWORD, :DWORD

.data?
hInstance HINSTANCE ?
CmdLine LPSTR ?

.data
ClassName db "Window", 0
AppName db "Window", 0

.code
start:

invoke GetModuleHandle, NULL
mov hInstance, eax
invoke GetCommandLine
mov CmdLine, eax
invoke WinMain, hInstance, NULL, CmdLine, SW_SHOWDEFAULT
invoke ExitProcess, eax

WinMain proc hInst:HINSTANCE, hPrevInst:HINSTANCE, lCmdLine : LPSTR, CmdShow:DWORD
LOCAL wc : WNDCLASSEX
LOCAL msg : MSG
LOCAL hwnd : HWND

mov wc.cbSize, sizeof WNDCLASSEX
mov wc.cbClsExtra, NULL
mov wc.cbWndExtra, NULL
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.hbrBackground, COLOR_WINDOW+1
mov wc.lpfnWndProc, offset WndProc
mov wc.lpszMenuName, NULL
mov wc.lpszClassName, offset ClassName
push hInstance
pop wc.hInstance
invoke LoadCursor, NULL, IDC_ARROW
mov wc.hCursor, eax
invoke LoadIcon, NULL, IDI_APPLICATION
mov wc.hIcon, eax
mov wc.hIconSm, eax

invoke RegisterClassEx, addr wc
invoke CreateWindowEx, NULL, addr ClassName, addr AppName, 
                    WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
					CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL
mov hwnd, eax
invoke UpdateWindow, hwnd
invoke ShowWindow, hwnd, SW_SHOWNORMAL

.while TRUE
invoke GetMessage, addr msg, 0, 0, 0
.break .if(!eax)
invoke TranslateMessage, addr msg
invoke DispatchMessage, addr msg 
.endw
mov eax, msg.wParam
ret

WinMain endp

WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.if uMsg==WM_DESTROY
invoke PostQuitMessage, NULL
.else
invoke DefWindowProc, hWnd, uMsg, wParam, lParam
ret
.endif
xor eax, eax
ret
WndProc endp
end start
Ibanez Wizard вне форума Ответить с цитированием
Старый 26.03.2011, 23:39   #2
litrovith
Пользователь
 
Регистрация: 15.07.2008
Сообщений: 28
По умолчанию

ShowWindow
Return Values

If the window was previously visible, the return value is nonzero.
If the window was previously hidden, the return value is zero.
litrovith вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно делить на нуль? Utkin Свободное общение 55 21.12.2010 13:01
Деление на нуль при запуске Pababop Паскаль, Turbo Pascal, PascalABC.NET 0 12.12.2010 16:43
window.document.write и window.alert() Syltan JavaScript, Ajax 0 26.08.2010 21:32
как поставить ограничение на число нуль а не на символ нуль??? Dr.Swat Помощь студентам 0 12.06.2010 20:35
Запрос возвращает пустую таблицу, если один из подзаросов возвращает пустую таблицу ArtInt SQL, базы данных 9 12.05.2010 15:40