windows API程序设计入门(简单练习)
windows API程序设计入门(简单练习)
目录
- windows API程序设计入门(简单练习)
- 窗口过程函数
- 用绘图工具输出输出hello world!
- 定义窗口主函数
- 设计窗口类
- 注册窗口类
- 创建窗口
- 显示窗口
- 更新窗口
- 消息循环
- 总结
窗口过程函数
#include <windows.h>
LRESULT CALLBACK windowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
)
{
用绘图工具输出输出hello world!
PAINTSTRUCT ps;HDC hdc = BeginPaint(hWnd, &ps); TCHAR * p = L"Hello World!"; TextOutW(hdc, 0, 0, p, wcslen(p));EndPaint(hWnd, &ps);return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
定义窗口主函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow
) {
设计窗口类
WNDCLASS wc;wc.cbClsExtra = 0; //类的附加信息wc.cbWndExtra = 0; //窗口附加信息wc.hbrBackground = CreateSolidBrush(RGB(255, 255, 255)); //背景wc.hCursor = LoadCursor(NULL, IDC_HAND); //加载系统默认光标wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); //加载系统默认图标wc.hInstance = hInstance; //传递给MyRegisterClass的hInstance参数值wc.lpfnWndProc = windowProc; //窗口过程函数名字,消息处理函数wc.lpszClassName = TEXT("temp_text"); //类的名字wc.lpszMenuName = NULL; //菜单名字wc.style = CS_HREDRAW | CS_VREDRAW;; //显示风格
注册窗口类
RegisterClass(&wc);
创建窗口
HWND hwnd = CreateWindow("temp_text", //类名"window_name", //标题WS_OVERLAPPEDWINDOW, //外观样式400, //x坐标400, //y坐标400, //宽度500, //高度NULL, //父窗口句柄NULL, //菜单句柄hInstance, //应用程序的实例句柄NULL); //附加数据
显示窗口
ShowWindow(hwnd, SW_SHOWNORMAL);
更新窗口
UpdateWindow(hwnd);
消息循环
MSG msg;while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;
}
效果如下:
完!
总结
勤能补拙
windows API程序设计入门(简单练习)相关推荐
- Windows API程序设计入门(新手的第一个Windows程序)
Windows API程序设计入门 一.实验目的 二.实验工具 三.参考资料 四.步骤 五.代码分析 六.运行效果 七.补充 一.实验目的 了解 windows操作系统应用程序开发的基本概念,win3 ...
- Windows API 程序设计入门
目录 目的: 最初了解Windows API编程,从创建窗口开始,步骤: 具体代码如下: 运行结果 目的: 1.了解Windows操作系统程序开发的基本概念,win32API函数.消息与事件驱动: 2 ...
- 用Windows API 编写的简单贪吃蛇游戏
一.基础知识笔记 <1. COORD结构体,是Windows API中定义的一种结构体,用于在控制台屏幕上定位一个字符的坐标. <2.句柄,是整个windows编程的基础,一个句柄是指使用 ...
- 算法与程序设计_算法与程序设计入门-简单计算题1
在这里我们直接把题目抽离成顶点和边来描述,就不贴原题以避免引起不必要的解释. 问题描述:现在有一个简单无向图,且每个顶点最多与其他顶点之间连接m条边,现在有n个顶点,问最多能在各顶点之间连接多少条边? ...
- 报表引擎API开发入门—简单程序数据集
小编最近接的项目是有关报表开发的,很想把这部分知识分享出来.希望大家能够支持我!不多说,马上进入我们今天的话题. API基本知识 小编最近项目所做的是关于一个报表软件-FineReport报表开发的一 ...
- windows api学习笔记-简单的记事本
#include <windows.h> #include "resource.h" #include <string>LRESULT CALLBACK M ...
- 报表引擎API开发入门— EJB程序数据源
2019独角兽企业重金招聘Python工程师标准>>> 我们前面讲了几个数据源,今天我们来讲一下EJB数据源,这篇讲完我们数据源这部分就讲完了.数据连接不需要直接访问数据库,而是使用 ...
- Windows程序设计入门教程[来自邪恶八进制信息安全团队(www.eviloctal.com)]
Windows程序设计入门教程 前骤: 1.第一个windows程序: 先讲几个专有名词:HINSTANCE 由handle(句柄)和instance(实例) 句柄,类似于C中的指针,指向资源,是资源 ...
- C++ WINDOWS API 第1章 Windows 应用程序开发入门
目录 1.1 第一个实例程序.. 1 1.1.1 start.exe. 1 1.1.2 Windows API 2 1.1.3 程序入口函数.. 2 1 ...
最新文章
- 与大佬零距离交流,在行业报告留名,智源社区招募兼职编辑!
- EXE4J(Windows Launcher Generator)——EXE4J概述、下载以及使用
- sqlserver tds协议学习_数据安全交换协议来了,或将推动AI大步迈向3.0时代
- OpenCV学习笔记二
- python结课设计力学方面_我对力学教案的评价
- mysql的sql经典写法收录
- hadoop在ubuntu上的安装流程
- interlib系统服务器,Interlib图书馆集群管理系统.docx
- Android SDK的下载与安装(包会)
- PYTHON语言开发公司工资条通知短信
- 企业微信sdk调用,通过手机号或微信好友添加客户
- hive运行报错Error during job, obtaining debugging information..FAILED: Execution Error, return code 2
- 解决idea翻译插件translation无法使用问题
- 关于华为pad没有出来直播的经验
- 期货反向跟单犯法吗?
- 当AD(Altium Designer)画PCB时Ctrl+H快捷键无法选中连线时的解决办法
- PS亮度蒙版工具:Lumenzia for Mac(支持ps2022)
- [ERROR:0] global /build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp (2791) open VIDEOIO/FFMPEG: F
- 订单(一)——准备订单数据
- js中字符串截取函数及其方法