|
5鱼币
一个简单的Hello win程序,编译后无法显示,但任务管理器里有进程,求大神看看- #include<windows.h>
- LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM);
- int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,
- PSTR szCmdLine,int iCmdShow)
- {
- static TCHAR szAppName[] = TEXT ("HelloWin");
- HWND hwnd;
- MSG msg;
- WNDCLASS wc;//窗口类
-
- //1.设计一个窗口类
- wc.style = 0;
- wc.lpfnWndProc = (WNDPROC)WndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = hInstance;
- wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
- wc.hCursor = LoadCursor(NULL,IDC_ARROW);
- wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = TEXT("MyWndClass");
- //2.注册窗口
- RegisterClass(&wc);
- hwnd = CreateWindow(szAppName,
- TEXT("The Hello Program"),
- WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT,
- CW_USEDEFAULT,
- CW_USEDEFAULT,
- CW_USEDEFAULT,
- NULL,
- NULL,
- hInstance,
- NULL);
- ShowWindow(hwnd,iCmdShow);
- UpdateWindow(hwnd);
- while (GetMessage (&msg,NULL,0,0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return msg.wParam;
- }
- LRESULT CALLBACK WndProc(HWND hwnd,
- UINT message,
- WPARAM wParam,
- LPARAM lParam)
- {
- HDC hdc;
- PAINTSTRUCT ps;
- RECT rect;
- switch (message)
- {
- case WM_CREATE:
- return 0;
- case WM_PAINT:
- hdc = BeginPaint(hwnd,&ps);
- GetClientRect(hwnd,&rect);
- DrawText(hdc,TEXT("Hello,window 98!"),-1,&rect,
- DT_SINGLELINE | DT_CENTER | DT_VCENTER);
- EndPaint (hwnd,&ps);
- return 0;
- case WM_DESTROY:
- PostQuitMessage (0);
- return 0;
- }
- return DefWindowProc (hwnd,message,wParam,lParam);
- }
复制代码
|
最佳答案
查看完整内容
因为你的下面createrWindow函数的第一个参数窗口类名写的是szAppName,而上面却是TEXT("MyWndClass"),两个地方不一致,所以导致程序运行时不知道该如何是好,程序已经运行,但是没有窗口显示,因为他不知道要创建哪个窗口,所以失败了!
|