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

孙鑫老师 WinMain 无法显示窗口,请帮忙解答,该如何处理

2012-05-24 
孙鑫老师 WinMain 无法显示窗口,请帮忙解答#include windows.h#include stdio.h#include tchar.hLRE

孙鑫老师 WinMain 无法显示窗口,请帮忙解答
#include <windows.h>
#include <stdio.h>
#include <tchar.h> 

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

int WINAPI WinMain(  
HINSTANCE hInstance,
HINSTANCE hPrevInstance, 
LPTSTR lpCmdLine,  
int nShowCmd
)
{

WNDCLASS wndclass;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hbrBackground =(HBRUSH)GetStockObject(BLACK_BRUSH);
wndclass.hCursor = LoadCursor(NULL,IDC_HAND);
wndclass.hIcon = LoadIcon(NULL,IDI_INFORMATION);
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc = CallBack;
wndclass.lpszClassName =_T("WinMain");
wndclass.lpszMenuName=NULL;
wndclass.style=CS_HREDRAW|CS_VREDRAW;


RegisterClass(&wndclass);
HWND hwnd;
hwnd=CreateWindow(_T("WinMain"),_T("第一个WINAPI窗口"),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 0;
}

LRESULT CALLBACK CallBack(
HWND hwnd,
  UINT uMsg,
  WPARAM wParam,
  LPARAM lParam
)
{
switch(uMsg)
{
case WM_CHAR:
char szChar[20];
printf(szChar,_T("the char is d%"),wParam);
MessageBox(hwnd,szChar,"按键虚拟键码",0);
break;
case WM_LBUTTONDBLCLK:
HDC hdc;
hdc = GetDC (hwnd);
TextOut(hdc,0,50,_T("C++ WinAPI编程"),strlen("C++ WinAPI编程"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDc;
PAINTSTRUCT ps;
hDc=BeginPaint(hwnd,&ps);
TextOut (hDc,0,0,_T("C++ WinAPI编程"),strlen(_T("C++ WinAPI编程")));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES ==MessageBox(hwnd,"是否关闭窗口?","关闭提示",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;

}



代码如上,按F5可以开始运行,但是窗口不显示。另外F11不能逐步调试,请各位大侠帮忙看一下怎么回事,谢谢!!!!

[解决办法]
怀疑 lz 的编译器有问题
[解决办法]
VC6, VC8 编译都没问题,出了代码本身的缺陷

复制的 lz 的代码

热点排行