MFC
rollingman
因为一个偶然的机会成为了一个从事学习软件的man,接着在这条道路上越走越远。可能会走到30或者35岁。接下来会做什么呢?有一天我看到了创意家居设计,想到父亲一个平凡、走到末路的传统木匠。我要创造使用美的家居,拴住每一个人心的家。qin-jianchi-renzhen-zhuanxin
展开
-
MFC或者QT RC文件增加自定义宏
工程–>属性(右击)–>资源–>常规–>预处理器定义,增加需要的宏之后,在rc文件中就可以使用了。便于定制化产品修改APP logo和详细信息模块原创 2020-09-12 17:38:04 · 418 阅读 · 0 评论 -
MFC CEdit重绘
要想对MFC 控件进行重绘,一定要看看MFC的显示机制。 CEdit重绘就掉进坑里了。因为之前程序是运行在window 10之下的系统上并么有出现,点击编辑框调出的键盘自动非正常退出问题。后来程序放在了window 10 平板上运行,立马就出现问题了。 我原来的重绘代码是class CSkinEdit:public CEdit{ DECLARE_DYNAMIC(CSkinEdit)p转载 2017-07-24 13:38:11 · 2301 阅读 · 0 评论 -
MFC 无标题窗口拖动
说实话 MFC 提供的标题头不好看,而且修改麻烦。在实际使用过程中,我大多数情况下都是无标题对话框。 这样就会产生一些问题,比如 1、不能最小化或者点击任务栏图标不能最小化最大化 2、窗口不能拖动等问题 今天我们来解决第二个问题 能让窗口拖动有很多办法,有优点有缺点,根据自身程序决定了 1、当鼠标在窗口内移动或者点击都会产生WM_NCHITTEST消息,响应函数OnNcHitTest会返原创 2017-04-12 15:41:44 · 675 阅读 · 0 评论 -
MFC 滚动显示图片
这个是在闲暇的时候做的小程序,实现滚动显示图片。这里使用的图片是加载到资源中的,有需要从文件夹中加载的,可以稍微修改以下即可使用。 在这里我是把图片画在一个对话框上面,这是我创建对话框的IDD_DIALOG_PICTURE #pragma once// CPicturePage dialogclass CPicturePage : public CDialog{ DECLARE_DYN原创 2017-03-25 16:12:06 · 2016 阅读 · 1 评论 -
MFC 打印
此处使用的打印是基于MFC下封装的XPS打印功能,网上也有好多关于打印的讨论、博客等。我这篇文章也是东拼西凑,有很多不足地方,欢迎大家指出来,我会及时修改,争取更完美。工具函数CString string2CString(string strSrc){ wchar_t* buff; const char* ac = strSrc.c_str(); if(ac == NULL原创 2017-03-25 15:30:27 · 606 阅读 · 0 评论 -
CButton重绘
MFC下一个简单的按钮重绘,功能不是那么全#if !defined(AFX_BMPBUTTON_H__FBB70540_EC88_4021_9272_574C1A7A571B__INCLUDED_)#define AFX_BMPBUTTON_H__FBB70540_EC88_4021_9272_574C1A7A571B__INCLUDED_#if _MSC_VER > 1000#pragma o原创 2017-03-25 14:32:17 · 1160 阅读 · 0 评论 -
字体设置
字体设置总结,包括示例、参数解析CFont * f; f = new CFont; f->CreateFont(10, // cHeight 0, // cWidth 0, // cEscapement 0, // cOrientation FW_BOLD, // cWeight FALSE,转载 2017-03-25 13:16:08 · 594 阅读 · 0 评论 -
MFC 无标题对话框最小化和最大化
首先CPropertySheetCtrl属性页面 点击查看微软提供的帮助文档根据这个文档就可以很好的实现CPropertySheetCtrl属性页面的非模态和模态对话框,我使用的是非模态对话框。因为此界面是放在一个基对话框上的,使用模态对话框不能响应最大化和最小化功能。CPropertySheetCtrl* pSheet=new CPropertySheetCtrl(_T(""));CSetti原创 2017-04-10 18:34:51 · 832 阅读 · 0 评论 -
串口通信示例
前面我写了一篇博客介绍了使用串口通信,这里我给大家写一个示例: 这里我只写必要的部分。#include "Serial.h"vector<int> g_vctComPort;vector<int> g_vctUnkonwnComPort;vector<int> g_vctComPortOK;vector<int> g_vctComPortFail;int g_iComPo原创 2017-03-23 20:29:22 · 2262 阅读 · 0 评论 -
PC 串口通信
这是基于Window SDK封装的串口通信类// Serial.h#ifndef __SERIAL_H__#define __SERIAL_H__// #define DEBUG_VERSION// 用户消息#define MSG_SERIAL_OUTPUT_DEBUG WM_USER+123 // 输出调试信息消息 (说明:消息第一个参数为调试信息串指针,响应这个消原创 2017-03-23 17:50:05 · 625 阅读 · 0 评论 -
window 下蓝牙开发
window 蓝牙开发资料真的是比较少,而且功能比较单一。使用window自带的蓝牙重连接真的是太慢了。找不到好的解决方法,很让人头痛呀! 下面提供的这点代码,也只是一个简单的功能,有这方面研究的朋友,希望能多多交流,多多指教ULONGLONG g_ulRemoteAddr = 0;WCHAR strGUID[]=L"00001101-0000-1000-8000-00805f9b34fb";原创 2017-03-23 14:56:12 · 5727 阅读 · 6 评论 -
MFC 里面的宏意义
AFX_IDS_APP_TITLE一般对MessageBox的标题有用原创 2017-05-25 19:29:11 · 366 阅读 · 0 评论 -
从任务窗口查找正在运行程序
1、下面程序是查找正在运行的软键盘,找到并关闭//中止正在运行的某个进程 HANDLE Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); PROCESSENTRY32 processListStr; processListStr.dwSize = sizeof(PROCESSENTRY32); BOO原创 2017-07-21 09:48:02 · 915 阅读 · 0 评论 -
MFC CEdit hint功能
SetCueBanner(_T(“test”)); // 竟然支持提示信息原创 2019-01-21 21:02:19 · 1016 阅读 · 0 评论 -
MFCCListCtrl 图片列表并添加背景图片
MFC CListCtrl 显示图片模式需要关联CImageList,并且增加背景图片(抓狂三天,比网上自绘完美)头文件定义CImageList* ListImages;CListCtrl *ListIcons;CPP 初始化列表CRect rect; GetClientRect(&amp;rect); rect.left = 0; //zp 20160930 rect.top ...原创 2019-01-21 20:57:27 · 2162 阅读 · 0 评论 -
error C2065: 'IDD_DIALOG_BOTTOM' : undeclared identifier
非常烦人的错误网上查到的:homeframe.h中加入#include "postdialog.h"后,出现postdialog.h(15) : error C2065: “IDD_DIALOG_POST”: 未声明的标识符homeWnd.h中包含了homeframe.h:#include “HomeFrame.h”如果homewnd.h不去包含homeframe.h,就不会报错,我理所...原创 2018-11-16 15:27:46 · 440 阅读 · 0 评论 -
MessageBox 按钮内容修改
//修改按钮文本(一般用于国际化) HHOOK hHook; LRESULT __stdcall CBTHookProc( long nCode,WPARAM wParam,LPARAM lParam) { if (nCode==HCBT_ACTIVATE) { ...原创 2018-08-18 16:10:39 · 3314 阅读 · 0 评论 -
MFC 子进程窗口置顶
主进程启动子进程,然后如果主进程处于焦点状态,结果子进程窗口会被遮挡。 弄了好久终于找到一种方法:(单文档模式,不适合单对话框模式) 先置顶: ::SetWindowPos(m_pMainWnd->m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);//窗口最顶层 然后在取消置顶: ::SetWindowPos(m_pM...原创 2018-07-23 11:42:12 · 916 阅读 · 0 评论 -
注册表读取失败
注册表读取失败正常读取注册表在这里不做介绍,只是根据工作中遇到的情况做一个记录: 首先看代码: 读取注册表内容,在读取序列号时,必须注意你要读取数据的长度,我在这个地方花费了半天时间找问题,报234错误不知道什么原因,后来把长度增大正常了。 “#define REG_VALUE_SIZE 1024” 还有在写注册表时,很奇怪明明写成功了但是在注册表路径下找不到,后来在网上看一...原创 2018-03-20 09:47:32 · 5728 阅读 · 0 评论 -
MFC 窗口置顶
MFC窗口置顶MFC窗口置顶,此处所说的MFC窗口指的是应用程序窗口包含单对话框或者视图-文档结构对话框。 置顶:永远显示在其他应用程序之前。 文档-视图结构在函数 BOOL CXXXApp::InitInstance()// ::SetWindowPos(m_pMainWnd->m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);对话框在B原创 2017-10-17 14:41:07 · 1686 阅读 · 0 评论 -
0XC000041D:用户回调期间遇到未经处理的异常
在MFC上模拟单片机绘制界面,一不小心就出现了上面的问题,刚开始怀疑时全局CDC存的数据太多越界了。后来想一下感觉不可能,多层窗口都绘制了,怎么可能绘制一个界面就挂了。 通过调试看 Call Stack (运行调试,Debug->window->Call Stack)运行栈发现,每次都是到析构函数出问题,果断进入一看,我去,动态创建的数组释放时没有做判断就释放。哎。 判断一下,就不再出问题了,(原创 2017-10-27 09:58:08 · 18922 阅读 · 0 评论 -
获取windows 系统信息
方法有好多中,此处都是总结网络上的内容,前辈已经把window 10 系统之前的坑趟完 老方法:转载这里写链接内容//读取操作系统的名称 string GetSystemName() { SYSTEM_INFO info; //用SYSTEM_INFO结构判断64位AMD处理器 GetSystemInfo(&info); //调用GetSyst转载 2017-07-24 13:51:30 · 546 阅读 · 0 评论 -
MFC 实现圆形进度图以及一些其他图形绘画
可能一些皮肤库也可以实现这种功能,已经破解出来的皮肤库,我是没有找到这种功能,所以在闲暇时间来研究研究一些绘画、绘图 在这里使用到了GDI+绘图,所有程序需要先加载GDI+。不会加载GDI+的朋友可以在我的博客中找一下,我有写过这方面。在头文件中定义一些公共变量,最好在类构造函数中初始化一下。CRect m_clrRect; ///显示进度条进度CRect m_clrRectP原创 2017-03-23 12:33:00 · 2042 阅读 · 0 评论 -
MFC实现多界面切换
MFC有模态对话框和非模态对话框之区别。但是仅仅这些根本满足不了多功能、具有美观的程序开发。我们在开发中往往会遇到类似Android那样的界面(点击一个按钮切换到另一个界面)。在网上查一下,只有这篇文章点击本文字查看 虽然使用MFC的标签对话框也可以实现这样的功能,个人认为创建出来的界面有点丑,还不能随心所欲的创建切换按钮。我也是根据这篇文章实现了一个三个界面之间切换的小程序 首先要创建四个对话原创 2017-03-23 10:37:07 · 10147 阅读 · 1 评论 -
用InternetOpen()的下载文件
这时一篇转载的文章,原作者已经被CSDN禁言了#include<windows.h>#include<wininet.h>#include<iostream>using namespace std;#pragma comment(lib,"wininet.lib")void main(){ DWORD byteread=0; char buffer[100]; m转载 2017-03-23 09:10:51 · 3136 阅读 · 0 评论 -
MFC 画任意圆
代码是在网上搜的, 添加的控件ID#define IDM_ABOUTBOX 0x0010#define IDD_ABOUTBOX 100#define IDS_ABOUTBOX 101#define IDD_DRAWELLIPSE_DIALOG 102#define IDR_MAINFRAME转载 2017-03-27 15:58:55 · 1482 阅读 · 0 评论 -
文章标题
MyString.hpragma onceinclude include class CMyString { public: // CMyString(void); ~CMyString(void);CMyString(const char* str = NULL); CMyString(const CMyString & another); CMyString &原创 2017-02-15 20:25:53 · 206 阅读 · 0 评论 -
文章标题
Profile.h // TextFile.h: interface for the CTextFile class. // //////////////////////////////////////////////////////////////////////if !defined(AFX_TEXTFILE_H__0B34BBD2_9145_4797_9DD1_BF7A9B8B2151_原创 2017-02-15 20:24:37 · 187 阅读 · 0 评论 -
文章标题
IniFile.h /*****************************************************************//** \file inifile_ansi.h \brief declaration of the CIniFile class. To manipulate ini file by the原创 2017-02-15 20:23:33 · 185 阅读 · 0 评论 -
文章标题
OperationFile.h // COperationFile.h : header file //pragma onceinclude include include using namespace std;class COperationFile { // Construction public: COperationFile(); ~COperationFil原创 2017-02-15 20:22:12 · 192 阅读 · 0 评论 -
文章标题
AutoAddDlg.cpp // AutoAddDlg.cpp : implementation file //include “stdafx.h”include “AutoAdd.h”include “AutoAddDlg.h”ifdef _DEBUGdefine new DEBUG_NEWendifdefine MAX_STRING_COUNT 400unsigned char szTex原创 2017-02-15 20:17:28 · 323 阅读 · 0 评论 -
MFC 对文件以及文件夹操作
/* 功能在文件夹中搜索后缀相同的文件 szFilePath 文件夹路径 strExt 要搜索的文件后缀 */ BOOL FindIsFiles(CString szFilePath, CString strExt) { CFileFind finder; BOOL bWorking = FALSE;// bWorking =原创 2017-02-15 20:10:36 · 449 阅读 · 0 评论 -
VC如何让对话框一显示就最大化
VC如何让对话框一显示就最大化方法一:在OnInitDialog()函数中 ShowWindow(SW_SHOWMAXIMIZED); 初始化的时候方法二:当然,你可以获取屏幕大小,然后设置窗口位置/大小 //ShowWindow(SW_MAXIMIZE); // 获得屏幕分辨率 HDC hDesktopDC = CreateDC(_T(“DISPLAY”), NULL, NULL, N转载 2016-10-08 13:42:33 · 2848 阅读 · 0 评论 -
LoadAccelerators 失败的原因
当你在加载加速键时,如果LoadAccelerators 失败,那么有一种可能就是你的 ID写错了,LoadAccelerators 加载的其实是 LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(/IDC_BTN_TESTACCEL/IDR_ACCELERATOR1)); 而不是加速键对应的ID,加速键对应的ID 是一个事件ID原创 2016-10-19 10:36:18 · 770 阅读 · 0 评论 -
MFC 获取字符串像素高度和宽度
方法一:// 取文本的尺寸CRect rc;CFont *pOldfont=pdc->SelectObject(&fn); // 设置新字体pDC->DrawText(L"一二三", rc, DT_CALCRECT);方法二:void CDrawPic::AccountStr(CDC *pdc, int &width,原创 2017-03-21 09:17:54 · 10118 阅读 · 0 评论 -
Bitblt函数(API)祥解
Bitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为”源”,后一内存块被称为”目标”图象程序开发者使用Blit的函数在内存中将某页面上的一幅位图经过一定的变换转移到另一个页面上 原形说明: Declare Function BitBlt Lib “gdi32” Alias “BitBlt”(ByVal hDestDC As Long, ByVal x As Long, ByVal原创 2017-03-21 11:41:29 · 1410 阅读 · 0 评论 -
MFC static显示时间
网上有很多显示时间的方法,但是都不理想太简单了。我这里给大家提供的是静态文本框显示时间,而且静态文本框是透明的,也不会出现闪烁现象void CBaseDlg::OnPaint(){ CPaintDC dc(this); // device context for painting // Do not call CDialog::OnPaint() for painting mess原创 2017-03-23 11:08:13 · 604 阅读 · 0 评论 -
用MFC 网络接口下载/上传文件
这个只是一个简单的测试程序#include "afxinet.h"#include <string>using namespace std;BOOL UploadFile(LPCTSTR strURL, //负责接收上传操作的页面的URL LPCTSTR strLocalFileName); //待上传的本地文件路径BOOL CXXDlg::OnInitDialo原创 2017-03-23 09:04:09 · 1323 阅读 · 0 评论 -
MFC 对话框(窗口)透明
程序的实现步骤基本就是这样,当然也有其他方法。希望大家能积极开拓,展示更多方法。 SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE)^WS_EX_LAYERED);#ifdef _UNICODE HINSTANCE hInst = LoadLib原创 2017-03-21 20:36:57 · 2701 阅读 · 1 评论 -
MFC子窗口向父窗口发送消息(测试成功20110117)
在MFC中,使用用户自定义消息,子窗口向父窗口发送消息过程、代码:1)在resourse.h中增加定义: //#define WM_add_event_ok (WM_USER + 100) //这种定义方法没有测试,不知道行不行;static UINT WM_add_event_ok = RegisterWindowMessage(_T("User"));//测试过,可行。2)在父窗口的.h文件中转载 2017-04-07 11:38:09 · 1081 阅读 · 0 评论