win32编程 -- 滚轮实现放大或缩小图片

我怎么可能失望呢,我对这个世界早就不抱任何希望了。。。

----  网易云热评

一、添加一张位图

 

二、相关代码

 

#include <windows.h>#include "resource.h"HINSTANCE g_hInstance = 0;//接收当前程序实例句柄HANDLE g_输出句柄 = 0;//接收标准输出句柄int g_x = 128;int g_y = 128;void 绘图(HWND hWnd){       PAINTSTRUCT p = { 0 };       HDC hdc = BeginPaint(hWnd, &p);       HBITMAP hBmp = LoadBitmap(g_hInstance, (wchar_t*)IDB_BITMAP1);       //到内存dc       HDC hMDc = CreateCompatibleDC(hdc);       HGDIOBJ hOBp=SelectObject(hMDc, hBmp);       StretchBlt(hdc, 0, 0, g_x, g_y, hMDc, 0, 0, 112, 88, SRCCOPY);              //把位图取出来       SelectObject(hMDc, hOBp);       DeleteObject(hBmp);       DeleteDC(hMDc);                  EndPaint(hWnd, &p);}void 滑轮滚动(HWND hWnd,WPARAM wParam){       short nOf = HIWORD(wParam);       g_y += nOf / 120;       g_x += nOf / 120;       InvalidateRect(hWnd,NULL,TRUE);}//2、窗口处理函数LRESULT CALLBACK WndProc(HWND hWnd, UINT msgID,              WPARAM wParam, LPARAM lParam){       //7、处理消息       switch (msgID)       {       case WM_MOUSEWHEEL:       滑轮滚动(hWnd,wParam);              break;case WM_PAINT:       绘图(hWnd);       break;case WM_DESTROY:                     PostQuitMessage(0);//销毁窗口                     break;       }       return DefWindowProc(hWnd, msgID, wParam, lParam);}//3、注册函数,第一个参数,窗口类名称,第二个参数,指向窗口处理函数的函数指针void Register(LPCWSTR lpClassName, WNDPROC winProc){              WNDCLASSEX wc = { 0 };              wc.cbSize = sizeof(wc);//结构体大小             wc.cbClsExtra = 0;//窗口类的申请缓存区,0表示不开启缓存              wc.cbWndExtra = 0;//窗口的申请缓存区,0表示不开启缓存              wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);//背景颜色,一般白色              wc.hCursor = NULL;//设置光标。null表示默认              wc.hIcon = NULL;//默认左上角的图标              wc.hInstance = g_hInstance;//第一个参数实例句柄,可以找到进程在那块内存              wc.lpfnWndProc = winProc; //lp 一般都是指针,处理函数名或指针              wc.lpszClassName = lpClassName;//窗口类名称,比如公司名字              wc.lpszMenuName = NULL;//没有菜单用null              wc.style = CS_HREDRAW | CS_VREDRAW;//窗口变化,会重绘,窗口类的一般风格              RegisterClassEx(&wc);}//4、创建窗口,(窗口类名称,窗口标题栏名称)HWND CreateMain(LPCWSTR lpClassName, LPCWSTR lpWindowName){       HWND hWnd = CreateWindowExW(0, lpClassName, lpWindowName,                WS_OVERLAPPEDWINDOW, 100, 100, 500, 600, NULL, NULL, g_hInstance,  NULL);              return hWnd;}//5、显示窗口(窗口句柄)void Display(HWND hWnd){              ShowWindow(hWnd, SW_SHOW);//句柄,显示方式              UpdateWindow(hWnd);//调用一次刷新窗口}//6、消息循环void Message(){              MSG nMsg = { 0 };              while (GetMessage(&nMsg, nullptr, 0, 0))              {                            TranslateMessage(&nMsg);                            DispatchMessage(&nMsg);              }}//1、入口函数int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevIns, LPSTR lpCmdLine, int  nCmdShow){              AllocConsole();//显示dos窗口              g_输出句柄 = GetStdHandle(STD_OUTPUT_HANDLE);              g_hInstance = hInstance;              Register(L"主", WndProc);    HWND hWnd = CreateMain(L"主", L"主窗口");       Display(hWnd);       Message();       return 0;}

 

欢迎关注公众号:顺便编点程

 

Vue Quill Editor是一个基于Quill富文本编辑器的Vue.js组件,它允许你在前端方便地添加富文本功能。如果你想要实现在其中实现图片放大缩小,通常可以借助HTML5的`<img>`标签以及JavaScript库,如Vue Zoom 图片放大插件。 以下是简单的步骤: 1. 首先,在Vue项目中安装`vue-zoom`库: ```bash npm install vue-zoom --save ``` 2. 在你的组件中引入并使用`<vue-zoom>`组件包裹图片: ```html <quill-editor> <div v-html="richText" class="ql-container"></div> <!-- 插入图片的地方 --> <vue-zoom :image-url="imageUrl"> <img :src="imageUrl" alt="图片描述"> </vue-zoom> </quill-editor> ``` 3. 将需要放大图片URL存储在`imageUrl`变量中,并绑定到`<img>`元素上。 4. 当用户点击图片时,你可以初始化`vue-zoom`并设置放大比例等配置: ```javascript data() { return { imageUrl: '', zoomInstance: null, } }, methods: { handleImageClick() { this.zoomInstance = new VueZoom(this.$refs.imageZoom, { // 设置初始缩放比例、最大缩放比例、鼠标滚轮事件等配置 scale: 1, maxScale: 2, onWheel: function(e) { /* ... */ }, }); } }, mounted() { if (this.imageUrl) { this.handleImageClick(); } }, destroyed() { if (this.zoomInstance) { this.zoomInstance.destroy(); } } ``` 5. 在Quill编辑器的内容变化时,更新`imageUrl`值,以便实时显示在编辑器内并响应放大缩小操作。 记得处理好图片加载失败等情况,并确保遵守Vue Quill Editor的API规则,特别是当图片是通过富文本插入时。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值