读书人

为什么这个简单的win32应用程序运行窗

发布时间: 2013-10-27 15:21:50 作者: rapoo

为什么这个简单的win32应用程序运行窗口显示不出来,大神帮忙看看代码,哪里错了
#include<Windows.h>
#include<stdio.h>
#include<tchar.h>

LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
static TCHAR szWindowClass[] = _T("weixin2003");
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
WNDCLASS wndcls;
wndcls.cbClsExtra = 0;
wndcls.cbClsExtra = 0;
wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndcls.hCursor = LoadCursor(NULL, IDC_ARROW);
wndcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndcls.hInstance = hInstance;
wndcls.lpfnWndProc = WinSunProc;
wndcls.lpszClassName = szWindowClass;
wndcls.lpszMenuName = NULL;
wndcls.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);

HWND hwnd;
hwnd = CreateWindow(
szWindowClass,
TEXT("first win32 App"),
WS_OVERLAPPEDWINDOW,
200,
100,
600,
400,
NULL,
NULL,
hInstance,
NULL
);
ShowWindow(hwnd,SW_NORMAL);
UpdateWindow(hwnd);

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

LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf_s(szChar,"char is %d", wParam);
MessageBoxA(hwnd,szChar,"win32 App", MB_OK);
break;
case WM_LBUTTONDOWN:
MessageBoxA(hwnd,"mouse clicked","win32 App",0);
HDC hdc;
hdc = GetDC(hwnd);
TextOutA(hdc,0,50,"计算机编程语言培训", strlen("计算机编程语言培训"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC = BeginPaint(hwnd,&ps);
TextOutA(hDC,0,0,"编程培训",strlen("编程培训"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES == MessageBoxA(hwnd,"是否真的关闭","win32 App", MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}

读书人网 >VC/MFC

热点推荐