mfc-gdi mfc gdi
MFC项目多版本软件图标共存问题
在实际项目中,一套代码可能对应多个版本(定制),不同的版本显示不同的软件图标。如何修改软件图标?现将方法整理如下: 1.不同版本,在项目属性-》C/C++-》预处理器-》预处理器定义,定义各自的预编译开关。假如有三个项目,分别为:_OEM_A,_OEM_B,_STANDARD_。 2.在项目属性-》 ......
GDI+经验
C#指定控件的绘图区域 摘要:怎么裁剪隐藏擦除某个控件的其中一部分呢,网上很多教程都是基于一张透明图片去生成区域,然后在这个区域绘制控件,其实不用图片也可以实现,我在这里找到了答案。通过这个方法,我们可以实现很多效果,比如绘制一个不规则的控件,包括圆角矩形三角形圆形等。 C#怎么裁剪/隐藏/擦除某个 ......
在MFC中使用CArchive进行串行化数据
使用CArchive进行数据串行化非常的方便。 CArchive持有一个CFile对象,通过此对象进行读写,那么所有基于CFile的子类,都可以使用CArchive来进行串行化。 示例: CFile file(_T("1.txt"), CFile::modeReadWrite); CArchive ......
re | 植物大战僵尸年度版gdi僵尸位置画框
re | 植物大战僵尸年度版gdi僵尸位置画框 最近写的东西,随便练练手,绘制的部分上一个博客中有精简版本。 程序使用的是僵尸结构体线性数组,取僵尸的部分写的非常优雅,感兴趣的可以去逆一下看看。 效果: 代码如下: #include <Windows.h> WCHAR szTitle[] = L"m ......
re | win32 gdi透明窗口中画框 鼠标穿透
re | win32 gdi透明窗口中画框 鼠标穿透 使用vs2022编译的,便于游戏辅助的画框。 #include <Windows.h> WCHAR szTitle[] = L"mzbox"; WCHAR szWindowClass[] = L"mzclazz"; HINSTANCE g_hIn ......
实现MFC中CListCtrl双击单元格获取文本
1.在类中定义CEdit控件 CEdit* m_edit; 2.窗口OnInitDialog创建窗口并设置父窗口为CListCtrl,设置字体 m_edit = new CEdit(); m_edit->Create(ES_LEFT | WS_CHILD | WS_TABSTOP | WS_BORD ......
mfc-消息映射
在MFC(Microsoft Foundation Classes)应用程序中,通常会生成四个主要的类,它们各自有不同的作用: 1. **CMainFrame**:这是应用程序的主窗口类,通常用于管理应用程序的菜单栏、工具栏、状态栏以及其他用户界面元素。它也处理用户的输入和窗口消息。 2. **CY ......
mfc中tabsheet
// TabSheet.cpp : implementation file // #include "stdafx.h" #include "pch.h" //#include "Property5.h" #include "TabSheet.h" #ifdef _DEBUG #define new ......
MFC对话框显示时背景闪烁
在显示一个对话框时,可以在WM_PAINT消息处理函数中绘制窗口的背景色。但会出现一种情况,在还未执行完OnPaint函数,对话框已经先显示出白色窗体,如下: 还未绘制窗体,背景色先被显示。 解决办法: 1、添加WM_CTLCOLOR消息。 2、在消息响应函数中添加如下代码: 1 HBRUSH CZ ......
MFC窗口闪烁问题
本文引自:《VC窗口闪烁问题的解决》 概述 一般的windows复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小时候出现闪烁。 闪烁产生的原因 原因一: 如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上,而是写到了显存里,显卡每隔一段时间把 ......
MFC CStatic 里面加载图片
▲ 效果 头文件新增空间指针: private: CStatic* pBMP; BOOL CMFCApplicationBMPDlg::OnInitDialog() 里面初始化: // TODO: 在此添加额外的初始化代码 // 初始化字段 pBMP = (CStatic*)GetDlgItem(I ......
MFC CListVtrl 控件简单测试
▲ 样式Demo 关联控件变量m_CList,在属性中将视图(View)设置成Report(报表)模式。 在BOOL CMFCApplication4LlisBoxDlg::OnInitDialog()初始化函数中添加测试代码: // TODO: 在此添加额外的初始化代码 //m_CList.Set ......
[MFC]如何将数据保存为CSV格式
BOOL WriteCsv(CString strText) { CString strPath; strPath.Format(_T("D:\\CSV")); if (!CFileSystemHelper::IsDirectoryExist(strPath))//判断目录存不存在 { CFileS ......
SDL窗口嵌入到MFC中
第一步:新建MFC基于对话框的应用程序(此例工程命名为MFC_SDL),然后直接点击完成即可,如下图。 第二步:删除“TODO:在此放置对话框控件”。添加Picture Control和Button到对话框中,修改Button的名字为显示图片。 第三步:SDL相关头文件、lib库以及dll动态链接库 ......
windows c c++ mfc 与linux c++
windos snprintf 与 _snprintf 有什么区别吗 在 Windows 下,snprintf 和 _snprintf 是两个用于格式化字符串的 C 标准库函数。它们之间的区别主要在于对于某些实现中的返回值的处理和一些历史原因。 snprintf: snprintf 是 C99 标准 ......
GDI+字符串测量
关于GDI+对字符串的测量官方文档中给出5种重载函数,5种重载分为两类,两类的分类方式是按照字符串以何种方式输出定义。下面文字给出官方对两类定义的描述: 第一类:The Graphics::MeasureString method measures the extent of the string ......
第二次作业(基于 visual studio 2022 环境下的“MFC”计算器登录使用)
一、前言 1、系统环境:Window10,visual studio 2022,MYSQL Client(MariaDB 5.5(X64))。 2、界面:这是一个MFC界面,通过连接创建的数据库,实现计算器登录、运算以及查看历史记录的功能。 二、设计过程 1、流程图: 2、数据库表格创建与连接 (1 ......
MFC 组合框 CComboBox
7)组合框(下拉框)CComboBox a) 获取内容:CComboBox::GetLBText 其它接口和 CListBox 的用法几乎一样 b) 属性设置 1) data: 设置内容,不同内容间同英文的分号“;”分隔 2) type // DropDown之类的选项,可编辑和不可编辑。 这个和上 ......
MFC 列表框 CListBox
▲ 增删改查 6)列表框CListBox a) 给列表框添加一个字符串 CListBox::AddString b) 选中列表列表框某一项,自动触发事件:LBN_SELCHANGE 1)获取当前选中项 CListBox::GetCurSel 2)获取指定位置的内容 CListBox::GetText ......
MFC 复选框 CheckBox
复选框 CheckBox 和 RadioButton 基本上一样,他们的类型其实都是 CButton。 BOOL CMFCApplication5Dlg::OnInitDialog() 初始化函数中: CheckRadioButton(IDC_CHECK1, IDC_CHECK3, IDC_CHEC ......
MFC的CFile类以追加模式写文件
CFile类的Open函数有CFile::modeNoTruncate模式,该模式是非截断的意思,再配合CFile::modeCreate,意味着如果文件不存在,则创建,如果文件存在,则不会将文件内容清空。当对文件进行追加写入时,有一个小细节就是打开文件模式中虽然添加了这两种OpenFlag,但是文 ......
MFC 单选框
Ctrl+D 调整 CheckBox 为顺序的。 设定排第一个位置的属性:Group 为 TRUE. 在BOOL CMFCApplication4Dlg::OnInitDialog()函数中可以初始化某一个选中。 // 默认选中 CheckRadioButton(IDC_RADIO_APPLE, I ......
MFC-ODBC API动态连接配置数据库
一、ODBC管理器介绍 在Window中,ODBC数据远管理器有6个标签:用户DSN、系统DSN、文件DSN、驱动程序、跟踪、连接池,通常情况下,使用用户DSN或者系统DSN,这里主要了解用户DSN和系统DSN即可。 用户DSN:ODBC用户数据源存储了如何与指定的数据库提供者连接的信息,只有当前用 ......
VC++ 2019 MFC TinyXML2使用教程/方法详解(转载)
转载地址: VC++ 2019 MFC TinyXML2使用教程/方法详解_vc++2019_一笑的博客-CSDN博客 TinyXML2让VC++中操作XML,如鱼得水,就像一个小型的数据库,特别方便。 本篇主要介绍在VC++ 2019的MFC项目中,如何利用TinyXML2,创建、插入、查询、更新 ......
GDI+中的Region的集合关系
string content=""; GraphicsPath c1 = new GraphicsPath(); c1.AddEllipse(0, 20, 50, 50); GraphicsPath c2 = new GraphicsPath(); c2.AddEllipse(30, 20, 50, ......
基于MFC框架的mySQL数据库访问计算器
该计算器是在上次基础上去掉了许多计算方法,只保留了基本的加减乘除四则运算,实现了用户登录功能,计算过程保留在数据库的功能: 第一步:创建数据库,以创建成功,下面是创建后的表格: 数据库名称为mydata,里面有两张表分别是computer以及user。 原本我想利用Nodejs中间件的方式让MFC应 ......
.net6.0及以上WPF中使用GDI+的demo
using System; using System.Drawing; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Interop; using System.Windows.Med ......
[MFC]过滤数组中重复的数据
之前在帮客户开发一个自动读取物理网卡地址功能的时候,获取到的网卡地址偶尔会出现重复,如下图,无论是单张网卡还是多张网卡都存在这个问题。由于我获取的网卡地址是存放于CStringArray中,所以我得对其中的数据进行去重才能正常地显示网卡地址。 为此,我在网上找到资料,用映射表类CMap的操作符[]来 ......
[MFC]区分USB扫码枪和键盘输入的实现
不久前在帮客户做一个生产软件,要用到扫码枪输入一定长度的条码并且有条码长度防呆,结果发现手头的扫码枪居然是模拟键盘输入将条码数据直接发送到焦点控件中的(USB口的扫码枪),比如Edit Control,而由于业务要求,不允许生产线上员工手工输入条码内容,因此我将文本框设为只读,想不到扫码枪也无法输入 ......