探讨《如何在MFC设计超链接控件类》

c++学习 | MFC —— 控件介绍 VS2022中MFC的全部控件 阅读详情

《如何在MFC设计超链接控件类》

原文传送门:http://blog.kingsamchen.com/archives/517#comment-1912

运行之后一切都完美,只有一个问题,当弹出IE窗口挡住了Label之后,在切换会原来的程序,鼠标移动到Label上时不会再次显示手型鼠标指针。查询资料跟踪程序后发现:

void CLinkLabel::OnMouseMove(UINT nFlags, CPoint point)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    if (m_bTrack)
    {
        if (m_bMouseOn)
        {
            CRect rec;
            GetClientRect(&rec);

            // 鼠标离开了LinkLabel
            if (!rec.PtInRect(point))
            {
                m_bMouseOn = FALSE;
                ::ReleaseCapture();
            }
        }
        // 鼠标进入LabelLink
        else
        {
            m_bMouseOn = TRUE;
            SetCapture();

            // #define IDC_HAND  MAKEINTRESOURCE(32649)
            // 直接引用IDC_HAND需要添加头文件
            ::SetCursor(AfxGetApp()->LoadStandardCursor(MAKEINTRESOURCE(32649)));

            Invalidate(TRUE);
        }
    }
    CStatic::OnMouseMove(nFlags, point);
}

如果我鼠标悬停在CLinkLabel,如果突然有窗口阻挡了CLinkLabel所在的主窗口,鼠标再次移动到CLinkLabel,因为之前主窗口丢失了焦点,手型鼠标被重置成焦点窗口默认样式,SetCapture(手型)已经自动失效

鼠标不在CLinkLabel,不会发生CLinkLabel::OnMouseMove,鼠标在CLinkLabel,则 rec.PtInRect(point)==TRUE,不会进入进入if (!rec.PtInRect(point))执行m_bMouseOn = FALSE

,因此m_bMouseOn一直是等于TRUE,CLinkLabel认为鼠标一直在控件上,不会再次::SetCursor()。

通过论坛朋友帮助和网上查询咨询找到了两种解决方案:

1、在WM_SETCURSOR消息中执行SetCursor(论坛提供)

2、在PreTranslateMessage中截获WM_MOUSEMOVE,添加一个监视,如果鼠标离开则产生WM_MOUSELEAVE事件,然后处理之。传送门

PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
// m_ToolTip.RelayEvent(pMsg);
	switch( pMsg->message ){
		case WM_MOUSEMOVE:		//为了让系统产生上面的WM_MOUSELEAVE消息,你必需做如下处理
		TRACKMOUSEEVENT trmouse;
		trmouse.cbSize = sizeof(TRACKMOUSEEVENT);
		trmouse.dwFlags = TME_LEAVE;
		trmouse.dwHoverTime = 400;
		trmouse.hwndTrack = pMsg->hwnd;
		if(!_TrackMouseEvent(&trmouse))
			return FALSE;
		break;
	}
	return CLinkLabel::PreTranslateMessage(pMsg);
}
我选择了第一种,简单直接。第二种可以借鉴。


VC++ 中巧妙实现超链接控制  我们用MFC开发应用程序时,通常在窗口中放置大量的控件,通过触发这些控件的事件来完成我们的控制。但并不是每个控件都提供所有的事件消息,例如我们在对话窗口中加入一个静态文本控件(CState类),这时在ClassWizard中此控件没有任何消息,也就无法完成所要求的控制。VC++中为我们提供了一个API函数GetWindowRect(),此函数可以获得窗口中所有控件的位置,这样我们就可以在窗口的消 阅读详情

相关推荐

MFC Windows 程序设计[350]之超链接编辑框控件

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。......

hnjzfwy的博客 963

如何在MFC设计超链接控件类

关于如何在MFC设计自己的超链接控件类,KC之前写过这样的文章。额,其实那篇文章也就一代码……而且代码质量有点烂 于是经过重修Rebuild之后,把设计的详细过程加以分析~ 1.摘要   控件的超链接效果在程序的UI设计中是经常会碰到的。但是在MFC的低版本中(VS2008所对应的MFC 9之前的版本),并没有现成的控件可以使用(WTL在早期似乎就提供了类似的控件)。

caowei880123的专栏 2193

MFC Windows 程序设计[351]之超链接的简单例程

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。......

hnjzfwy的博客 996

MFC静态文本控件设置超链接

有时我们需要在窗口上设置一个超链接,比如在Aboutdlg上设置“我的博客”这样的超链接.具体的设置方法如下。 1、首先我们在窗体上添加一个Static文本控件,修改Caption属性,设置成你想要的超链接标题,比如“更多内容欢迎访问小梦的博客”等。2、这步很重要。由于Static控件不具备设置超链接的能力,我们需要重写一个继承自CStatic的类CHyperLink. 这里可以直接复制两个文件

人至贱则无敌 3416

MFC Windows 程序设计[349]之多项超链接编辑框

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。......

hnjzfwy的博客 938

MFC实现跳转超链接(附完整源码)

MFC实现跳转超链接(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 589

MFC所有控件介绍及基本使用

本篇文档介绍了MFC控件的基本使用,同时提供了关于MFC控件使用的工程代码,程序界面如下图,有兴趣的可以到文档最后的链接处进行下载。控件使用工程下载路径:https://download.youkuaiyun.com/download/linyibin_123/88565032。

linyibin_123的博客 6028

MFC中RichEdit控件的深入应用与实战教程

RichEdit控件是Microsoft Windows操作系统中用于创建富文本编辑器的基础组件。它支持文本的多种格式化选项,包括字体、颜色、大小、样式,以及超链接和图像的嵌入。开发者可利用RichEdit控件打造功能丰富的文本编辑器,适用于笔记应用、文本处理软件甚至代码编辑器等场景。RichEdit控件能够处理多种字符格式,允许多段落编辑,并提供基本的文本操作功能,如剪切、复制、粘贴。它还支持OLE(对象链接和嵌入)技术,可以嵌入其他文档,如Excel表格或PowerPoint演示文稿。

weixin_29781865的博客 804

mfc e将控件置于窗口顶层_VC|使用控件派生类实现超链接控件

设计应用程序时,为了让用户方便地通过程序访问某个网站,需要采用具有超级链接功能的控件。这样的一类控件可以从静态文本类CStatic派生。在Windows API中,控件用一个结构体来表示,用API函数来操作控件,在MFC中,将结构体和API函数封装为类,与控件相关的就封装为不同的控件类,类类型可以方便地实现继承和派生关系。1 新建一个基于对话框的应用程序website。2 新建两个静态文本控件,两...

weixin_39897758的博客 437

MFC扩展CStatic实现超链接与透明背景的静态文本控件

在MFC桌面应用开发中,原生CStatic控件功能单一,难以实现超链接跳转、鼠标悬停反馈与透明背景等常见交互效果,开发者往往需要依赖WM_CTLCOLORSTATIC消息处理或窗口子类化,导致代码分散且难以维护。CStaticEx作为CStatic的派生类,将自绘文本、背景透明、链路下划线及点击响应等能力封装于内部状态机与绘制链路中,通过重写OnPaint、处理CtlColor和TrackMouseEvent等机制,实现控件级解耦。该方案适用于对话框中的超链接提示、动态背景下的静态文本展示以及大型MFC项目

weixin_28733777的博客 221

逆向实战:360加固DEX解密全流程解析(附Frida脚本与SoFixer修复技巧)

本文深入解析360加固DEX解密的全流程,涵盖动态Hook技术、Frida脚本应用及SoFixer修复技巧。通过实战案例详细展示如何识别加固特征、定位关键函数、实现ELF文件修复,并解析RC4和zlib解密算法,为逆向工程师提供全面的技术指导。

weixin_29323551的博客 608

MFC基本控件-静态文本的使用

MFC的基本空控件可以帮助大家快速做出一个可视化界面, 下面我将使用一个常见的采集表, 为大家说明常用基本控件的使用方法。 首先从最简单的静态文本开始。 环境:VS2019目录一.基本使用二.链接使用三.风格设置首先新建一个风格类的实例化对象第二步在主窗口的cpp文件中初始化 设置字体颜色 静态文本一般用于标识信息, 和代码中的注释类似。下面请看基本使用的举例: 首先在窗口上放置了六个控件, 默认为“static”的就是静态文本, 左键单击就可以修改默认值, 如图:

Lenn Louis' Scribe 2594

MSP430项目设计:2020年TI杯大学生电子设计竞赛 坡道行驶电动小车(C题)循迹小车(分享项目展示视频与源码)

文章目录题目要求一、硬件设计二、理论分析与计算三、电路与程序设计四、测试方案与测试结果五、项目展示 哔哩哔哩项目展示视频:https://www.bilibili.com/video/BV1oz4y1d7mH/ 百度网盘资料链接:https://pan.baidu.com/s/1PC-lkSORH_XCgIG-u3HCog 提取码:c7zz 取走记得点赞啊! 题目要求 1.任务 利用TI的MSP430/MSP432平台,设计制作一个四轮电动小车。要求小车能沿着指定路线在坡道上自动循迹骑线行驶。小车必须独立

mbs706的博客 4万+

MFC控件扩展性设置(按钮、图片、超链接)

http://www.pudn.com/downloads91/sourcecode/windows/control/button/detail348849.html 1、把BtnST.cpp、BtnST.h、HyperLink.cpp、HyperLink.h、PictureEx.cpp、PictureEx.h、WinXPButtonST.cpp、WinXPButtonST.h添加到工程文件夹目

lebao82的专栏 1725

STM32CubeIDE离线安装芯片PACK包全攻略(附离线包下载与导入步骤)

本文详细介绍了在STM32CubeIDE中离线安装芯片PACK包的完整流程,包括官方和第三方资源获取方法、本地安装步骤及常见问题解决方案。特别针对网络隔离环境下的嵌入式开发需求,提供了实用的版本管理和自动化部署技巧,帮助开发者高效完成芯片固件支持包的离线配置。

weixin_30825581的博客 299

SAP物料主数据表结构全解析:ABAP开发与MM模块必知必会

本文深入解析SAP物料主数据的核心表结构,涵盖MARA、MAKT、MARC、MARD及MVKE等关键表。详细阐述了物料主数据在ABAP开发和MM模块中的存储逻辑与关联关系,帮助开发者和顾问高效处理数据查询、增强功能及业务故障排查,是掌握SAP物料管理基础的必读指南。

weixin_29216957的博客 379

【MFC】MFC控件大全

MFC框架提供了丰富的Windows控件封装,包括按钮、编辑框、列表框等基础控件以及树形、选项卡等高级控件。主要控件类包括CButton(按钮/复选框)、CEdit(编辑框)、CComboBox(组合框)等,每种控件都有特定用途和样式设置。这些控件通过MFC类简化了Windows GUI开发,支持从简单的文本显示到复杂的日期选择、IP输入等功能。开发者可根据需求选择合适的控件类型,通过风格属性配置其外观和行为。

2401_87310667的博客 493

海康视觉通讯配置

本文介绍了海康通讯管理中TCP和Modbus协议的配置方法。TCP通讯时,视觉系统作为服务器接收PLC客户端发送的触发信号,需注意十进制与十六进制字符串的转换。Modbus配置需填写PLC的IP地址和寄存器首地址,并预先定义整型变量。TCP通讯需开启16进制发送模式以避免数据格式问题。文章重点说明了不同通讯方式下的数据格式转换和参数设置要点。

A567852的博客 2243

MFC|Toolbox内控件简单介绍

MFC toolbox 控件简单介绍

编程改变世界。想做一些改变世界的产品。感谢一键三连。 2499

Creo报许可证错误License request failed for feature的解决方案

有些朋友用了一段时间打开creo软件,出现icense request failed for feature”错误,这个是Creo许可证出现了问题,一般是许可证文件无效或是已过期,导致Creo软件通信出现故障,就会出现Creo License request failed for feature, Requsesting CreoPMA_SSQ ,Run ptcstatus.bat server status。第三步:键盘按win+R,在运行窗口里输入:cmd,然后点确定。第八步:点击系统,找到系统信息。

Q82556499的博客 3万+

基于Ventoy制作单个U盘引导Windows+Linux+黑苹果macOS

一款国内高手开发的一个名为Ventoy的开源多系统启动U盘制作工具,官方链接:https://www.ventoy.net/cn/index.html Ventoy 特点 不影响U盘日常普通使用 直接从ISO文件启动,无需解开 支持MBR和GPT分区格式(1.0.15+) 支持超过4GB的ISO文件 支持大部分常见操作系统, 已测试650+ 个ISO文件 不仅仅是启动,而是完整的安装过程 版本升级时数据不会丢失 Ventoy 待改进 不支持macOS和ChromeOS 准备2个空的U.

wybarcelona的博客 3万+

MFC添加list control控件并用表格对txt数据显示、格式化、超链接

(一)    list control控件的建立 (1)新建【MFC】,从【工具箱】中将【list control】控件拖选到DiaLog下; (2)然后点击【list control】控件,【右击】,【属性】,将【view】设置为【Report】,效果如下:                       (3)【右击】,【类向导】,【成员变量】,【添加变量】,【m_list】,如图: ...

肥羊汤 9837

dify安装ollama插件及OLLAMA模型添加失败问题完整解决方法

plugin_daemon-1 | 2025/05/10 17:37:36 stdio.go:160: [INFO]plugin langgenius/ollama:0.0.6: Installed model: ollama 提示ollama安装成功,再添加模型就不会有问题了。安装dify1.2.0和1.3.1均出现OLLAMA插件安装失败或插件安装后添加模型失败的问题,具体表现为一是添加ollama插件时没反应,需要二次添加才成功;二是添加模型时点保存报500错误或点保存后没反应,无法成功添加。

symstandsun的博客 9078

MFC 自定义静态文本控件:增强型标签控件

这篇博客实现了高度可定制的MFC自定义控件CLabel,支持背景、文本、边框及圆角设置,提供更丰富的视觉效果和交互体验。

Darker的博客 1695

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MFC Static 控件详解:文本显示与图像展示的全能工具

本文全面介绍了MFC中Static控件的使用方法。作为基础组件,Static控件不仅用于显示文本和图像,还能实现交互功能。文章详细讲解了控件的创建方式(资源编辑器和动态创建)、常用操作(文本设置、图像显示、状态控制)、消息处理机制(点击和鼠标事件)、高级应用(超链接效果、绘图容器、动态文本)以及常见问题解决方案。通过合理运用Static控件的属性和消息机制,开发者可以将其从简单的显示元素扩展为功能丰富的界面组件,提升MFC应用程序的用户体验。

code_pranger的博客 1296

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

CXHyperLink类静态库实现超链接

一:申明该类的编码实现是在参考www.codeproject.com上的代码时发现的,"Single Server, Multiple Clients - Win32MFC classes for clientserver communication with Unicode support"我只是作为学习把该类提取出来编译成静态库文件而已,方便自己使用。以下是作者在代码文件中的申明,敬请注意。/

Docoocoo的專欄--做酷 1687

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 用HOOK来修改API函数的功能 @之禁止删除文件
下一篇: 微软也会错,后置++很危险!
darkread
博客等级 码龄25年 42粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值