pyy1234
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2005-12-23
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1199回复:2

编程调试

楼主#
更多 发布于:2002-04-11 15:39
源文件:
// simpwin.cpp : Defines the entry point for the application.
//

#include \"stdafx.h\"

#include \"e:\\vcwork\\simpwin\\simpwin.h\"

HINSTANCE hInst;
HWND hWndMain;
//函数WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
//作用:调用初始化函数,处理消息循环
int APIENTRY WinMain(
HINSTANCE hInstance,//当前实例句柄
HINSTANCE hPrevInstance,//前一个实例句柄
LPSTR lpCmdLine,//命令行字符串
int nCmdShow//窗口显示方式
)
{
MSG msg;
//初始化窗口数据,并注册窗口类
if(!InitApplication(hInstance))
return(FALSE);
//创建和显示窗口,对应用程序进行必要的初始化。
if(!InitInstance(hInstance,nCmdShow))
return(FALSE);
//进入消息循环;从应用程序消息队列中检取消息;
//当检取的消息是一条WM_QUIT消息时,就退出消息循环。
while(GetMessage(&msg,NULL,0,0))
{
//把虚拟键消息翻译为字符消息。
TranslateMessage(&msg);
//把消息分配到相应的窗口过程中。
DispatchMessage(&msg);
}
return(msg.wParam);
}

//函数InitApplication(HINSTANCE)
//用途:初始化窗口数据,并注册窗口类。
BOOL InitApplication(
HINSTANCE hInstance//当前实例句柄。
                    )  
{
WNDCLASS wcSimpwin;
//填写窗口类结构,使得其参数描述主窗口各方面的属性。
wcSimpwin.style =0;
wcSimpwin.lpfnWndProc =(WNDPROC) MainWndProc;
wcSimpwin.cbClsExtra =0;
wcSimpwin.cbWndExtra =0;
wcSimpwin.hInstance =hInstance;
wcSimpwin.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wcSimpwin.hCursor =LoadCursor(NULL,IDC_ARROW);
wcSimpwin.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
//wcSimpwin.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
wcSimpwin.lpszMenuName =NULL;
wcSimpwin.lpszClassName =\"SimpwinWCladd\";
//对窗口类进行注册
return(RegisterClass(&wcSimpwin));
}

//函数InitInstance(HINSTANCE,int)
//用途:保存实例句柄,并创建主窗口。
BOOL InitInstance(
 HINSTANCE hInstance,//实例句柄
 int nCmdShow//窗口显示方式
)
{
hInst=hInstance;
CreateWindow(
hWndMain=CreateWindow(
\"SimpwinWClass\",
\"我的窗口\",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);
//如果创建窗口失败,则返回FALSE
        if(!hWndMain)
return(FALSE);
//让窗口显示出来;并更新其客户区;最后返回TURE
ShowWindow(hWndMain,nCmdShow);
UpdateWindow(hWndMain);
return(TRUE);
}

//MainWndProc(HWND,UINT,WPARAM,LPARAM)
//用途:处理主窗口消息
LRESULT CALLBACK MainWndProc(
HWND hWnd,//窗口句柄
UINT message,//消息类型
WPARAM wParam,//消息附带信息
LPARAM lParam//消息附带信息
)
{
HDC hdc;
PAINTSTRUCT ps;
switch(message)
{
case WM_PAINT:hdc=BeginPaint(hWnd,&ps);
         TextOut(hdc,20,10,hello,lstrlen(hello));
         EndPaint(hWnd,&ps);
break;
case WM_DESTROY://消息:本窗口正将被销毁。
           //请求退出窗口和应用程序
           PostQuitMessage(0);
break;
    default:
   //调用默认窗口过程对未处理的消息进行必要的处理
   return(DefWindowProc(hWnd,message,wParam,lParam));
}
return(0);
}
头文件
//simpwin.h
LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE,int);
char *hello=\"窗口外的世界很精彩,窗口外的天地也很奇妙\";

以上程序运行时,窗口创建不成功:
CreateWindow()函数返回值为0;
请问如何改动才能创建窗口?????????!!!!!

最新喜欢:

crashedcarcrashe...
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-11 15:43
说话那么大声干什么?
在CreateWindow调用后面加一个DWORD err=GetLastError();然后看它的值是什么,就知道是什么原因出错了。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
AChen
驱动牛犊
驱动牛犊
  • 注册日期2002-02-25
  • 最后登录2002-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-12 11:49
粗心呀,你注册的窗口类名字是 SimpwinWCladd,

CreateWindow 是用的是 SimpwinWClass

你说如何能成功???
This posting is provided "AS IS" with no warranties, and confers no rights.
游客

返回顶部