首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

小弟我照书写的最简单窗口程序编译连接没错,但运行是未响应

2012-02-03 
我照书写的最简单窗口程序编译连接没错,但运行是未响应代码如下::::#include windows.hLRESULT CALLBACK

我照书写的最简单窗口程序编译连接没错,但运行是未响应
代码如下::::
#include <windows.h>
LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPSTR lpCmdLine,
  int nCmdShow)
{
char szClassName[]="MainWClass";
WNDCLASSEX wndclass;
//用描述窗口的参数填充WNDCLASSEX结构
wndclass.cbSize=sizeof(wndclass);
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=MainWndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=::LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=::LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)::GetStockObject(WHITE_BRUSH);
wndclass.lpszClassName=NULL;
wndclass.lpszClassName=szClassName;
wndclass.hIconSm=NULL;
//注册这个窗口类
::RegisterClassEx(&wndclass);
//创建主窗口
HWND hwnd=::CreateWindowEx(0,
szClassName,
"adfsgdfgtrsfadsfae",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
if(hwnd==NULL)
{
::MessageBox(NULL,"nihao","wrong",MB_OK);
return -1;
}
//显示窗口,刷新窗口客户区
::ShowWindow(hwnd,nCmdShow);
::UpdateWindow(hwnd);
//从消息队列中取出消息,交给窗口函数处理,直到GetMessage返回FALSE,结束消息循环
MSG msg;
while(::GetMessage(&msg,NULL,0,0))
{
//转化键盘消息
::TranslateMessage(&msg);
//将消息发送到相应的窗口函数
::DispatchMessage(&msg);
}
//当GetMssage返回FALSE时程序结束
return msg.wParam;
}
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM IParam)
{
char szText[]="i don't like it";
switch(message)
{
case WM_PAINT://窗口客户区需要重画
{
HDC hdc;
PAINTSTRUCT ps;
//使无效的客户区变有效,并取得设备环境句柄
hdc=::BeginPaint(hwnd,&ps);
//显示文字
::TextOut(hdc,10,10,szText,strlen(szText));
::EndPaint(hwnd,&ps);
return 0;
}
case WM_DESTROY://正在销毁窗口
//向消息队列投递一个WM_QUIT消息,促使GetMessage函数返回0.结束消息循环
::PostQuitMessage(0);
return 0;
}
//将我们不处理的消息交给系统做默认处理
return ::DefWindowProc(hwnd,message,wParam,IParam);
}


运行后出现停止工作如下
问题签名:
  问题事件名称:APPCRASH
  应用程序名:04win32demo.exe
  应用程序版本:0.0.0.0
  应用程序时间戳:4efbc07d
  故障模块名称:USER32.dll
  故障模块版本:6.1.7601.17514
  故障模块时间戳:4ce7ba26
  异常代码:c0000005
  异常偏移:0000c491
  OS 版本:6.1.7601.2.1.0.256.1
  区域设置 ID:2052
  其他信息 1:ba35
  其他信息 2:ba35e151c71b2e29d63291f2012ada1f
  其他信息 3:9185
  其他信息 4:91857e02edbb47ffe375444c58ff3089

这代码是我亲手写的,写了半个小时居然不对。。。。。求解释啊啊啊~

[解决办法]
wndclass.lpszClassName=NULL;
wndclass.lpszClassName=szClassName;
-->
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szClassName;

热点排行