灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4685回复:1

[C++技术]Win32窗口程序(C++)

楼主#
更多 发布于:2012-09-06 11:33


编者按:MFC替我们做了很多工作,学习下详细流程还是很必要的。
效果图:


// Win32对话框.cpp : Defines the entry point for the application.
//

#include "stdafx.h"

//定义窗口消息响应函数
LRESULT CALLBACK WndProc(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
HDC hdc;
RECT rect;
PAINTSTRUCT ps; //接收BeginPaint返回的客户区绘图信息
switch(uMsg)//接收GetClientRect返回的客户区坐标
{
case WM_PAINT:
{
//指针参数一般代表接收函数的返回值,即_out
hdc = BeginPaint(hwnd, ;ps);
GetClientRect(hwnd, ;rect);
DrawText(hdc, "http://hi.baidu.com/darks00n", -1, ;rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hwnd, ;ps);
break;
}
case WM_DESTROY: //窗口被关闭后终止对应线程
{
PostQuitMessage(0);
}
default:
break;
}

return DefWindowProc(hwnd, uMsg, wParam, lParam); //未处理的消息发给默认消息处理函数
}

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
//第一步.填充WNDCLASS结构体
WNDCLASS wndclass;
wndclass.style = CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "WND";

//第二步.注册窗口类
RegisterClass(;wndclass);

//第三步.创建窗口
HWND hwnd = CreateWindow("WND", "Win32对话框", WS_OVERLAPPEDWINDOW , CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

//第四步.指定显示窗口状态
ShowWindow(hwnd, nCmdShow);

//第五步.显示窗口(发送WM_PAINT消息)
UpdateWindow(hwnd);

//第六步.消息循环(不断从窗口线程消息队列中获取并处理消息)
MSG msg;
//返回值0代表WM_QUIT退出程序,-1代表获取消息失败
while (GetMessage(;msg, NULL, 0, 0) > 0 )
{
//翻译消息(将虚拟键消息转换为字符消息后,再放回窗口消息队列中)
TranslateMessage(;msg);//注意区分MFC中的PreTranslateMessage函数
//把消息发往消息响应函数(本例中即WndProc)
DispatchMessage(;msg);
}

return msg.wParam;
}


喜欢1 评分0

最新喜欢:

xxocxxoc
coolman
精灵王
精灵王
  • 注册日期2013-03-17
  • 发帖数215
  • QQnull
  • 火币958枚
  • 粉丝4
  • 关注3
  • 忠实会员
  • 最爱沙发
沙发#
发布于:2013-11-06 15:32

回复(0) 喜欢(0)     评分
游客

返回顶部