创建一个完整的窗口需要经过下面四个操作步骤:
1、设计一个窗口类;
2、注册窗口类;
3、创建窗口;
4、显示及更新窗口。#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd,//窗口句柄
UINT uMsg,//message identifier
WPARAM wParam,//第一个消息参数
LPARAM lParam//第二个消息参数
);
int WINAPI WinMain(
HINSTANCE hInstance,//应用程序的句柄,标示不同的运行文件exe,当前运行的句柄
HINSTANCE hPrevInstance,//先前实例的一个句柄
LPSTR lpCmdLine,//长指针,指向字符串首地址的指针,命令行参数
int nCmdShow//显示的状态,指定运行时窗口最大化显示还是隐藏显示等
)
{
WNDCLASS wndcls;//1---设计一个窗口类
wndcls.cbClsExtra=0;//类的额外附加字节数
wndcls.cbWndExtra=0;//窗口的额外附加字节数
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);//背景
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinSunProc;//窗口过程函数
wndcls.lpszClassName="WeiXin";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;//水平重画和垂直重画
RegisterClass(&wndcls);//2---注册一个窗口类
HWND hwnd;//3---创建一个窗口,定义一个句柄
hwnd=CreateWindow("WeiXin","北京",WS_OVERLAPPEDWINDOW,0,0,400,600,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 WinSunProc(//函数名可以更改,参数类型不可以更改
HWND hwnd,//窗口句柄
UINT uMsg,//message identifier
WPARAM wParam,//第一个消息参数
LPARAM lParam//第二个消息参数
)
{
switch (uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"char is %d",wParam);//格式化一个文本,到一个内存中;在消息的wParam中存放了按键的asic码 按%d的格式
MessageBox(hwnd,szChar,"WeiXin",MB_OK);
break;
case WM_PAINT://消息重绘
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"培训",strlen("培训"));
EndPaint(hwnd,&ps);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","WeiXin",0);
HDC hdc;
TextOut(hdc,0,50,"计算机",strlen("计算机"));//在0 50的位置输出
hdc=GetDC(hwnd);
ReleaseDC(hwnd,hdc);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否结束?","WeiXin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
vc++ WinMain
原创
©著作权归作者所有:来自51CTO博客作者yzs的专栏的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
VC ++ | VC++调试方法
【代码】VC ++ | VC++调试方法。
c++ 开发语言 java 数据操作 App -
VC++记录
1. 记录时间 2. 报错 解决
#include -
vc++ 6.0安装
vc++ 6.0安装vc++ 6.0安装vc++ 6.0安装2.双击打开3. 下一步4.下一步5.设置位置然后下一步2.
编辑器 c语言 单片机 stm32 vc++ -
VC++速记
速记vc小知识。
#include #define 头文件 条件编译 #ifdef