win32项目有进程但没有显示窗口

jeepzn 2011-03-07 06:30:55
#include <Windows.h>

LRESULT CALLBACK WindowProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
WNDCLASS cls;
cls.cbClsExtra =0;
cls.cbWndExtra=0;
cls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
cls.hCursor=LoadCursor(NULL,IDC_CROSS);
cls.hInstance =hInstance;
cls.lpfnWndProc =WindowProc;
cls.lpszClassName ="classname";
cls.lpszMenuName =NULL;
cls.style=CS_HREDRAW|CS_VREDRAW;
RegisterClass(&cls);

HWND hwnd;
hwnd=CreateWindow("classname","dfvgregregregregre",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);

MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam ;

}

LRESULT CALLBACK WindowProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(uMsg)
{
case WM_CHAR:
break;
case WM_LBUTTONDOWN:
break;
case WM_PAINT:
HDC hdc;
PAINTSTRUCT ps;
hdc=BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"",0);
EndPaint(hwnd,&ps);

break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"确定?","message",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}


运行后有进程但没有窗口显示,vs2010
...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeepzn 2011-03-07
  • 打赏
  • 举报
回复
问题解决了,谢谢
cranium 2011-03-07
  • 打赏
  • 举报
回复
另外最好使用Unicode编译工程。

cranium 2011-03-07
  • 打赏
  • 举报
回复
添加这个cls.hIcon=NULL;

因为是局部变量,cls结构没有清零,hIcon成员值不确定,注册窗口类的时候估计就失败了。
jeepzn 2011-03-07
  • 打赏
  • 举报
回复
没有帮助,还是不知道为什么
bdmh 2011-03-07
  • 打赏
  • 举报
回复
不知下面链接是否有帮助
http://topic.csdn.net/t/20060907/16/5006164.html

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧