#include <Windows.h>
#include <stdio.h>
LRESULT CALLBACK winSunpro(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
int WINAPI WinMain( __in HINSTANCE hInstance,
__in_opt HINSTANCE hPrevInstance,
__in_opt LPSTR lpCmdLine,
__in int nShowCmd )
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;//注册窗口类时,让系统为WNDCLASS结构分配合追加一定字节数的附加内存空间,称为类附加内存,右属于这种窗口类的所有窗口共享,存储类的附加信息
wndcls.cbWndExtra=0;//窗口内部数据结构,窗口附加内存,创建窗口的时候
wndcls.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);//窗口类的背景画刷句柄 GetStockObject()得到系统标准画刷
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);//窗口类的光标句柄
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);//窗口类的图标句柄
wndcls.hInstance=hInstance;//窗口过程的程序的实例句柄
wndcls.lpfnWndProc=winSunpro;//指向窗口过程函数的指针
wndcls.lpszClassName="朱梦思";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW |CS_VREDRAW;//指定窗口的样式CS_HREDRAW水平重绘 CS_VREDRAW 垂直重绘 CS_NOCLOSE 禁用系统菜单close命令 CS_DBLCLKS 鼠标双击消息
RegisterClass(&wndcls);//注册窗口系统就有了过程函数的地址了
//DispatchMessage(&msg)发生消息的时候,将消息回传给系统,系统调用回调函数进行消息处理
HWND hwnd;
hwnd=CreateWindow("朱梦思","http//zhumengsi",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
//指定窗口类的名称 窗口类的名字 窗口的样式
/*指定窗口的位置
*/
ShowWindow(hwnd,SW_SHOWNORMAL); //窗口句柄,窗口显示的状态
UpdateWindow(hwnd);//刷新窗口 通过发送WM_PAINT消息来刷新窗口//直接发送给窗口过程函数,不进入消息队列
MSG msg;
BOOL bRet;
while(bRet=GetMessage(&msg,hwnd,0,0))//从队列中取出消息 Param3 获取最小的消息 Param4获取消息的最大值 ,都为0则接受所有消息
{//只有接受到WM_QUIT才返回0
if(bRet==-1)
{
return -1;
}else
{
TranslateMessage(&msg);//将虚拟键消息转化为字符消息
//比如WM_KEYDOWN WM_KEYUP转化为WM_CHAR消息,然后把WM_CHAR投递到调用线程的消息队列中,
DispatchMessage(&msg);//分派一个消息到窗口过程函数,由窗口过程函数对消息进行处理
}
}
return msg.wParam;
}
LRESULT CALLBACK winSunpro(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch(uMsg)
{
case WM_CHAR:
char szchar[20];
sprintf(szchar,"char code is %d",wParam);
MessageBox(hwnd,szchar,"char",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"程序员之家",strlen("程序员之家"));
break;
case WM_PAINT:
HDC hDc;
PAINTSTRUCT ps;
hDc=BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"ZHUMENGSI",strlen("ZHUMENGSI"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES == MessageBox(hwnd,"是否真的结束?","Message",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
#include <stdio.h>
LRESULT CALLBACK winSunpro(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
int WINAPI WinMain( __in HINSTANCE hInstance,
__in_opt HINSTANCE hPrevInstance,
__in_opt LPSTR lpCmdLine,
__in int nShowCmd )
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;//注册窗口类时,让系统为WNDCLASS结构分配合追加一定字节数的附加内存空间,称为类附加内存,右属于这种窗口类的所有窗口共享,存储类的附加信息
wndcls.cbWndExtra=0;//窗口内部数据结构,窗口附加内存,创建窗口的时候
wndcls.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);//窗口类的背景画刷句柄 GetStockObject()得到系统标准画刷
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);//窗口类的光标句柄
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);//窗口类的图标句柄
wndcls.hInstance=hInstance;//窗口过程的程序的实例句柄
wndcls.lpfnWndProc=winSunpro;//指向窗口过程函数的指针
wndcls.lpszClassName="朱梦思";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW |CS_VREDRAW;//指定窗口的样式CS_HREDRAW水平重绘 CS_VREDRAW 垂直重绘 CS_NOCLOSE 禁用系统菜单close命令 CS_DBLCLKS 鼠标双击消息
RegisterClass(&wndcls);//注册窗口系统就有了过程函数的地址了
//DispatchMessage(&msg)发生消息的时候,将消息回传给系统,系统调用回调函数进行消息处理
HWND hwnd;
hwnd=CreateWindow("朱梦思","http//zhumengsi",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
//指定窗口类的名称 窗口类的名字 窗口的样式
/*指定窗口的位置
*/
ShowWindow(hwnd,SW_SHOWNORMAL); //窗口句柄,窗口显示的状态
UpdateWindow(hwnd);//刷新窗口 通过发送WM_PAINT消息来刷新窗口//直接发送给窗口过程函数,不进入消息队列
MSG msg;
BOOL bRet;
while(bRet=GetMessage(&msg,hwnd,0,0))//从队列中取出消息 Param3 获取最小的消息 Param4获取消息的最大值 ,都为0则接受所有消息
{//只有接受到WM_QUIT才返回0
if(bRet==-1)
{
return -1;
}else
{
TranslateMessage(&msg);//将虚拟键消息转化为字符消息
//比如WM_KEYDOWN WM_KEYUP转化为WM_CHAR消息,然后把WM_CHAR投递到调用线程的消息队列中,
DispatchMessage(&msg);//分派一个消息到窗口过程函数,由窗口过程函数对消息进行处理
}
}
return msg.wParam;
}
LRESULT CALLBACK winSunpro(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch(uMsg)
{
case WM_CHAR:
char szchar[20];
sprintf(szchar,"char code is %d",wParam);
MessageBox(hwnd,szchar,"char",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"程序员之家",strlen("程序员之家"));
break;
case WM_PAINT:
HDC hDc;
PAINTSTRUCT ps;
hDc=BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"ZHUMENGSI",strlen("ZHUMENGSI"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES == MessageBox(hwnd,"是否真的结束?","Message",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}