孙鑫VC++深入详解:Lesson9 Part8---给程序加个启动画面

python爬取boss直聘招聘信息 这个时候,单击任意一个职位进去后,会发现请求的连接里面有一个职位id,与上一步的接口返回的数据里面保持一致。通过搜索功能,获取搜索的url,请求搜索URL后,获取对应公司的职位信息列表,再通过职位信息列表构造职位信息的完整URL,进而请求获取职位信息详情。上一步中,拿到了公司url后,使用浏览器请求后,能发现公司正在招聘的职位详情,包括职位名称,职位要求,技能描述等。所以通过上一步的接口数据的解析,获取到职位id后,再进行url的拼接,获取到完整的职位信息链接后,再使用。最后就是解析接口返回的数据。 阅读详情

方法:

VC菜单栏: Project--->Add to Project--->Components and Controls   选择VISUAL C++ Components 找到Splash screen


插入该组件后,工程中就增加了CSplashWnd 类,并在CMainFrame类的OnCreate函数中加了一条语句:

CSplashWnd::ShowSplashScreen(this);

因为ShowSplashScreen(this)是在CSplashWnd类中定义为静态函数,所以调用方式就是类:函数名

该类的头文件是splash.h 

// CG: This file was added by the Splash Screen component.

#ifndef _SPLASH_SCRN_
#define _SPLASH_SCRN_

// Splash.h : header file
//

/////////////////////////////////////////////////////////////////////////////
//   Splash Screen class

class CSplashWnd : public CWnd
{
// Construction
protected:
	CSplashWnd();

// Attributes:
public:
	CBitmap m_bitmap;

// Operations
public:
	static void EnableSplashScreen(BOOL bEnable = TRUE);
	static void ShowSplashScreen(CWnd* pParentWnd = NULL);
	static BOOL PreTranslateAppMessage(MSG* pMsg);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSplashWnd)
	//}}AFX_VIRTUAL

// Implementation
public:
	~CSplashWnd();
	virtual void PostNcDestroy();

protected:
	BOOL Create(CWnd* pParentWnd = NULL);
	void HideSplashScreen();
	static BOOL c_bShowSplashWnd;
	static CSplashWnd* c_pSplashWnd;

// Generated message map functions
protected:
	//{{AFX_MSG(CSplashWnd)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnPaint();
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};


#endif


// CG: This file was added by the Splash Screen component.
// Splash.cpp : implementation file
//

#include "stdafx.h"  // e. g. stdafx.h
#include "resource.h"  // e.g. resource.h

#include "Splash.h"  // e.g. splash.h

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
//   Splash Screen class

BOOL CSplashWnd::c_bShowSplashWnd;
CSplashWnd* CSplashWnd::c_pSplashWnd;
CSplashWnd::CSplashWnd()
{
}

CSplashWnd::~CSplashWnd()
{
	// Clear the static window pointer.
	ASSERT(c_pSplashWnd == this);
	c_pSplashWnd = NULL;
}

BEGIN_MESSAGE_MAP(CSplashWnd, CWnd)
	//{{AFX_MSG_MAP(CSplashWnd)
	ON_WM_CREATE()
	ON_WM_PAINT()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CSplashWnd::EnableSplashScreen(BOOL bEnable /*= TRUE*/)
{
	c_bShowSplashWnd = bEnable;
}

void CSplashWnd::ShowSplashScreen(CWnd* pParentWnd /*= NULL*/)
{
	if (!c_bShowSplashWnd || c_pSplashWnd != NULL)
		return;

	// Allocate a new splash screen, and create the window.
	c_pSplashWnd = new CSplashWnd;
	if (!c_pSplashWnd->Create(pParentWnd))
		delete c_pSplashWnd;
	else
		c_pSplashWnd->UpdateWindow();
}

BOOL CSplashWnd::PreTranslateAppMessage(MSG* pMsg)
{
	if (c_pSplashWnd == NULL)
		return FALSE;

	// If we get a keyboard or mouse message, hide the splash screen.
	if (pMsg->message == WM_KEYDOWN ||
	    pMsg->message == WM_SYSKEYDOWN ||
	    pMsg->message == WM_LBUTTONDOWN ||
	    pMsg->message == WM_RBUTTONDOWN ||
	    pMsg->message == WM_MBUTTONDOWN ||
	    pMsg->message == WM_NCLBUTTONDOWN ||
	    pMsg->message == WM_NCRBUTTONDOWN ||
	    pMsg->message == WM_NCMBUTTONDOWN)
	{
		c_pSplashWnd->HideSplashScreen();
		return TRUE;	// message handled here
	}

	return FALSE;	// message not handled
}

BOOL CSplashWnd::Create(CWnd* pParentWnd /*= NULL*/)
{
	if (!m_bitmap.LoadBitmap(IDB_SPLASH))
		return FALSE;

	BITMAP bm;
	m_bitmap.GetBitmap(&bm);

	return CreateEx(0,
		AfxRegisterWndClass(0, AfxGetApp()->LoadStandardCursor(IDC_ARROW)),
		NULL, WS_POPUP | WS_VISIBLE, 0, 0, bm.bmWidth, bm.bmHeight, pParentWnd->GetSafeHwnd(), NULL);
}

void CSplashWnd::HideSplashScreen()
{
	// Destroy the window, and update the mainframe.
	DestroyWindow();
	AfxGetMainWnd()->UpdateWindow();
}

void CSplashWnd::PostNcDestroy()
{
	// Free the C++ class.
	delete this;
}

int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	// Center the window.
	CenterWindow();

	// Set a timer to destroy the splash screen.
	SetTimer(1, 750, NULL);

	return 0;
}

void CSplashWnd::OnPaint()
{
	CPaintDC dc(this);

	CDC dcImage;
	if (!dcImage.CreateCompatibleDC(&dc))
		return;

	BITMAP bm;
	m_bitmap.GetBitmap(&bm);

	// Paint the image.
	CBitmap* pOldBitmap = dcImage.SelectObject(&m_bitmap);
	dc.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &dcImage, 0, 0, SRCCOPY);
	dcImage.SelectObject(pOldBitmap);
}

void CSplashWnd::OnTimer(UINT nIDEvent)
{
	// Destroy the splash screen window.
	HideSplashScreen();
}

//---


BOSS直聘招聘端AI辅助自动化技术研究 BOSS招聘端技术研究以及AI辅助工具实现过程 阅读详情

相关推荐

从机械臂示教到厨房做饭:ACT模仿学习如何让机器人更“人性化”?

本文探讨了ACT(Action Chunking with Transformers)模仿学习技术如何让机器人更“人性化”,特别是在厨房等复杂场景中的应用。通过动作分块(Action Chunking)和时态融合(Temporal Ensemble)技术,机器人能够像人类一样记忆和执行复杂任务,如烹饪。文章还分析了ACT在家庭场景中的落地挑战及其在康复医疗、柔性制造等领域的跨领域应用潜力。

weixin_30613343的博客 255

boss直聘为何不显示真实的职位原始发布时间?

boss直聘的PC网站在职位搜索结果页显示的有“发布于何时”的提示,只可惜只显示的有“月-日”,即没有年份。 比如今天是公元2020年5月17日,在boss直聘PC端看到的某个职位发布于“5月12日”可能并非真的发布于2020年的5月12日,有可能是发布于2019年的5月12日,更有甚者发布于2018年的5月12日、2017年的5月12日...... 比如在“北京”区搜相关关键词搜显示的以下几条招聘信息: 虽然在搜索页可以按“发布时间”显示最近的: 比如某夫子旧书网式的职位,

李高峰的博客 6万+

告别‘火龙’:实测BES2800/RK2108等主流芯片,聊聊AI眼镜的功耗与散热‘内卷’实战

本文深入探讨了AI智能眼镜在功耗与散热方面的挑战,重点分析了恒玄BES2800和瑞芯微RK2108等主控芯片的能效表现。通过实测数据和优化策略,揭示了在6nm工艺、异构计算和系统级散热方案下的实战经验,为AI眼镜的功耗管理提供了实用解决方案。

weixin_30839881的博客 946

某直聘app逆向sig算法学习

要补的环境不多,然后就可以写接口或者打包成jar包调用了,这里只做算法学习,sp的思路也是一样的,包括加密响应。这里我通过frida hook hashmap快速定位一下这两个参数所位于的调用栈。知道了so所在的位置,这里我们可以hook一下signature看看传入了什么参数。抓包定位到目标接口,发现响应体都是被加密的,然后发现了对应的两个加密参数,很容易定位到算法的位置,这里我们先看sig,进入a.h。发现是JNI方法,且往上看,这个jni方法的so名。apk版本:13.170。

weixin_52365333的博客 4669

数十个锂电池充放电电路,锂电池充放电芯片

关乎锂电池供电的产品,在锂电池上,需要三个电路系统:1,锂电池保护电路,2,锂电池充电电路,3,锂电池输出电路。 内容目录: 单节的锂电池保护电路单节为3.7V锂电池(也叫4.2V)和3.8V锂电池(也叫4.35V) 单节的锂电池充电电路即锂电池保护板 单节的锂电池输出电路锂电池转换稳压输出为:1.2V,3.3V,5V,12V等等 两节的锂电池保护电路两节串联7.4V锂电池(也叫8.4V) 两节的锂电池充电电路即两节锂电池保护板 两节...

kuakewei123的博客 1万+

保姆级教程:用PyTorch从零实现SDE扩散模型(附完整代码与MNIST实战)

本文提供了一份详细的PyTorch教程,指导读者从零开始实现SDE扩散模型,并附有完整的代码示例和MNIST数据集实战。通过解释随机微分方程(SDE)的核心概念、模型架构设计、训练流程实现以及采样生成过程,帮助开发者掌握扩散模型的构建与应用。

weixin_28677005的博客 266

2021selenium+chrome爬取BOSS直聘指定字段热门城市岗位信息

2021selenium+chrome爬取BOSS直聘指定字段热门城市岗位信息心得最终效果文件概览要先创建好数据库 和 数据表 这里时mysql数据库定义搜索关键字直接上代码 随时用 随时拿 心得 登录之后可以抓取更多数据 浏览器打开BOSS之后让程序sleep()一会 然后趁这个时间登录一次 不做其他操作的话,每个城市每个关键字大致会显示10页数据 用requests和 scrapy爬, cookie 操作要很熟练,真是难为人 最终效果 文件概览 要先创建好数据库 和 数据表 这里时mysql数

weixin_43521165的博客 3087

能碳双控| AIRIOT智慧能碳管理解决方案

基于AIRIOT打造的智慧能碳管理平台解决方案结合大数据、物联网、人工智能(AI)、数字孪生等新一代信息技术,通过整合碳达峰、碳中和、实时碳价、碳配额和碳资产等多个模块,为组织提供了全方位、灵活且智能的碳资产管理解决方案,有助于实现碳管理目标、提升可持续性,并适应碳市场的不断变化。

AIRIOT的博客 1808

BOSS直聘自动投简历聊天机器人的实现过程

这两年疫情,公司业务越来越差,必须得准备后路了,每天睡前都会在直聘上打一遍招呼,一直到打哈欠有睡意为止...,这样持续了一周,发现很难坚持,身为一名资深蜘蛛侠,怎么能这样下去呢?于是便萌生了对BOSS下手的念头。boss的web端功能已经挺完整了,所以直接使用无头浏览器(puppetter/playwright)应该就能搞定了,然后再整几个简单的界面,应该就差不多了。先看前端它用了哪些技术。

企智软件 1万+

手把手教你用X-AnyLabeling实现医学图像标注:从SAM模型选择到多边形优化全流程

本文详细介绍了如何使用X-AnyLabeling平台结合Med-SAM等专业模型实现医学图像的高效标注。从环境配置、模型部署到实战工作流,涵盖智能辅助标注、低对比度解决方案及团队协作方案,帮助医疗从业者大幅提升标注效率与质量。特别适合处理CT/MRI等医学影像的复杂标注需求。

weixin_29251131的博客 457

Unity技能系统核心:从理论到实践构建可扩展的Buff管理器

本文深入探讨了Unity游戏开发中构建可扩展技能系统的核心——Buff管理器。通过剖析三层架构(数据、逻辑、渲染)与独立组件管理模式,提供了从Buff数据定义、管理器核心实现到可视化编辑器搭建的完整实践方案,旨在解决技能系统维护难题,提升开发效率与代码质量。

weixin_29002209的博客 253

产品分析报告—找工作就上BOSS直聘

近年来移动互联网的发展迅速,市场对互联网人才需求加大,传统综合性招聘平台正是因为覆盖的行业和人群太多,不可能轻易更改模式和流程。而Boss直聘等互联网垂直招聘企业顺潮而生,为互联网从业者提供了更专业和精确的解决方案,从而在激烈的市场竞争中脱颖而出。 一、产品概述 1.背景 近年我国经济运行平稳,人均收入逐年增长,国家实力日益增强,经济结构转变健康,人民生活水平日益提高。稳定、和平且繁荣的国情大前提...

qq_45611002的博客 2883

探索激光焊接光束质量诊断系统:原理、应用与前沿

激光焊接光束质量诊断系统是一套专门用于精确评估和监测激光焊接过程中光束特性的精密设备。它宛如一个精密的 “光束医生”,能够全方位地对激光光束进行 “体检”,为焊接工艺提供关键的数据支持。探测器:作为系统的 “感知触角”,探测器负责捕捉激光光束的各种信息,其性能直接影响着诊断的准确性。例如,常见的 CCD(电荷耦合器件)探测器和 CMOS(互补金属氧化物半导体)探测器,它们能够将光信号转化为电信号,具有高灵敏度、高分辨率等特点,可精确探测光束的强度分布、光斑位置等参数。光学透镜。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2583

27B 模型显存要求实测:本地部署大模型 Qwen3.8-27B 多久能回本,买卡还是 API

周五晚上十一点,朋友发来一张电费账单的截图,配了一句话:"我上周把 Qwen3.8-27B 拉到家里跑了,这机器到底多久能回本?"我盯着账单看了三秒——上个月多出来的 214 度,几乎全归这台嗡嗡响的机箱。 今天就把这笔账一次算清:本地部署大模型要花多少显存、每月烧多少电、第几天追上 API 账单,最后给你一套十秒能做完的判断标准。 ## 显存到底要多少:仓库里的量化档位表 先看硬件。这个仓

gitblog_01154的博客 450

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

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

用 Browser Harness 实战 BOSS直聘职位搜索与数据提取:API 抓取、DOM 回退与踩坑全指南

本文是基于 Browser Harness 在 BOSS直聘(zhipin.com)上完成职位搜索与数据提取的实战技术指南。文章以仓库内 [agent-workspace/domain-skills/BOSS-zhipin/job-search.md](https://link.gitcode.com/i/5601236bc403f912294aa2dc5d945726) 为基础,结合 [src/

gitblog_00837的博客 1057

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Boss Show Time:在 Boss 直聘等 4 个招聘平台显示职位发布时间的浏览器插件

Boss Show Time 是一款面向求职者的 Chrome 招聘时间插件。主流招聘平台的职位列表通常不展示具体发布时间,该插件在 Boss 直聘、智联招聘、前程无忧、拉勾 4 个平台的搜索结果上为每个职位补上发布时间标签,并支持当前页按时间排序与本地浏览记录,用来判断岗位的新旧程度。 ## 安装步骤:从源码构建并加载到浏览器 仓库提供的是源码,需要先构建再加载: ```bash git

gitblog_00662的博客 462

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Browser Harness 实战:BOSS直聘站点导航结构与 SPA 页面地图解析

**导读**:本文基于 browser-harness 仓库中的 BOSS直聘领域技能文档([navigation.md](https://link.gitcode.com/i/26e5ffff56fee0c2ddca8355e3c42af4),2026-05-01 实测于 zhipin.com),系统梳理 BOSS直聘(BOSS 直聘)的核心 URL 结构、顶部导航、用户菜单、首页城市重定向与行

gitblog_00490的博客 517

HR 实战|BOSS 直聘怎么高效招人?流量规则、JD 优化、沟通话术全攻略,附低成本招聘渠道方案

【摘要】本文系统解析BOSS直聘招聘方法论,从平台流量规则(在线时长、响应速度、主动沟通影响曝光)、岗位优化(标题公式+四段式JD模板)、沟通技巧(分场景话术)到简历筛选策略。同时针对BOSS直聘成本高、竞争内卷的痛点,推荐同类型直聊平台「吉鹿力招聘网」——支持免费发布岗位、AI精准匹配,适合作为基层岗位的补充渠道。最后提出招聘渠道组合策略,强调需持续优化曝光率、回复率等关键指标,通过主平台+辅助平台模式降低招聘成本。(149字)

2509_93777316的博客 997

Boss Show Time:四大招聘网站职位发布时间插件,一眼看出岗位新不新

Boss Show Time 是一款 Chrome 浏览器扩展,属于职位发布时间插件:在 Boss直聘、智联招聘、前程无忧、拉勾招聘的搜索结果里,把每个岗位"发布/更新于多少天前"直接标在职位卡片上,帮你筛选新鲜岗位。适合每天在 PC 端刷招聘网站、准备投递的求职者。 ## 使用场景:你看到什么,插件做了什么,你下一步怎么做 **场景一:早高峰刷 Boss直聘列表。** 打开搜索页,每个职位卡

gitblog_00629的博客 399

求职招聘管理系统:仿Boss直聘的招聘小程序与招聘网站全栈解决方案(附源码与截图)

本项目为一套仿Boss直聘的全流程求职招聘管理系统,覆盖求职者、企业、平台三方角色,支持H5、小程序、PC端、APP及管理后台多端部署。系统具备职位发布、简历投递、在线沟通、面试邀约、数据统计等核心功能,基于SpringBoot+MyBatis-Plus+MySQL后端与uni-app/Vue前端技术栈,实现一次开发多端发布。业务链路闭环,权限清晰,适合二次开发,适用于招聘平台搭建、企业内招系统及毕业设计,是学习与落地兼具的优质参考。

weixin_42648890的博客 175

招聘系统源码:一套仿 Boss 直聘的全端招聘平台,从架构到落地

本招聘系统仿Boss直聘,支持用户端、企业端、PC端及管理后台,提供H5、小程序、APP、PC客户端多端覆盖。技术栈采用SpringBoot+MyBatisPlus+MySQL后端,用户端基于UniApp(Vue语法),管理后台使用Vue2.0+ElementUI,PC端采用Vue3.0+ElementUI。系统涵盖求职招聘全流程管理,支持简历投递、职位发布、消息沟通等功能,具备高效、可扩展的HR管理能力。

juzige03的博客 162

TwitchDropsMiner 完整使用指南:如何 5 分钟跑通 Twitch 掉落自动挖矿

周末限时的 Twitch 掉落活动要连看好几小时,你不一定愿意守着浏览器干等。TwitchDropsMiner 替你做的核心动作只有一件:每隔 20 秒拉一次直播元数据,让 Twitch 判定你在观看,从而推进掉落进度,并在奖励可领时自动领取。适合只想挂机领限时掉落奖励的人;不适合想刷频道点、或一个工具管多个账号的人。 ## 🚀 三台机器,最短启动路径 三个平台都提供打包好的可执行文件,不需

gitblog_00448的博客 973

Concat 视频剪辑器安装教程:本地免费剪辑,快速导出 4K 无水印成片

不想注册账号、也不想把素材传到云上的,可以装一个 Concat。它是本地运行的视频剪辑器,自动字幕、配音、抠图与 4K 导出都在自己机器上完成,模型下载一次即可离线用。 [![Concat 视频剪辑器编辑器界面:媒体库、预览窗口与多轨时间线](https://raw.gitcode.com/gh_mirrors/wo/Concat/raw/31193bc021e5c0c70fd094af0308

gitblog_00722的博客 264

从零打造仿Boss直聘招聘系统:四端架构、技术选型与全栈实战全解析

本文介绍一套仿Boss直聘的全链路招聘系统,覆盖用户端、企业端、PC端与管理后台四端,支持H5、小程序、APP多形态交付。基于SpringBoot+MyBatis-Plus+MySQL后端,uni-app与Vue双前端架构,聚焦“沟通优先”设计,实现即时通讯、角色即权限、简历脱敏与职位审核等核心功能,具备可运营性与高扩展性,适合作为人力资源管理系统或全栈实战项目。

weixin_42648890的博客 156

Qwen3-Coder-Next-8bit进阶部署指南:vLLM与SGLang接入OpenAI接口Function Calling实战教程

Qwen3-Coder-Next-8bit 是约 800 亿参数 MoE 架构的代码大模型 8-bit 量化版本。本文手把手教你用 vLLM 与 SGLang 完成 Qwen3-Coder-Next-8bit 的进阶部署,快速接入 OpenAI 兼容接口,并开启 Function Calling(工具调用)能力,附参数详解与常见问题排查。 ## 一、模型规格速览:部署前先看这 4 个数字 部署

gitblog_00228的博客 281

上市了!

最近看到一个消息,boss直聘要上市了。最新的估值已经达到了80亿美元,比智联招聘和前程无忧加起来还多,成了中国最值钱的招聘平台。在北京的时候,boss直聘的总公司就在我住的房子的马路对面...

passer_zzy的博客 195
上一篇: 孙鑫VC++深入详解:Lesson9 Part7---在状态栏中显示鼠标的位置
下一篇: 很久没有来了,学习还得继续。
sergery
博客等级 码龄18年 113粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值