vc6.0中,创建一个win32应用程序的步骤总结如下:
1、编写WinMain函数
2、设计窗口类(WNDCLASS)
3、注册窗口类
4、创建窗口
5、显示并更新窗口
6、编写消息循环
7、编写窗口过程函数
#include<windows.h>
#include<stdio.h>
LRESULT CALLBACK WndProc(HWND hMainWnd,UINT message,WPARAM wParam,LPARAM lparam);
char szClassName[]="windowscalss1";//窗口结构体名称
char szAppTitle[]="windows API";
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdParam,INT nCmdShow) //WinMain()函数定义
{
HWND hMainWnd;//窗口句柄
MSG msg;
WNDCLASS myWC;
if(!hPrevInstance)
{
myWC.style=CS_HREDRAW|CS_VREDRAW;
myWC.lpfnWndProc=WndProc;//本窗口的消息处理函数
myWC.cbClsExtra=0;
myWC.cbWndExtra=0;
myWC.hInstance=hInstance;//当前应用程序的实例句柄
myWC.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口图标
myWC.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口光标
myWC.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景颜色
myWC.lpszClassName=szClassName;
myWC.lpszMenuName=NULL;
RegisterClass(&myWC);//注册窗口
}
hMainWnd=CreateWindow(szClassName,szAppTitle,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,600,400,NULL,NULL,hInstance,NULL);
ShowWindow(hMainWnd,SW_SHOWNORMAL);
UpdateWindow(hMainWnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hMainWnd,UINT message,WPARAM wParam,LPARAM lparam)//窗口函数的定义
{
char messageleft[]="the left button";
char messageright[]="the right button";
switch(message)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"char code is %c",wParam);
MessageBox(hMainWnd,szChar,"char",0);
break;
case WM_RBUTTONDOWN:
{
MessageBox(GetFocus(),messageright,"RButtonPushDown",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_LBUTTONDOWN:
{
MessageBox(GetFocus(),messageleft,"LButtonPushDown",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
default:
break;
}
return DefWindowProc(hMainWnd,message,wParam,lparam);
}