事先准备  图形库的安装和帮助文档   (这里没有插件)


1.新建窗口
    initgraph(640,480);//单位 像素
    closegraph();//关闭窗口


2.画线   颜色(宏定义或者RGB自己调RGB(r,g,b))
    line(100,200,200,400);
    setlinecolor(WHITE);
    //setlinestyle


3.画图形  颜色和填充色
    rectangle(200,200,400,400);//矩形
    fillrectangle(200,200,400,400);//填充矩形
    solidrectangle(200,200,400,400);//无边框填充矩形
    //三种类型的函数  1.线条无填充 2.只有填充 3.有线条有填充
    setlinecolor(颜色);
    setfillcolor(颜色);


4.贴图 路径 资源
    loadimage(&img,"文件名",高度,宽度);
    putimage(x,y,&img);

loadimage(NULL,"文件名",高度,宽度);//直接贴
    loadimage(NULL,L"JPG",MAKEINTRESOURCE(图片ID),高度,宽度);//资源文件  文件名修改为类型加ID的形式


5.鼠标操作
    MOUSEMSG msg;
    if(MouseHit())//判断有无鼠标信息
    msg=GetMouseMsg();//获取鼠标信息
    switch(msg.uMsg)
    case WM_LBUTTONDOWN:
    case WM_RBUTTONDOWN:

键盘消息
    #include<conio.h>
    char ch=getch()//获取键盘消息
    if(kbhit())//判断有无鼠标信息


6.文字输入输出 文字颜色和样式
    outtextxy(_T("hello"),x,y);
    settextcolor(颜色);
    settextstyle(高度,宽度(写0表默认),_T("字体"));
    setbkmode(TRANSPARENT);//设置背景颜色透明


7.音乐播放
    #include<mmsystem.h>
    #pragma comment(lib,"winmm.lib")
    函数 PlaySound  只能wav格式  可以使用资源文件
    PlaySound("c:\\win95\\media\\The Microsoft Sound.wav", NULL, SND_FILENAME | SND_ASYNC);
    //文件名     SND_FILENAME 表示文件名    SNE_ASYNC表示异步播放(SND_SYNC 同步播放 放完音乐才开始下一步) SND_LOOP  表示循环播放
    PlaySound((LPCTSTR)IDR_STARTWIN, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
    //WAV ID    第二个参数是程序的实例句柄
    PlaySound(NULL,NULL,NULL);停止播放

函数 mciSendSetring  可以放mp3  wav等 不能使用资源文件
    mciSendSetring(L"open 文件名 alias mp3",NULL,NULL,NULL);
    mciSendSetring(L"play mp3",NULL,NULL,NULL);//取别名之后直接播放就行
    可选命令 pause  stop


代码:

#include <graphics.h>
// 引用图形库头文件
#include <conio.h>

知识点 1:创建的初始化和关闭
创建窗口: HWND initgraph( int width, int height,
int flag = NULL); EW_NOMINIMIZE
关闭窗口:void closegraph();

知识点 2:位置和颜色函数
设置原始位置:void setorigin(int x, int y);
设置背景颜色:void setbkcolor(COLORREF color);
设置背景模式:void setbkmode(TRANSPARENT);
设置背景刷新:cleardevice();
颜色 BLACK-黑色 BLUE-蓝色 GREEN-绿色 RED-红色 YELLOW-黄色 WHITE-白色
设置填充颜色:void setfillcolor(COLORREF color); 无效
设置线条样式:void setlinestyle(int style);
样式如下:PS_DASH--虚线
PS_DOT--点
PS_SOLID---实线 PS_NULL--不可见
设置线条颜色:void setlinecolor(COLORREF color);

知识点 3:画图形
画椭圆弧:void arc( int l,int t,int r,int bm,double st,double end
参数:左顶右底位置。圆弧起点和终点
画无填充的圆:void circle(
int x, int y, int radius);半径
画有填充的圆:void fillcircle( int x, int y, int radius);
无填充椭圆形: void ellipse(
int left, int top,
int right, int bottom);
填充椭圆:void fillellipse( int left, int top,
int right, int bottom);
无填充矩形:void rectangle(int left,int top,int right,int bottom)
有边框的填充矩形:void fillrectangle(int left,int top,int right,int bottom);
圆角矩形框:void fillroundrect( int l,int t,int r,int b,int 圆弧宽,int 圆弧高)
画一条线:void line( int x1,
int y1,
int x2,
int y2);
画一个带颜色的点:void putpixel(
int x, int y, COLORREF color);

知识点 4:文字处理
指定位置输出字符串:void outtextxy(
int x, int y, LPCTSTR str);
屏幕输出字符串:int drawtext(char* str,RECT* pRect,UINT uFormat);
参数:字符串,矩形区域地址,文字格式
DT_CENTER-水平居中和 DT_SINGLELINE 一起使用
DT_VCENTER-垂直居中和 DT_SINGLELINE 一起使用
DT_LEFT-左对齐 DT_RIGHT-右对齐 DT_TOP-顶对齐
DT_INTERNAL-系统字体 DT_NOCLIP-不受区域限制设置字体颜色:void settextcolor(COLORREF color);
设置字体属性:settextstyle(int nHeight, int nWidth, "宋体")

知识点 5:图片处理
加载图片:从图片文件获取图像(bmp/gif/jpg/png/tif/emf/wmf/ico)
void loadimage(
IMAGE* pDstImg,
// 保存图像的 IMAGE 对象指针
LPCTSTR pImgFile,
// 图片文件名
int nWidth = 0,
// 图片的拉伸宽度
int nHeight = 0,
// 图片的拉伸高度
bool bResize = false // 是否调整 IMAGE 的大小以适应图片
绘制图象: void putimage(
int dstX,
// 绘制位置的 x 坐标
int dstY,
// 绘制位置的 y 坐标
IMAGE *pSrcImg,
// 要绘制的 IMAGE 对象指针
DWORD dwRop = SRCCOPY
// 三元光栅操作码)
对象 IMAGE
class IMAGE(int width = 0, int height = 0);

知识点 6:窗口函数
输入框:bool InputBox(
LPTSTR pString,
保存输入字符串
int
nMaxCount,
最大缓存
LPCTSTR pPrompt = NULL, 提示文字
LPCTSTR pTitle = NULL,
标题
LPCTSTR pDefault = NULL, 用户输入框默认值
int
width = 0,
宽度
int
height = 0, 高度
bool bHideCancelBtn = true); //是否要取消按钮
输出框:

知识点 7:鼠标消息
获取所有消息:m = getmessage(EM_MOUSE | EM_KEY);
获取鼠标消息:MOUSEMSG GetMouseMsg();堵塞函数
获取鼠标消息(非堵塞)bool PeekMouseMsg(MOUSEMSG *pMsg, bool bRemoveMsg);
检测是否有鼠标消息:bool MouseHit();
鼠标消息结构体:
struct MOUSEMSG{
UINT uMsg;
// 当前鼠标消息bool mkCtrl;
// Ctrl 键是否按下
bool mkShift;
// Shift 键是否按下
bool mkLButton;
// 鼠标左键是否按下
bool mkMButton;
// 鼠标中键是否按下
bool mkRButton;
// 鼠标右键是否按下
int x;
// 当前鼠标 x 坐标(物理坐标)
int y;
// 当前鼠标 y 坐标(物理坐标)
int wheel;
// 鼠标滚轮滚动值
};

*/


代码:

#include <graphics.h> // 引用图形库头文件
#include <conio.h> 知识点 1:创建的初始化
#include <stdio.h>int main()
{
//知识点 1: 窗口创建和关闭
initgraph(640, 480);
//知识点 2:颜色
setbkcolor(BLUE);
//cleardevice(); //设置背景后需要画图才行,否则需要清空设备
setlinecolor(WHITE);
setorigin(10, 30); //设置初始位置
setlinestyle(PS_DASH);
setfillcolor(RED);
circle(200, 200, 100);
// 画圆,圆心(200, 200),半径 100
//知识点 3:画图处理
setlinecolor(RGB(0, 255, 255));
setfillcolor(GREEN);
circle(500, 200, 100);
// 画圆,圆心(200, 200),半径 100
arc(50, 50, 400, 120, 3, 3);
fillrectangle(10, 10, 100, 100);
//知识点 4:文字处理
RECT r = { 0, 0, 639, 479 };
drawtext(_T("Hello World"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
setbkmode(TRANSPARENT);
settextcolor(RGB(255,25,255));
settextstyle(160, 30, _T("宋体"));
outtextxy(120, 20, "你好");
//知识点 5:图片处理
IMAGE img;loadimage(&img, "./res/bk.jpg", 384, 384);
//putimage(0, 0, &img);
char s[20] = { 0 };
InputBox(s, 10, "请输入半径","半径","10",20,50,false);
int x = atoi(s);
ExMessage m;
while (true)
{
// 获取一条鼠标或按键消息
m = getmessage(EM_MOUSE | EM_KEY);
switch (m.message)
{
//case WM_MOUSEMOVE:
// 鼠标移动的时候画红色的小点
//
MessageBox(NULL, "WM_MOUSEMOVE", "123", MB_OK);
// break;
case WM_LBUTTONDOWN:
// 如果点左键的同时按下了 Ctrl 键
MessageBox(NULL, "WM_LBUTTONDOWN", "123", MB_OK);
break;
case WM_KEYDOWN:
if (m.vkcode == VK_F1)
MessageBox(NULL, "VK_NUMPAD0", "123", MB_OK);
break;
}
}
_getch();
// 按任意键继续
closegraph();
// 关闭绘图窗口
return 0;
}

windows 上的C语言 图形界面设计函数 ( easyx 插件 )相关推荐

  1. c语言界面函数,C语言图形界面常用函数集锦

    (以下函数均应在图形方式初始之后使用(initgraph(a,b)),在win-tc中使用BGI图形程序模板时,其中已经定义有一个initgr函数,在main函数中应在执行initgr函数之后再使用这 ...

  2. c语言 图形界面 入门,C语言是怎么实现图形界面的?

    GTK就可以,一个基于C语言的免费.开源.跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例: 1.首先,下载GTK安装包 ...

  3. JAVA图形界面设计

    图形界面设计 1 Java Swing 概述 图形化界面(Graphics User Interface,GUI)是指采用图形方式显示的计算机操作用户界面. 通过图形化界面,用户和程序之间可以方便地进 ...

  4. QT4.7下的UI图形界面设计用例——银行排队系统

    这里写自定义目录标题 QT4.7的UI界面设计功能 效果展示 文件机制 UI功能详述 信号与槽机制(非常重要) 添加新文件 顶部菜单栏设定 菜单界面与点击下拉栏选项后界面切换 弹窗显示 主界面与弹窗界 ...

  5. Qt用户图形界面设计应用(闹钟)

    Qt用户图形界面设计应用(闹钟) 一.Qt介绍 什么是Qt Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司于 1995 年底出品,并于 2008年6月17日被NOKIA ...

  6. 【JAVA】基本图形界面设计

    [JAVA]基本图形界面设计 基本知识点 JAVA中的组件包: 1:采用java.awt.*(abstract Windowing Toolkit) 2:采用javax.swing.* 特点: 前者: ...

  7. Java实验二 图形界面设计

    学院 计算机科学与教育软件学院 年级.专业.班 网络16* 姓名 卟咚君 学号 1606100*** 实验课程名称 Java语言实验 成绩 实验项目名称 图形界面设计 指导老师 ** 一.实验目的 • ...

  8. Python学习:图形界面设计01

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: Python实现输入电影名字自动生成豆瓣评论词云图 ...

  9. JAVA-关于计算器的简单图形界面设计例子(不实现功能)

    对于刚刚学习JAVA的小伙伴们来说,对图形界面设计肯定不陌生,我们可以利用javax.swing类库来进行图形界面的简单设计. 下面我们用JAVA图形界面设计的相关基础知识来实现一个简易计算器的界面( ...

最新文章

  1. 利用LVS+Keepalived 实现高性能高可用负载均衡服务器
  2. 冰墩墩+周杰伦也救不了NFT
  3. P3515-[POI2011]Lightning Conductor【整体二分,决策单调性】
  4. gateway请求拦截_一种网关对用户请求进行统一拦截判断是否放行的方法与流程...
  5. Python模块及其导入
  6. 微型计算机原理_课后答案,微机原理课后习题答案
  7. 【转】Android 中的 Service 全面总结
  8. 64. 整合异步脚本
  9. length属性,length()方法和size()的方法的区别
  10. HTML(超文本标记语言)-----WEB开发基础之二
  11. Qt —— 海康SDK获取视频并OpenCv处理每帧图像进行显示
  12. 【经典面试题】实现平方根函数sqrt
  13. 文本分类数据和评价指标
  14. iOS 深度跳转(scheme、universal link)
  15. JavaWeb开发网上商城
  16. 一个很简单的淘宝优惠券搜索助手 大家看看有没有用吧
  17. macOS 安装PhotoshopCC 2017
  18. Java学习推荐:最全JavaWeb全套视频教程——适合零基础入门
  19. 用于工作的 Linux 桌面——Ubuntu 22.04
  20. 惯性传感器(IMU)简介【转】

热门文章

  1. P5514 永夜的报应(异或,数学)
  2. 洛谷 题解 P5514 【[MtOI2019]永夜的报应】
  3. iOS-指纹识别,面部识别
  4. 为什么市场利率涨,国债价格跌?
  5. Future和Callback
  6. Web安全 学习日记7 - XSS(跨站脚本攻击)
  7. SpringMVC+Mybatis+Maven搭建
  8. 虚拟机Ubuntu系统改变中文与Windows系统共享文件到安装pycharm学习MySQL数据库
  9. 超详细的PHP入门知识点讲解
  10. php中如何强制转为长整型,关于php32位系统中长整型的强制转化溢出的详细介绍...