编写一个C程序,运行时输出以下图形_java图形程序设计之图片显示

编写一个C程序,运行时输出以下图形_java图形程序设计之图片显示以下是完成输出文字的代码部分#include <Windows.h> // windows程序所依赖的头文件#pragma comment(lib,”winmm.lib”)#define WINDOW_WIDTH 800 // 窗口宽度#define WINDOW_HEIGHT 600 // 窗口高度#define WINDOW…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

以下是完成输出文字的代码部分

#include <Windows.h> // windows程序所依赖的头文件
#pragma comment(lib,"winmm.lib")
#define WINDOW_WIDTH 800 // 窗口宽度
#define WINDOW_HEIGHT 600 // 窗口高度
#define WINDOW_TITLE L"第三讲:windows标准输出字符与图形" // 窗口标题名称
HDC g_hdc = NULL;					// 定义全局设备环境句柄
BOOL InitRes(HWND hwnd);			// 资源初始化
VOID PaintFunc(HWND hwnd);		// 绘图函数
BOOL CleaupFunc(HWND hwnd);		// 释放资源
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);	// 窗口过程函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { 

// 一、设计完整窗口类型
WNDCLASSEX windclass = { 
 0 };
windclass.cbSize = sizeof(WNDCLASSEX);		// 设计结构体的字节数大小
windclass.style = CS_HREDRAW | CS_VREDRAW;	// 窗口样式
windclass.lpfnWndProc = WndProc;			// 指向窗口过程函数的指针
windclass.cbClsExtra = 0;					// 窗口类的附加内存
windclass.cbWndExtra = 0;					// 窗口的附加内存
windclass.hInstance = hInstance;			// 指定包含窗口过程的程序实例句柄
windclass.hIcon = (HICON)::LoadImage(NULL,L"icon.ico",IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE); // 窗口标题图标
windclass.hCursor = LoadCursor(NULL, IDC_ARROW);		// 指定窗口类的光标句柄
windclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);		// 指定白色画刷句柄 
windclass.lpszMenuName = NULL;										// 窗口菜单
windclass.lpszClassName = L"CharGraphicDemo";						// 指定窗口类的名称
// 二、注册窗口类
if (!RegisterClassEx(&windclass))
return -1;
// 三、创建窗口
HWND hwnd = CreateWindow(L"CharGraphicDemo", WINDOW_TITLE, WS_OVERLAPPEDWINDOW, METRICS_USEDEFAULT, METRICS_USEDEFAULT, WINDOW_WIDTH, WINDOW_HEIGHT, NULL, NULL, hInstance, NULL);
// 四、显示 更新窗口
MoveWindow(hwnd, 380, 100,WINDOW_WIDTH,WINDOW_HEIGHT,true);		// 移动窗口
ShowWindow(hwnd, nShowCmd);
UpdateWindow(hwnd);
// 初始化资源 
if (!InitRes(hwnd))
{ 

MessageBox(hwnd, L"资源初始化失败!", L"提示", 0);
return FALSE;
}
// 添加背景音乐 
mciSendString(L"Open ./Music/轻音乐-天气预报背景音乐.mp3 alias music", 0, 0, 0);
mciSendString(L"play music repeat", 0, 0, 0);
// 五、消息循环过程 
MSG msg = { 
 0 };
while (msg.message != WM_QUIT)
{ 

if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{ 

TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
// 六、窗口类的注销
UnregisterClass(L"CharGraphicDemo", windclass.hInstance);	// 程序结束 注销类
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { 

PAINTSTRUCT ps;		// 定义记录变量
switch (message)
{ 

case WM_PAINT:		// 客户区重绘消息
g_hdc = BeginPaint(hwnd, &ps);
InitRes(hwnd);		
EndPaint(hwnd, &ps);
ValidateRect(hwnd, NULL);		// 更新客户区的显示
break;
case WM_DESTROY:		// 若是窗口销毁消息
PostQuitMessage(0);		// 向系统表明有线程终止请求,用来响应WM_DESTROY消息
break;
default:		// 如果上面所有case条件都不符合,则执行该语句
return DefWindowProc(hwnd, message, wParam, lParam);	// 调用缺少窗口过程
}
return 0;
}
BOOL InitRes(HWND hwnd)		// 资源初始化
{ 

g_hdc = GetDC(hwnd);			// 获取设备环境句柄
PaintFunc(hwnd);
ReleaseDC(hwnd, g_hdc);		// 释放设备环境句柄 
return TRUE;
}
VOID PaintFunc(HWND hwnd)		// 绘图函数
{ 

HFONT hFont = CreateFont(30, 0, 0, 0, 0, 0, 0, 0, GB2312_CHARSET, 0, 0, 0, 0, L"微软雅黑");	// 创建字体
SelectObject(g_hdc, hFont);		// 将字体迁入设备环境句柄
SetBkMode(g_hdc, TRANSPARENT);		// 文字背景色为透明
// 定义三段文字字符串
wchar_t textFirst[] = L"星星之为,可以燎原;数风流人物还看今朝;";
wchar_t textsecond[] = L"与天奋斗,其乐无穷!与地奋斗,其乐无穷!与人奋斗,其乐无穷!";
wchar_t textthird[] = L"----------毛主席";
SetTextColor(g_hdc, RGB(50, 255, 50));
TextOut(g_hdc, 30, 150, textFirst, wcslen(textFirst));
SetTextColor(g_hdc, RGB(50, 50, 255));
TextOut(g_hdc, 30, 200, textsecond, wcslen(textsecond));
SetTextColor(g_hdc, RGB(50, 150, 50));
TextOut(g_hdc, 500, 250, textthird, wcslen(textthird));
DeleteObject(hFont);		// 释放字体对象
}
BOOL CleaupFunc(HWND hwnd)		// 释放资源
{ 

// 留给大家自己完成 
return TRUE;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171005.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Anaconda与Pycharm的辨析[通俗易懂]

    Anaconda与Pycharm的辨析[通俗易懂]Anaconda与Pycharm的辨析Anaconda是python文件的一个包管理器,可以用它下载python文件的相关库和包,制作成python编程所需要的环境(模块、包、库)Pycharm是python文件的集成开发环境,在Pycharm上可以进行python文件的开发与调试,像VisualStudio之于C++,Eclipse之于Java。Pycharm里面也有下载python文件的相关库和包的功能,但很多库和包Pycharm可能因为网络及版本问题不能下载安装故Pycharm和Anacon

  • Python脚本到Windows可执行程序——Cxfreeze的安装与使用

    Python脚本到Windows可执行程序——Cxfreeze的安装与使用Python脚本到Windows可执行程序——Cxfreeze的安装与使用下载安装打包程序通过命令行简单使用使用setup.py详细配置Python脚本到Windows可执行程序——Cxfreeze的安装与使用写好的Python程序,分发到Windows用户的时候,如果再在每一台电脑上配置执行Python程序的解释器和相应的依赖库,就会比较繁琐。所以可以将Python程序打包程可执行的.exe文件。可以用的库有:cx_freeze,py2exe,P.

    2022年10月20日
  • list转json字符串,实体类包含list转实体类「建议收藏」

    list转json字符串,实体类包含list转实体类「建议收藏」StringjsonString=JSON.toJSONString(list);//list转json字符串 List<FanMate>list=JSON.parseArray(jsonString,FanMate.class);//listjson字符串转list StringjsonString=JSON.toJSONString(entity);//list转json字符串 FanMateentity=JSON.parseObject(…

    2022年10月18日
  • 光猫桥接后如何连接光猫页面「建议收藏」

    光猫桥接后如何连接光猫页面「建议收藏」1.连接光猫wifi,192.168.1.1进2.网线直连或在局域网内路由器WAN口设置成自动获取IP地址

  • 关于radcontrols控件之Radupload「建议收藏」

    关于radcontrols控件之Radupload「建议收藏」Namespace:Telerik.Windows.ControlsAssembly:Telerik.Windows.Controls.Input(inTelerik.Windows.Controls.Input.dll)RadUpload是客户端和服务器端的一部分。在客户端执行完全在浏览器中使用Silverlight的平台。在服务器端需要处理的服务器进行处理的文件提交到客户端。检查在…

  • nginx url转发的一种方式「建议收藏」

    nginx url转发的一种方式「建议收藏」比如,以前是http://vampire.com/elasticsearch现在要转到http://vampire.com/search配置如下:server{listen81;server_namelocalhost;location/{roothtml;indexindex.htmlinde

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号