几个Win32ASM的问题请教.

robter5611 2003-06-27 07:26:44
1.为什么不能显示窗口?
   我写的一个最简单的窗口程序,就是显示一个空的窗口,可以做为模板使用.编译的时候没有任何错误,自己反复检查都觉得是100%正确的.但是运行的时候窗口不能显示出来.由于代码不能贴出来,请各位老大帮帮忙,一般这中情况的原因有哪些?

2.有如下CODE.
QuitProc proc
invoke DestroyWindow,hWinMain
invoke PostQuitMessage,NULL
QuitProc endp
...
;窗口过程
;
...
.elseif eax == WM_CLOSE
call QuitProc
.elseif eax == WM_COMMAND
mov eax,wParam
.if ax == FILE_QUIT ;File->Exit菜单
call QuitProc
.........

就这样,编译的时候没有错.运行时,如果通过关闭按钮或系统菜单关闭窗口也不会出错,但是通过 File->Exit就会出错.把QuitProc的代码Copy到
.if ax == FILE_QUIT处也就OK.请问各位老大,这是为什么?

3. 这句代码,
invoke GetMessage, addr @stMsg,NULL,0,0
获取本程序所有窗口的消息.
  改成
invoke GetMessage,addr @stMsg,hWinMain,0,0
只获取hWinMain窗口的消息(程序只有一个窗口),也能通过编译,但是关闭窗口之后,进程不会自动退出,而且占用了99%的CPU资源.看样子应该是进入了无限的死消息循环.请问各位老大,这是为什么?怎么解决?

4.怎么使用非位图作为窗口背景?
   以上四个问题,请各位老大多多指教!
   多谢!
   只有三十分了.不好意思.








...全文
62 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫郢剑侠 2003-06-29
  • 打赏
  • 举报
回复
1 如果你使用了资源文件, 要确保资源文件被正确的编译和连接。
如果没有使用资源文件,请把你的程序贴上来看看。

2 CALL也还要返回呀!所以改为:

.elseif eax == WM_COMMAND
mov eax,wParam
.if ax == FILE_QUIT ;File->Exit菜单
invoke PostMessage, hWnd, WM_CLOSE....

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧