C语言WIN32图形程序设计
文章平均质量分 70
C语言WIN32图形程序设计
卖身买镜头
这个作者很懒,什么都没留下…
展开
-
中年人学C语言Windows程序设计,35 WIN32图形界面音乐播放器实例代码2
中年人学C语言Windows程序设计,35 WIN32图形界面音乐播放器实例代码2通过listbox加入播放列表,点击列表可以切换歌曲新增listbox代码hListBox = CreateWindow(TEXT("LISTBOX"), TEXT("我是个BOX"), WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | LBS_HASSTRINGS | LBS_NOTIFY, CW_USEDEFAULT, CW_USEDEFAULT, C原创 2021-11-11 17:20:59 · 1228 阅读 · 0 评论 -
中年人学C语言Windows程序设计,35 WIN32图形界面音乐播放器实例代码1
中年人学C语言Windows程序设计,35 WIN32图形界面音乐播放器利用菜单类,滑块类,静态文本框构建一个音乐播放器,界面如下界面如上, 菜单栏有 打开,播放,暂停,停止和退出 5个菜单左侧为实时播放进度,右侧为总进度,下面为播放文件。点击打开文件 选择 音频文件打开文件后,点击播放 开始播放文件拖动进度条可以 改变音乐播放位置。//窗口调用程序LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LP原创 2021-11-10 17:46:25 · 1270 阅读 · 0 评论 -
中年人学C语言Windows程序设计,34 进度条ProcessBar
中年人学C语言Windows程序设计,34 进度条ProcessBar直接上代码,给进度条建立了一个单独的线程#include <Windows.h>#include <commctrl.h> //InitCommonControls#pragma comment(lib, "comctl32") //InitCommonControls //过程函数的返回值都是LRESULT,类型都是CALLBACKLRESULT CALLBACK WndProc(H原创 2021-11-09 10:47:23 · 317 阅读 · 0 评论 -
中年人学C语言Windows程序设计,33 计时器SetTimer
第一种方式,消息方式WM_TIMER#define ID_TIMER 1001 switch (message) { case WM_CREATE: SetTimer(hWnd, ID_TIMER, 1000, NULL);//设置计时器,间隔1000毫秒 break; case WM_TIMER://计时器到时时调用 //随机改变背景颜色 SetClassLongPtr原创 2021-11-08 10:00:43 · 721 阅读 · 1 评论 -
中年人学C语言Windows程序设计,32 WINDOWS图形界面的通信录程序实例
界面展示我们利用前面所学的知识做一个图形界面的通信录,如下所示利用listview做通信录信息的显示然后添加4个按钮,添加,删除,修改和查询点击添加和修改按钮会弹出 dialog窗口,进行编辑输入信息后,点击确定,则完成操作代码实例主要界面代码实例//主窗口回调函数LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ /*回调函数 参数:原创 2021-11-05 14:04:57 · 597 阅读 · 0 评论 -
中年人学C语言Windows程序设计,31 listview和DialogBox控件的交互综合应用
中年人学C语言Windows程序设计,31 listview和DialogBox控件的综合应用效果展示用listview展示列表数据,创建4个按钮,为添加,删除,修改,查询单击鼠标右键弹出菜单,菜单内有添加,删除,修改功能调用DialogBox进行添加和修改的操作。代码//主窗口回调函数LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ /*回调函数 参原创 2021-11-02 17:39:44 · 433 阅读 · 0 评论 -
中年人学C语言Windows程序设计,30 DialogBox控件
1、DialogBox函数功能:该宏根据对话框模板资源创建一个模态的对话框。DialogBOX函数直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回控制。该宏使用DialogBoxParam函数。函数原型:int DialogBox(HINSTANCE hlnstance,LPCTSTRIpTemplate,HWND hWndParent,DLGPROC IpDialogFunc);参数: hlnstance:标识一个模块的事例该模块的可执行文件含有对话框模板。原创 2021-11-01 10:50:06 · 1132 阅读 · 1 评论 -
中年人学C语言Windows程序设计,29 模态窗口 和 多窗口
模态窗口什么是模态窗口呢,想必大家都知道模态对话框和非模态对话框吧,模态窗口和模态对话框类似。假设我们需要在按钮单击时创建一个新窗口,如果只是在按钮单击消息里CreateWindow(Ex)一个新窗口,那么这个窗口和之前的窗口是独立的,他们同时接受用户的响应。那么我们想在新窗口完成它的使命之前让之前的窗口拒绝接收响应,就要创建一个“模态窗口”如何创建模态窗口呢,其实模态窗口和真正的窗口一样,只是创建之前将之前的窗口禁用掉,关闭之后恢复先前的窗口而已。如果创建的第二个窗口还是使用原来的窗口类,他和之前的原创 2021-10-29 15:42:29 · 422 阅读 · 0 评论 -
中年人学C语言Windows程序设计,28 EDIT文本编辑框控件
创建编辑框控件编辑框控件的窗口类名是edit。除了子窗口常用的风格 WS_CHILD、WS_VISIBLE、WS_BORDER 外,edit 控件也有自己的风格,都是以ES开头。风格说明ES_AUTOHSCROLL当输入文字超出横向显示范围时自动滚动(一般必选)。ES_AUTOVSCROLL当输入文字超出纵向显示范围时自动滚动。ES_CENTER文本居中对齐。ES_LEFT文本左对齐(默认)。ES_RIGHT文本右对齐。ES_MULTILIN原创 2021-10-29 11:01:52 · 1378 阅读 · 1 评论 -
中年人学C语言Windows程序设计,27控件ListView
最近学习的是WIN32控件ListView的使用,以下是个人的一点心得。ListView控件,在直观上个人认为就是表格的意思。与表格一样,ListView也有表头,表头有几个项,下面的内容行也有几个项。ListView的创建创建ListView的函数是createWindow()函数,其中窗口类别参数使用 WC_LISTVIEW ,该参数定义在头文件 CommCtrl.h 中。示例代码:HWND hListview;hListview = CreateWindowEx(0, TEXT("Sy原创 2021-10-28 10:13:06 · 1197 阅读 · 3 评论 -
中年人学C语言Windows程序设计,26控件ListBox
ListBox是Windows中的一种控件,一般被当做子窗口使用,Windows中所有子窗口都是通过发送一个通知码到父窗口父窗口通过WM_COMMAND消息接收,并在此消息中处理,并控制子窗口,ListBox自然也不例外,ListBox中有它独有的消息,通知消息,风格,查看MSDN可以看到风格主要有:风格LBS_EXTENDEDSEL 用户可以通过SHIFT + 鼠标或者其他组合键进行多选(只能通过SHIFT + 鼠标或者其他组合键)LBS_HASSTRINGS 指定一个自绘的列表框中包含有字符原创 2021-10-27 15:04:15 · 903 阅读 · 0 评论 -
中年人学C语言Windows程序设计,25判断单选按钮和复选框是否被选中
在实际开发中,我们往往需要知道哪个按钮被选中了,才能进行下一步的操作。例如对于一组单选按钮,只有一个选项能被选中,最好的办法是将这组按钮作为参数传入一个函数,通过函数返回值判断哪个按钮被选中了。但遗憾的是,在Windows中不能一次性获得一组按钮的选中状态,只能一个一个地遍历。复选框也是如此。可以通过SendMessage函数发送BM_GETCHECK消息来获取按钮的选中状态,返回 BST_CHECKED 表示按钮被选中,返回 BST_UNCHECKED 是未被选中。SendMessage 原型为:原创 2021-10-27 13:53:43 · 453 阅读 · 0 评论 -
中年人学C语言Windows程序设计,24Windows单选按钮、复选框、分组框控件
单选按钮(Radio Button)和复选框(Check Box)是常见的Windows控件,用于从给出的选项中选择一项或多项,如下图所示:单选按钮是互斥的,只能选择其中一项;而复选框没有限制,可以选择一项或多项。单选按钮和复选框都是一种特殊的按钮,窗口类名称都是button,只不过增加了一些特殊的窗口样式罢了。单选按钮的样式为BS_AUTORADIOBUTTON,复选框的样式为BS_AUTOCHECKBOX。例如://创建一个单选按钮CreateWindow( TEXT("button"原创 2021-10-26 16:27:14 · 403 阅读 · 0 评论 -
中年人学C语言Windows程序设计,23Windows button控件(按钮控件)
按钮既是标准控件,也是子窗口,窗口类名是button。Button 控件样式以BS开头,常用的有:捕获按钮点击事件当用户点击按钮、菜单、下拉列表框等控件的时候,会产生WM_COMMAND消息。WM_COMMAND 消息会附带控件 ID。我们来回顾一下 CreateWindow 的第9个参数HEMU hMenu,对于每一个控件它的值都是唯一的,在按钮控件中,我们需要根据它来识别到底是哪个按钮被点击了。按钮控件示例点击按钮,文本框中的文本会改变。LRESULT CALLBACK WndProc(原创 2021-10-26 15:37:23 · 631 阅读 · 0 评论 -
中年人学C语言Windows程序设计,22修改静态文本框static控件背景颜色和文字颜色
当 static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息。如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄,Windows 会使用该画刷来绘制控件背景(子窗口背景)。也就是说,改变 static 控件的背景颜色只有这一种方式,就是处理 WM_CTLCOLORSTATIC 消息。WM_CTLCOLORSTATIC 消息就是用来设置背景画刷的。改变 static 控件的背景颜色LRESULT CALLBACK Wn原创 2021-10-26 14:35:14 · 922 阅读 · 0 评论 -
中年人学C语言Windows程序设计,21静态文本框控件和创建自己的字体
Windows static控件(静态文本框控件)使用 TextOut 和 DrawText 函数有时候会不方便,例如:文本不能自动换行,超出窗口范围会被隐藏;每次更改文本都要先擦除背景再重新输出,比较麻烦。实际开发中一般使用静态文本框控件来输出文本。静态文本框是Windows 的一种标准控件,可以用来在窗口上显示一段文本,并且文本容易受到控制。除了静态文本框,Windows的标准控件还有很多种,例如按钮、下拉菜单、单选按钮、复选框等。其实,控件也是一种窗口,也使用 CreateWindow 函数原创 2021-10-26 11:07:24 · 909 阅读 · 0 评论 -
中年人学C语言Windows程序设计,20子窗口的创建
终于到了令人激动的时刻, 尽管在前一阶段的学习中我们已经学习了如何在客户区中绘制简单的图形以及如何使用键盘和鼠标, 但是距离 Windows意义上的软件 似乎还是有点遥远, 而今天, 我们要做的就是将这个距离再缩短一大步! 这阶段要学习的就是 子窗口控件 的使用。在其他一些 Windows应用软件上我们经常能够看到一些大致相同的按钮、复选框、组合框、列表框等控件, 这些控件很有可能就是使用 标准子窗口控件 来实现的。一、子窗口的创建在讲解 "标准子窗口控件" 的使用之前我们首先应该知道如何去创建一个子原创 2021-10-25 15:21:43 · 1130 阅读 · 0 评论 -
中年人学C语言Windows程序设计,19键盘模拟鼠标点击操作实例
在客户区画出6*6的网格,对网格进行点击,网格变色并标记。利用键盘的上下左右,可以移动鼠标,回车或者空格模拟鼠标左键点击。#define _CRT_SECURE_NO_WARNINGS 1/* ------------------------------------------------------------------- 中年人学C语言Windows程序设计--------------------------------------------------原创 2021-10-25 13:58:21 · 643 阅读 · 1 评论 -
中年人学C语言Windows程序设计,18非客户区鼠标消息和点击测试
点击窗口关闭,弹出消息框,显示点击坐标,然后关闭窗口。LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ ////回调函数 ////参数: ////hwnd : 窗口句柄 ////message : 消息ID ////wParam和lParam:消息参数 //int i; //size_t j; HDC hdc;//原创 2021-10-21 14:38:46 · 169 阅读 · 0 评论 -
中年人学C语言Windows程序设计,17鼠标光标的符号和客户区鼠标消息响应
鼠标的使用同样是通过获取Windows鼠标消息来获取用户当前的鼠标状态的。一、鼠标的介绍鼠标是计算机的输入设备之一, 在图形化的操作系统上, 鼠标的使用使一些复杂的操作变得简单, 随着科技的进步, 鼠标的种类也越来越多, 按接口类型可分为串行鼠标、PS/2鼠标、总线鼠标、USB鼠标(多为光电鼠标)四种。按其工作原理及其内部结构的不同可以分为机械式,光机式和光电式。这里我们不讨论鼠标的硬件构造, 更多关于鼠标的硬件知识请自行查阅相关资料。1>. 鼠标所在的位置在Windows系统下, 用户移原创 2021-10-20 17:02:38 · 732 阅读 · 0 评论 -
中年人学C语言Windows程序设计,16键盘:键盘消息和响应
中年人学C语言Windows程序设计,16键盘:键盘消息和响应利用按键 上下键,HOME,END,PAGEUP,PAGEDOWN 移动滚动条。#define _CRT_SECURE_NO_WARNINGS 1/* ------------------------------------------------------------------- 中年人学C语言Windows程序设计----------------------------------------原创 2021-10-20 13:35:37 · 325 阅读 · 0 评论 -
中年人学C语言Windows程序设计,15窗口绘画:矩形绘制函数的应用
1. 绘制矩形以前,我们是使用 Rectangle 函数绘制矩形,然后封闭图形是自带填充功能的,默认是填充白色,跟客户区的背景颜色一样。在绘制之前,通过 SelectObject 函数将画刷选入设备环境,即可设置矩形的颜色。如果不想让矩形填充背景,也可以,用 GetStockObject 函数获得一个叫 NULL_BRUSH 或者 HOLLOW_BRUSH 的空画刷即可。Rectangle函数功能:Rectangle 函数用于绘制一个矩形。该矩形用当前画笔绘制轮廓,用当前画刷填充。API 函数原创 2021-10-18 17:06:47 · 2268 阅读 · 1 评论 -
中年人学C语言Windows程序设计,14窗口绘画:画刷
CreateSolidBrush函数功能:CreateSolidBrush 函数用于创建一个指定颜色的逻辑画刷。API 函数原型:注释:In 说明该参数是输入的。HBRUSH CreateSolidBrush( _In_ COLORREF crColor);参数解析:参数 含义crColor 1. 指定画刷的 RGB 颜色2. RGB 颜色使用 RGB 宏生成 COLORREF 结构返回值:如果函数调用成功,返回值是新画刷的句柄;如果函数调用失败,返回值是 NULL原创 2021-10-16 13:52:20 · 345 阅读 · 0 评论 -
中年人学C语言Windows程序设计,13窗口绘画:画笔
中年人学C语言Windows程序设计,13窗口绘画:画笔GetStockObject函数功能:GetStockObject 函数用于获得 Windows 预设的画笔、画刷、字体或者调色板的句柄。API 函数原型:注释:In 说明该参数是输入的。HGDIOBJ GetStockObject(In int fnObject);复制代码参数解析:参数 含义fnObject 指定待获取对象的类型,具体参考下边。fnObject 可取如下值之一:值 含义BLACK_BRUSH 黑色画刷原创 2021-10-15 14:09:25 · 739 阅读 · 0 评论 -
中年人学C语言Windows程序设计,12绘图函数:各类多边形函数
在正式开始学习绘图之前, 还应该先了解下在屏幕上绘图的相关流程, 首先, 获取设备环境的句柄, 当获取成功时就意味着你的应用程序有了在屏幕上绘图的权限, 然后你就可以调用GDI中的绘图函数通过设备环境句柄对屏幕进行绘制, 等绘制结束后你应该释放这个句柄。获取设备环境句柄Windows提供了许多种方法用来获取不同的设备环境句柄, 这里不能一次性讲全, 当前我们需要使用的主要有以下几种:1>. 使用BeginPaint函数和EndPaint函数:BeainPaint函数原型: HDC B原创 2021-10-14 14:38:03 · 720 阅读 · 0 评论 -
中年人学C语言Windows程序设计,11绘图函数:贝塞尔曲线
PolyBezie函数功能:PolyBezier 函数用于绘制一个或多个贝塞尔曲线。贝赛尔曲线是一种非常优美的曲线,一条贝赛尔样条由4个定义点定义:两个端点和两个控制点。API 函数原型:注释:In 说明该参数是输入的。BOOL PolyBezier( _In_ HDC hdc, _In_ const POINT *lppt, _In_ DWORD cPoints);参数解析:参数 含义hdc 指定设备环境句柄lppt 1. 一个指向 POINT 结构的数组的指针,原创 2021-10-14 14:00:49 · 858 阅读 · 0 评论 -
中年人学C语言Windows程序设计,10 窗口绘图:折线和正弦余弦曲线
中年人学C语言Windows程序设计,10 窗口绘画:折线Polyline函数功能:Polyline 函数将指定数组的连接点绘制成一系列线段(折线)。API 函数原型:注释:In 说明该参数是输入的。BOOL Polyline( _In_ HDC hdc, _In_ const POINT *lppt, _In_ int cPoints);参数解析:参数 含义hdc 指定设备环境句柄lppt 一个指向 POINT 结构的数组的指针(折线的顶点原创 2021-10-13 15:31:10 · 1195 阅读 · 0 评论 -
中年人学C语言Windows程序设计,9 窗口绘图:直线的画法
中年人学C语言Windows程序设计,9 窗口绘画:直线**加粗样式**MoveToEx函数函数功能:MoveToEx 函数将当前绘图位置移动到某个具体的点,同时也可获得之前位置的坐标。API 函数原型:注释:In 说明该参数是输入的,opt 说明该参数是可选参数。BOOL MoveToEx( _In_ HDC hdc, _In_ int X, _In_ int Y, _Out_ LPPOINT lpPoint);参数解析:参数含义h原创 2021-10-13 14:04:29 · 695 阅读 · 0 评论 -
中年人学C语言Windows程序设计,8 窗口绘图:点的画法
中年人学C语言Windows程序设计,8 窗口绘画:点窗口画点函数SetPixel函数功能:SetPixel 函数将指定坐标处的像素设为指定的颜色。API 函数原型:注释:In 说明该参数是输入的,opt 说明该参数是可选参数。COLORREF SetPixel( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ COLORREF crColor);参数解析:参数 含义hdc 设备环境句柄x 指定要设置的像素点的 X原创 2021-10-13 11:01:44 · 1418 阅读 · 0 评论 -
中年人学C语言Windows程序设计,6 滚动条SCROLLINFO,SetScrollInfo,GetScrollInfo,ScrollWindow
中年人学C语言Windows程序设计,6 滚动条如果我们想在 窗口的客户区内输入多行内容就会出现显示不全的情况。如下:就会用到滚动条。在学滚动条前,我们需要先学会获取当前客户区的大小。LOWORD和HIWORD宏获取当前客户区的大小可以使用 LOWORD和HIWORD宏宏功能:获得指定 32 位数据的低 16 位数据和高 16 位数据。不要使用 LOWORD 和 HIWORD 宏去获取鼠标的坐标,因为在多显示器的情况下会得到错误的坐标。应该使用 GET_X_LPARAM 和 GET_Y原创 2021-09-26 15:30:28 · 764 阅读 · 0 评论 -
中年人学C语言Windows程序设计,5 GetSystemMetrics函数的用法,获取WINDOWS窗口的各种尺寸
函数作用可以用GetSystemMetrics函数可以获取系统分辨率,但这只是其功能之一,GetSystemMetrics函数只有一个参数,称之为「索引」,这个索引有75个标识符,通过设置不同的标识符就可以获取系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度。为了使使GetSystemMetrics的功能,我们以获取系统分辨率为例,并将其中的两个值用TextOut输出到窗体中。第一步:用GetSystemMetrics获取屏幕的宽度和高度int x, y;x = GetSystemMetr原创 2021-09-26 13:39:41 · 711 阅读 · 0 评论 -
中年人学C语言Windows程序设计,4 设置文本对齐方式SetTextAlign
中年人学C语言Windows程序设计,4 设置文本对齐方式SetTextAlignSetTextAlign 函数为指定设备环境设置文本的对齐标志。函数功能:指定设备环境设置文本的对齐标志。API 函数原型:UINT SetTextAlign( _In_ HDC hdc, _In_ UINT fMode);参数解析:使用下面的列表中的掩码指定文本对齐方式:若当前字体有一条缺省的垂直基线(如Kanji),下列值用于取代 TA_BASELINE 和 TA_CENTER:返回原创 2021-09-25 12:13:22 · 893 阅读 · 0 评论 -
中年人学C语言Windows程序设计,3 窗口中文本的输出TextOut
中年人学C语言Windows程序设计,3 文本的输出函数功能TextOut 函数使用当前选择的字体、背景颜色和文本颜色,将一个字符串绘制于窗口的指定位置。API 函数原型:注释:In 说明该参数是输入的,opt 说明该参数是可选参数。BOOL TextOut( _In_ HDC hdc, _In_ int nXStart, _In_ int nYStart, _In_ LPCTSTR lpString, _In_ int cchString);参数解析返回原创 2021-09-24 16:41:45 · 852 阅读 · 0 评论 -
中年人学C语言Windows程序设计,2 第一个windows窗口
中年人学C语言Windows程序设计2.第一个windows窗口在VST019中创建第一个windows窗口代码如下:/* ------------------------------------------------------------------- 中年人学C语言Windows程序设计--------------------------------------------------------------------*/#include <原创 2021-09-24 10:34:34 · 871 阅读 · 0 评论 -
中年人学C语言Windows程序设计,1输出 HELLO WORLD 对话框
中年人学C语言Windows程序设计,第一期 HELLO WORLD使用VS2019 建立一个新项目下一步选择桌面应用程序创建helloworld.c文件敲入代码,#define _CRT_SECURE_NO_WARNINGS 1#include<Windows.h>int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow){ MessageBox原创 2021-09-23 15:25:24 · 429 阅读 · 0 评论