当前位置: 网学 > 编程文档 > 汇编语言 > 正文

真正意义上的前台窗口切换

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
bsp; ;注意此处调用SwitchToThisWindow!
                push  TRUE
                push  hWnd
                call  FuAddr
        .else
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
        .endif
xor eax,eax
ret
_ProcWinMain endp

_WinMain proc
local @stWndClass:WNDCLASSEX
local @stMsg:MSG
  invoke GetModuleHandle,NULL
mov hInstance,eax
        invoke   GetModuleHandle,addr szUser32    ;得到地址空间内user32.dll的模块句柄;
        mov   hUser32,eax
        invoke   GetProcAddress,hUser32,addr szFuName   ;得到SwitchToThisWindow的地址;
        mov   FuAddr,eax
invoke RtlZeroMemory,addr @stWndClass,sizeof @stWndClass
invoke LoadCursor,0,IDC_ARROW
mov @stWndClass.hCursor,eax
push hInstance
pop @stWndClass.hInstance
mov @stWndClass.cbSize,sizeof WNDCLASSEX
mov @stWndClass.style,CS_HREDRAW or CS_VREDRAW
mov @stWndClass.lpfnWndProc,offset _ProcWinMain
mov @stWndClass.hbrBackground,COLOR_WINDOW + 1
mov @stWndClass.lpszClassName,offset szClassName
invoke RegisterClassEx,addr @stWndClass

invoke CreateWindowEx,WS_EX_CLIENTEDGE,offset szClassName,offset szCaptionMain,\
WS_OVERLAPPEDWINDOW,150,150,600,400,NULL,NULL,hInstance,NULL
mov hWinMain,eax
invoke ShowWindow,hWinMain,SW_SHOWNORMAL
invoke UpdateWindow,hWinMain
        invoke  SetTimer,hWinMain,1,5000,NULL       ;设置一个计时器,每五秒钟调用一次

.while TRUE
invoke GetMessage,addr @stMsg,NULL,0,0
.break .if eax == 0
invoke TranslateMessage,addr @stMsg
invoke DispatchMessage,addr @stMsg
.endw
ret
_WinMain endp

start:
call _WinMain
invoke ExitProcess,NULL
end start

  • 下一篇资讯: 检测DOS程序执行的目录
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号