典型的Windows应用程序代码

#include
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
 WNDCLASS wndclass; // 定义窗口类结构变量
 HWND hwnd; // 定义窗口句柄
 MSG msg; // 定义消息结构变量
 wndclass.style = CS_HREDRAW|CS_VREDRAW; // 改变窗口大小重画
 wndclass.lpfnWndProc = WndProc; // 窗口函数为WndProc
 wndclass.cbClsExtra = 0; // 窗口类无扩展
 wndclass.cbWndExtra = 0; // 窗口实例无扩展
 wndclass.hInstance = hInstance; // 注册窗口类的实例句柄
 wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); // 窗口用默认图标
 wndclass.hCursor = LoadCursor(NULL, IDI_APPLICATION); // 窗口用箭头光标
 wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 背景为白色
 wndclass.lpszMenuName = NULL; // 窗口默认无菜单
 wndclass.lpszClassName = "Chap1Exa1"; // 窗口类名为Chap1Exa1
 if(!RegisterClass(&wndclass)) return FALSE; // 注册窗口类,失败则返回
 
 hwnd = CreateWindow("Chap1Exa1", // 窗口类名
      "Chap1Exa1", // 窗口名
      WS_OVERLAPPEDWINDOW, // 重叠式窗口风格
      CW_USEDEFAULT, CW_USEDEFAULT, // 左上角屏幕坐标
      CW_USEDEFAULT, CW_USEDEFAULT, // 宽度和高度
      NULL, // 窗口无父窗口
      NULL, // 窗口无主菜单
      hInstance, // 创建窗口的实例句柄
      NULL); //此窗口无创建参数
 ShowWindow(hwnd,nCmdShow); // 显示窗口
 UpdateWindow(hwnd); // 更新窗口的客户区
 
 while(GetMessage(&msg, NULL, 0, 0)) // 获取消息,遇WM_QUIT退出循环
 {
  TranslateMessage(&msg); // 键盘消息转换
  DispatchMessage(&msg); // 消息给窗口函数
 }
 return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 HDC hdc; // 定义设备描述表句柄
 PAINTSTRUCT ps; // 定义绘图信息结构变量
 
 switch(message)
 {
 case WM_PAINT: // 重画窗口客户区消息
  hdc = BeginPaint(hwnd, &ps); // 获取需重画窗口的设备描述表句柄
  TextOut(hdc, 20, 60, "The First Windows Application Showing Window", 44); // 客户区坐标(20,60)处显示文本,限制为35个字母
  EndPaint(hwnd,&ps); // 结束要重画的窗口
  return 0;
 case WM_DESTROY: // 撤销窗口信息
  PostQuitMessage(0); // 产生退出程序消息WM_QUIT
  return 0;
 }
 return DefWindowProc(hwnd,message,wParam,lParam); // 其他转默认窗口函数
}

运行结果:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值