VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用CreateWindow创建窗口时的注意事项

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

5.1前,为了模拟一个程序的测试,从那个程序里copy出来一段代码,功能就是调用CreateWindow创建一个窗口;但是怎么也通过不了,CreateWindow老是返回NULL;查了MSDN,上面的代码也基本一样,没找到任何问题,郁闷的要命。
STDMETHODIMP CSetReady::Init(  long hInst)

  HWND s_wndPump = NULL; 
  
 WNDCLASS wc;
 wc.style = 0;
 wc.lpfnWndProc = PumpWndProc;
 wc.cbClsExtra = wc.cbWndExtra = 0;
 wc.hInstance = (HINSTANCE)hInst;
 wc.hIcon = NULL;
 wc.hCursor = NULL;
 wc.hbrBackground = NULL;
 wc.lpszMenuName = NULL;
 wc.lpszClassName = _T("Test_Window");
 
 RegisterClass(&wc);
 s_wndPump = CreateWindow(wc.lpszClassName, NULL,
                                                         WS_DISABLED, 0, 0, 0, 0, NULL, NULL, wc.hInstance, NULL);
   
 return S_OK;
}
原来问题出在传给WNDCLASS的窗口处理函数PumpWndProc上;调用CreateWindow时,CreateWindow会调用一次PumpWndProc,并且要求PumpWndProc返回TRUE。由于代码是copy过来的所以调试CreateWindow,没注意PumpWndProc的返回是什么,造成一直在CSetReady::Init里找原因,白忙活了半天。


相关文章

相关软件