#include <windows.h>
#include <stdio.h>
#include "stdlib.h"
LRESULT CALLBACK WinSunProc(
HWND hwnd, // 窗口句柄
UINT uMsg, // 消息id
WPARAM wParam, // 附加信息
LPARAM lParam // 附加信息
);
int WINAPI WinMain(
HINSTANCE hInstance, // 应用程序实例
HINSTANCE hPrevInstance, //
LPSTR lpCmdLine, // 命令行参数
int nCmdShow // 显示模式
)
{
//定义窗口类
WNDCLASS win;
win.style=CS_HREDRAW | CS_VREDRAW ;//类型窗口的样式 风格 水平重画和垂直重画
win.lpfnWndProc=WinSunProc;//窗口过程函数(回调函数)函数指针
win.cbClsExtra=0; // 一般为0 附加内存空间
win.cbWndExtra=0; // 一般为0 窗口附加内存
win.hbrBackground=(HBRUSH)GetStockObject(0);//背景画刷句柄
win.hCursor=LoadCursor(NULL,IDC_CROSS); //光标句柄
win.hIcon=LoadIcon(NULL,IDI_ERROR); //窗口类的图标句柄
win.hInstance=hInstance; //包含窗口过程的实例句柄
win.lpszClassName="11";//窗口类名
//win.lpszMenuName=LoadMenu(NULL,IDR_MENU1) ;//菜单资源名
win.lpszMenuName=NULL ;
/
//定义窗口类
RegisterClass(&win);//注册窗口类
HWND hwnd;
hwnd=CreateWindow("11","zhangyongfeng",WS_OVERLAPPEDWINDOW,
100,100,600,400,NULL,NULL,hInstance,NULL); //创建窗口
ShowWindow(hwnd,SW_SHOWNORMAL);//显示窗口
UpdateWindow(hwnd);//更新窗口
//消息获取 循环函数
//
/*
BOOL GetMessage(
LPMSG lpMsg, //消息结构指针
HWND hWnd, //从哪个窗口获得消息 NULL接受任何窗口的消息
UINT wMsgFilterMin, //消息最小值 通常为0
UINT wMsgFilterMax //消息最大值 2个都是0 表示接受所有消息
);
*/
MSG msg;
while(GetMessage(&msg,NULL,0,0))//接受所有的消息
{
TranslateMessage(&msg);//解析消息
DispatchMessage(&msg); //派发消息
}
/
return 0;
}
LRESULT CALLBACK WinSunProc( //回掉函数
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
int x,y;
long* pp= (long*) malloc( sizeof(100));
switch(uMsg)
{
//case WM_COMMAND:
// switch(wParam) {
// case :
// ;
// break;
//
// }
case WM_KEYDOWN:
switch(wParam)
{
case VK_F1:
MessageBox(hwnd,"F1 pressed","F1 pressed",MB_OK); break;
case VK_F2:
MessageBox(hwnd,"F2 pressed","F2 pressed",MB_OK); break;
//在这里可以添加更多按键的处理过程
case VK_ADD:
MessageBox(hwnd,"F2 pressed","F2 pressed",MB_OK); break;
}
break;
case WM_CHAR: //接受按键消息
SetTimer(hwnd,1,1000,0);
char szChar[20];
sprintf(szChar,"char is %c",wParam);
MessageBox(hwnd,szChar,"窗口标题",MB_YESNO);
break;
case WM_TIMER:
pp= (long*) malloc( sizeof(100));
// MessageBox(hwnd,"鼠标右键","鼠标右键",MB_OK);
//pp=fopen("C:/Documents and Settings/Administrator/桌面/zhy.txt","at+");
case WM_RBUTTONDOWN://接受鼠标右健消息
//MessageBox(hwnd,"鼠标右键","鼠标右键",MB_OK);
//break;
case WM_LBUTTONDOWN: //得到当鼠标左键按下时的鼠标位置
/*x = LOWORD(lParam);
y = HIWORD(lParam);
char info[20];
sprintf(info,"%d,%d",x,y);
MessageBox(hwnd,info,"鼠标左键",MB_OK);*/
case WM_PAINT://接受绘制消息
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,100,100,"手好痛阿。。 !",strlen("手好通阿。。 !"));
//LineTo(hDC,100,100);
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;
}