C++ 2005创建窗口,请问我这样 有什么错吗?

[复制链接]
查看11 | 回复4 | 2011-2-16 16:38:21 | 显示全部楼层 |阅读模式
#include
LPESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
break;
}
0 return DefWindowProc(hWnd,msg,wParam,lParam);
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE prevhInst,LPSTR cmd,int show)
{
WNDCLASSEX wc={sizeof(WNDCLASSEX),CS_CLASSDC,MsgProc,0,0,hInst,NULL,NULL,NULL,NULL,"AppClass",NULL};
RegisterClassEx(&wc);
HWND hWnd = CreateWindow("AppClass","Window Title", WS_OVERLAPPEDWINDOW,100,100,640,480,NULL,NULL,hInst,NULL);
ShowWindow(hWnd,SW_SHOWDEFAULT);
UpdateWindow(hWnd);
MSG msg;
ZeroMemory(&msg,sizeof(msg));
while(msg.message!=WM_QUIT)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
//Do something to the screen.
}
}
UnregisterClass("AppClass",wc.hInstance);
return 0;
}
//虽然有点长但请您帮我耐心找找错。谢谢。。为什么错误连篇呢?我只是建立了一个消息循环0
还是不行呀。。还是有三个错误。什么类型不对。。请问怎么回事?或者说我如果想要创建一个窗口请问怎么写?0

回复

使用道具 举报

千问 | 2011-2-16 16:38:21 | 显示全部楼层
1. 项目不能是unicode的,看你的写法是想使用:多字节。2. LPESULT =》 LRESULT, 可能是不小心输错了。3. return DefWindowProc(hWnd,msg,wParam,lParam); 前面多了一个0, 这三个改完,编译OK,祝你好运!
回复

使用道具 举报

千问 | 2011-2-16 16:38:21 | 显示全部楼层
//你试试,能运行,但显示还是有些问题!#includeLRESULT CALLBACK MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch(msg) { case WM_DESTROY:PostQuitMessage(0)
回复

使用道具 举报

千问 | 2011-2-16 16:38:21 | 显示全部楼层
错误很多啊,我只说说switch(msg) { case WM_DESTROY:PostQuitMessage(0);return 0;break; } 这里的break;还会执行到吗?前面的return 0;是什么意思,你懂的.另外你没吧WM_QUIT消息也列出来,等等不多说了
回复

使用道具 举报

千问 | 2011-2-16 16:38:21 | 显示全部楼层
打酱油路过,这个 return 前怎么有个 0?另外项目类型应该是 win32,不是 console。MsgProc() {0 return DefWindowProc(hWnd,msg,wParam,lParam);}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行