Windows API程序设计入门 Windows窗口

写作目的

  1. 了解 windows操作系统应用程序开发的基本概念,win32 API函数、消息与事件驱动;
  2. 掌握WinMain函数的基本框架,窗口定义、窗口创建、消息循环及窗口过程函数;

操作步骤

1.创建一个Win32应用程序的步骤:
2.定义 WinMain 函数;
3.设计窗口类 WNDCLASS;
4.注册窗口类;
5.创建窗口;
6.显示并更新窗口;
7.编写消息循环;
8.编写窗口过程调用函数;

源代码

#include <windows.h>
//声明wndproc函数
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain
(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{static TCHAR szAppName[] = TEXT("MyWindows");HWND hwnd;MSG msg;WNDCLASS wndclass;//wndclass的10个参数,设置窗口类的特征wndclass.style = CS_HREDRAW | CS_VREDRAW;//改变窗口大小则重画wndclass.lpfnWndProc = WndProc;//窗口函数为wanprocwndclass.cbClsExtra = 0;//窗口类无扩展wndclass.cbWndExtra = 0;//窗口实例无扩展wndclass.hInstance = hInstance;//注册窗口类实例句柄wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//用箭头光标wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景为蓝色wndclass.lpszMenuName = NULL;//窗口默认无菜单wndclass.lpszClassName = szAppName;//注册窗口类型if (!RegisterClass(&wndclass)){MessageBox(NULL, TEXT("需要windows NT 才能执行"), szAppName, MB_ICONERROR);return 0;}//CreatWindow的11个参数,设置窗口具体特征,使窗口丰富hwnd = CreateWindow(szAppName, TEXT("windows窗口"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);//显示并刷新窗口ShowWindow(hwnd, iCmdShow);UpdateWindow(hwnd);//消息循环while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;
}
//CALLBACK函数WndProc的定义
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{HDC hdc;//定义设备描述表句柄PAINTSTRUCT ps;//定义绘图信息结构变量RECT rect;//根据消息值转相应的消息处理switch (message){caseWM_LBUTTONDOWN:MessageBox(hwnd, TEXT("确认后点击"), TEXT("鼠标左键点击"), MB_OK);break;case WM_PAINT:hdc = BeginPaint(hwnd, &ps);GetClientRect(hwnd, &rect);DrawText(hdc, TEXT("这是一个历经千辛万苦窗口!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);EndPaint(hwnd, &ps);return 0;case WM_DESTROY:PostQuitMessage(0);return 0;}return DefWindowProc(hwnd, message, wParam, lParam);
}

结果窗口

Windows窗口设计相关推荐

  1. Windows 窗设计时结构

    Windows 窗设计时结构 Windows 窗体编程 设计时结构 下面的阐释概述了 .NET Framework 中的设计时结构. screen.width*0.7) {this.resized=t ...

  2. 手把手教你写第一个Windows窗口

    第一个Windows窗口 效果展示 详细过程 设计窗口类 注册窗口类 创建窗口 显示窗口 更新窗口 消息循环 源代码 实用工具 图标制作软件 图标库 效果展示 第一个Windows窗口 详细过程 设计 ...

  3. c#窗体应用计算机设计,C#实验报告:Windows窗体设计.doc

    郑 州 轻 工 业 大 学 实 验 报 告 课程名称: C#程序设计 实验名称: Windows窗体设计 院 (系): 计算机与通信工程学院 姓 名: 学 号: 专业班级: 计算机 指导教师: 201 ...

  4. C++ 用DEV-C++建一个Windows窗口程序带文本框和命令按钮

    先看一下程序的效果图: 在Dev-C++ 5.11上创建并正常运行,操作系统32位.64位的Win7都可以. 首先在文件菜单里新建项目,选择Windows Application: 命名完成后得到如下 ...

  5. Android窗口设计之Dialog、PopupWindow、系统窗口的实现

        窗口设计之Dialog.PopupWindow.系统窗口的实现 Android应用程序窗口设计系列博客: Android应用程序窗口设计之Window及WindowManager的创建 And ...

  6. Windows窗口的建立

    Windows窗口的建立 预备知识 DC CreateCompatibleDC() CreateDIBSection() SelectObject() BitBlt() CODE 设备上下文 (简称为 ...

  7. 创建windows窗口并且获得窗口句柄

    创建windows窗口并且获得窗口句柄 代码 import win32gui from win32con import * import ctypes from ctypes import * def ...

  8. Python+selenium自动化测试中Windows窗口跳转方法

    第一种方法 #获得当前窗口 nowhandle=driver.current_window_handle #打开弹窗 driver.find_element_by_name("xxx&quo ...

  9. 怎么取消任意Windows窗口总在最前

    windows7下取消任意Windows窗口总在最前 最简单的办法是右键下边的任务栏,选择取消锁定任务栏后,再锁定一下.

最新文章

  1. java大作业私人管家系统_操作系统概念(Operating System Concepts)第十版期中大作业...
  2. java 中覆 写tostring_如何在Java中正确覆盖toString()?
  3. 对数据可视化的理解_使数据可视化更容易理解
  4. query row php,php – 如何在Codeigniter上使用$query- row获取类对象
  5. 移动端堆栈关键行定位的新思路
  6. Vim配置文件(.vimrc),Vim配置教程
  7. ubuntu安装mysql没反应_Ubuntu安装mysql三种安装方式
  8. React简单聊聊【面试】
  9. WebRequest msdn整理
  10. [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)
  11. Android 友盟分享自定义面板使用
  12. mysql 查连接数,查看MySQL的连接数
  13. Android系统中设置TextView的字符间距
  14. STP-16-根防护,BPDU防护和BPDU过滤
  15. 分布式事务二 基础理论
  16. 视频教程-系统集成项目管理工程师考试感性理性认识-软考
  17. 励志!从中专生到教授、国家杰青,近日,他又当选院士!
  18. 关于AutoCAD启动速度慢的分析
  19. linux安装微软字体
  20. cmd下载远程linux的文件,Java利用ssh协议实现从远程Linux服务器下载文件和文件夹...

热门文章

  1. codeup21751 超过平均身高
  2. MEGA-X 3D打印机教程: 04_建模、切片、打印
  3. tensorflow编程: Inputs and Readers
  4. 海康球机控制函数VC (PTZ控制+对准具体坐标点)
  5. Xshell连接Linux虚拟机出现 可以ping通,但无法ssh连接的情况
  6. 大数据之Hive:hive中的cross join函数
  7. Acrobat DC 2021(pdf文件处理软件) 附安装教程
  8. 变压器油温预测文本数据集(12w多条数据,时间间隔15min)
  9. 多多客开源版,微信开放平台的小程序SaaS 系统,基于doodoo.js,vue.js
  10. 良精南方cms /inc/Check_Sql.asp SQL Injection Based On Cookie