Chinaunix首页 | 论坛 | 博客
  • 博客访问: 510468
  • 博文数量: 54
  • 博客积分: 5016
  • 博客等级: 大校
  • 技术积分: 954
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-23 11:00
文章分类

全部博文(54)

文章存档

2009年(5)

2008年(49)

我的朋友

分类: LINUX

2009-02-28 16:01:35

Author:wmmwang(unc,王敏敏)
Enviroment:fedora8.0
MiniGUI:1.3.3
Compiler:arm-linux-gcc 3.4.1
Date:2009.02.28

问题:

    程序中在MSG_CREATE消息中执行到GetClient(hMainwnd)这句话崩溃。

原因:

    minigui中创建主窗口,使用的是CreateMainWindow()函数。这个函数有个返回值,就是所创建窗口的句柄。
    我的程序,MSG_CREATE消息中GetClient(hMainwnd)这个函数里的参数,使用的就是通过hMainwnd=CreateMainWindow()得到的值。
    但是,通过printf调试,以及查看minigui1.3.3源码,发现CreateMainWindow()返回产生的值要在MSG_CREATE之后,也就是说,我执行GetClient(hMainwnd)的时候,hMainwnd里还没有主窗口的句柄呢!!

解决:
    老实点,在GetClient()这个函数的参数位置填上回掉函数传进来的句柄吧:GetClient(hWnd)
阅读(1478) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-07-11 23:53:28

和我遇到的是一样的问题啊,呵呵。其实看看他的源码就会发现,在CreateMainWindow返回前发送了MSG_CREATE到pWin,也就是CreateMainWindow函数中比较靠前的代码创建的窗口。在这个消息处理完后才返回。