MFC_1——采用windows API函数来生成一个窗口显示helloword
2015-04-21 16:52
411 查看
//采用windows API函数来生成一个窗口显示helloword: #include <windows.h> //过程函数的声明 LRESULT CALLBACK myWndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam); //进入WinMain函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { const static TCHAR appName[] = TEXT("Hello world"); //1.【初始化WNDCLASSEX,先初始化一个窗口类】 WNDCLASSEX myWin; myWin.cbSize = sizeof(myWin); myWin.style = CS_HREDRAW | CS_VREDRAW; myWin.lpfnWndProc = myWndProc; myWin.cbClsExtra = 0; myWin.cbWndExtra = 0; myWin.hInstance = hInstance; myWin.hIcon = 0; myWin.hIconSm = 0; myWin.hCursor = 0; myWin.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); myWin.lpszMenuName = 0; myWin.lpszClassName = appName; //2.【Register ,调用RegisterClassEx函数注册窗口类】 if (!RegisterClassEx(&myWin)) return 0; //3.【具体的创建我们所要创建的那个窗口】 const HWND hWindow = CreateWindow( appName, appName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, 0, 0, hInstance, 0); //调用ShowWindow和UpdateWindow函数显示并更新窗口 /*进入消息循环。关于消息循环再简单说下,Windows应用程序是消息驱动的, 系统或用户让应用程序进行某项操作或完成某个任务时会发送消息, 进入程序的消息队列,然后消息循环会将消息队列中的消息取出, 交予相应的窗口过程处理,此程序的窗口过程函数就是myWndProc函数, 窗口过程函数处理完消息就完成了某项操作或任务。 本例是要显示“HELLO WORLD”字符串,UpdateWindow函数会发送WM_PAINT消息, 但是此消息不经过消息队列而是直接送到窗口过程处理, 在窗口过程函数中最终绘制了“HELLO WORLD”字符串。*/ //4.显示窗口 ShowWindow(hWindow,iCmdShow); //5.更新窗口(本来一般这个函数是用来刷新窗口的,而在这里,用来接收消息,等对消息的操作) UpdateWindow(hWindow);//更新窗口 { MSG msg; while(GetMessage(&msg,0,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; } } //过程函数的定义 LRESULT CALLBACK myWndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam) { if (msg==WM_PAINT) { PAINTSTRUCT ps; const HDC hDC = BeginPaint(hWindow,&ps); RECT rect; GetClientRect(hWindow,&rect); DrawText(hDC,TEXT("HELLO WORLD"),-1,&rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); EndPaint(hWindow,&ps); return 0; } else if (msg==WM_DESTROY) { PostQuitMessage(0); return 0; } return DefWindowProc(hWindow,msg,wParam,lParam); }
相关文章推荐
- java实现一个在窗口显示一个随机生成的号码
- MFC建立一个文档视图的工程,然后在窗口上显示数据
- MFC MDI项目如何一个文档显示多个不同视图类(比如文字和图表,各自拥有单独的框架窗口)
- 在mfc对话框中添加一个显示网页的窗口
- MFC在对话框中添加了一个richedit控件,窗口就不显示了。
- MFC中新添一个对话框后怎么在主窗口中显示
- 如何在mfc对话框中添加一个显示网页的窗口
- MFC入门学习之控件(2)创建一个对话框窗口并在运行时显示
- 提供自己写的一个类,用MFC可以方便设置窗口全屏显示 - Gods_巨蚁
- MFC学习第八节:在数据库的数据在窗口中显示(显示一个学生时)
- 如何在mfc对话框中添加一个显示网页的窗口 .
- 成功: MFC使用CEdit做一个显示日志的自动滚动窗口
- 基于对话框的MFC程序中,实现非模态子窗口在任务栏显示图标以及窗口左上角加图标
- mfc增加新窗口,并自动生成类
- 如何弹出一个模式窗口来显示进度条
- PB动态生成数据窗口的一个例子
- OpenCv显示窗口移植到MFC
- MFC光标移动到按钮上时编辑框显示时间,并显示光标的窗口位置和客户区位置
- MFC图像处理-图像扫描显示之基本窗口
- OpenGL编程逐步深入(三)在窗口中显示一个三角形