自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 小型的远程控制程序

主要讲解以下内容:1.软件开发背景。2.使用场景介绍,现场布局等。3.软件配置启动流程。4.框架结构介绍(有无三方库,如何通信等),各个功能介绍。

2020-11-26 11:38:40 250

原创 MFC - 切换进程当前的工作目录

1.先获取当前进程的工作目录#define LINESIZE 255char szCfgPath[LINESIZE];GetCurrentDirectory(LINESIZE,szCfgPath);2.在进行完某些操作时,需要启动其他exe程序,再设置一下工作目录SetCurrentDirectory(szExePath);

2016-01-25 13:12:21 929

原创 MFC - 查看操作进程

#include

2016-01-25 12:54:18 678

原创 MFC - 发送自定义消息

1.自定义消息:#define WM_COUNT_MSG WM_USER+100 2.添加消息处理函数的声明 afx_msg LRESULT OnCountMsg(WPARAM,LPARAM);3.消息映射表中加入自定义消息映射 ON_MESSAGE(WM_COUNT_MSG,OnCountMsg)4.消息响应函数的具体实现LRESULT CMSGDlg::OnCountMs

2015-07-09 09:17:10 457

原创 读写INI文件

//写入BOOL reb = WritePrivateProfileString(L"节名字",L"键名",L"键名的值",L"我的INI文件.ini");//读取CString strbuf;reb = GetPrivateProfileString(L"节名字",L"键名",L"没有指定的值",strbuf.GetBuffer(MAX_PATH),MAX_PATH,L"我的INI文件

2015-06-16 22:42:26 321

原创 GDI(GDI+) - 混合编程【实例】

1.对象定义CBitmap m_BK;//背景图CPen m_pen;//画笔CBrush brush;//画刷CFont font;//字体BITMAP bmp;//背景图信息CRect rect;//矩形信息2.对象初始化BOOL reb = m_BK.LoadBitmap(IDB_BITMAP1);//加载位图资源brush.CreateSolidBrush(RGB(16

2015-06-09 22:38:40 731

原创 MFC - 获取CPU唯一标识符

CString GetCPUid(){ // TODO: 在此添加控件通知处理程序代码 unsigned long s1,s2,s3,s4; __asm { mov eax,00h xor edx,edx cpuid mov s1, edx mov s2, eax } __asm { mov eax,01h xor ec

2015-06-09 17:06:35 3509

原创 GDI+ - 使用PNG图片打造不规则窗口

1.创建一个Image指针并赋值(前提是初始化过GDI+环境)Image* m_pImage; //dlg头文件里面添加m_pImage = Image::FromFile(L"bk.png"); //OnInitDialog里面添加2.将主窗口大小设置的和图片一样大,并且给主窗口设置WS_EX_LAYERED(层属性) DWORD dwExStyle = ::GetWindowLo

2015-06-06 00:03:18 601

原创 MFC - 定时器

使用定时器共分两步1.调用CWnd类的成员函数 SetTimer(20001,3000,NULL);20001为定时器的ID号,3000为时间间隔单位是毫秒,NULL表示这里的回调函数为空。2.响应WM_TIMER消息void CzihuiDlg::OnTimer(UINT_PTR nIDEvent){ // TODO: 在此添加消息处理程序代码和/或调用默认值 this->Mes

2015-05-26 14:20:54 294

原创 MFC - 点击拖动窗口

#define SC_DRAGMOVE 0xF012void Ctest110Dlg::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 SendMessage(WM_SYSCOMMAND,SC_DRAGMOVE,0);//拖动窗口 CDialogEx::OnLButtonDo

2015-05-22 13:27:34 640

原创 GDI+ - 图形编程【双缓冲】

1.构造一个Image对象Image* imgBK = Image::FromFile(L"124.bmp");Graphics *pGDIBmp = Graphics::FromImage(imgBK);//该GDI对象用于绘图pGDIBmp->DrawImage(img,0,0);//将img图片输出到imgBK图片上2.一次性绘图到imgBK上,之后再将imgBK显示出来Grap

2015-05-19 00:44:42 307

原创 GDI+ - 图形编程【输出图片】

Graphics gdi(this->GetDC()->m_hDC); //原图输出 Image img(L"123.png"); gdi.DrawImage(&img,0,0); //裁剪图片 gdi.DrawImage(&img,Rect(0,0,50,50),0,0,50,50,UnitPixel);//只输出原图部分面积 //缩小图片 gdi.DrawImage(&i

2015-05-18 23:12:23 663

原创 MFC - Tab控件操作

1.拖拽tab控件2.对话框类中增加tab控件变量3.插入两个对话框资源 将属性style :childborder :none4.为新创建的两个对话框创建变量(需要先创建对话框类才能创建对话框变量)5.在主对话框OnInitDialog()内加入 m_tab.InsertItem(0,_T("登记入库"),0); m_tab.InsertItem(1,L"参数二",1);

2015-05-18 00:26:14 385

原创 MFC - CTreeCtrl操作

1.将CTreeCtrl控件拖入对话框中,并创建变量m_tree,然后设置属性Has Buttons :TrueHas Lines :TrueLines At Root :True2.在CDialog头文件中加入HTREEITEM activeItem; //活动子项HTREEITEM activeparentItem; //活动父项3.在CDialog初始化OnInitDi

2015-05-16 23:34:44 538

原创 GDI+ - 图形编程【输出文字】

Graphics gdi(this->GetDC()->m_hDC); //构造一个GDI+对象 Pen red(Color(255,255,0,0),3); //构造一个画笔 画笔透明度是255 gdi.DrawLine(&red,10,10,50,10); //画线 FontFamily m_font(L"宋体"); Font font(&m_font,2

2015-05-16 16:27:45 1298 1

原创 GDI+ - 图形编程【初始化工作】

1.在stdafx.h文件包含头文件和库文件,并使用Gdiplus名称空间#include "gdiplus.h" #pragma comment(lib, "gdiplus.lib") using namespace Gdiplus;2.在CDialogEx类中加入受保护的成员变量protected: ULONG_PTR m_gdiplusToken;3.初始化及

2015-05-16 00:21:48 332

原创 MFC - 使用属性页表单

首先插入IDD_PROPPAGE_LARGE资源创建类CPropertyPage创建属性页表单CPropertySheet,在头文件中创建CPropertyPage变量,在构造函数中加载属性页AddPage(&Page1);去掉帮助、应用按钮CPropertySheet构造函数中添加:this->m_psh.dwFlags &= ~(PSH_HASHELP);Page1

2015-05-15 16:47:54 477

原创 MFC - EXCEL表格

以VS2010/EXCEL2007为例进入类向导 - 类型库中的MFC类...在 可用的类型库 中选择 Microsoft Excel 12.0 Object Library分别添加 _Application_WorkbookWorkbooks_WorksheetWorksheetsRange添加的时候最好把类名改下以免发生冲突,默认情况下添加好的类名是

2015-05-13 15:23:44 780

原创 MFC - 文件发送接收

//FileSend.h文件发送类#pragma onceclass CFileSend{public: CFileSend(void); ~CFileSend(void);public: SOCKET coket; CFile file;public: char* UnicodeToAnsi( const wchar_t* szStr ); void CreateSoc

2015-05-12 17:45:46 1464

原创 MFC - 窗口的右键菜单

1.插入菜单资源;2.响应窗口的右键事件;CMenu menu; POINT pt = {0}; GetCursorPos(&pt);//得到鼠标点击位置 menu.LoadMenu(IDR_MENU1);//菜单资源ID menu.GetSubMenu(0)->TrackPopupMenu(0,pt.x,pt.y,this);3.通过类向导添加子菜单的响应函数;

2015-05-12 14:12:51 307

原创 MFC - 菜单按钮

1.在界面上拖放菜单按钮;2.创建菜单按钮对象;CMFCMenuButton m_btn13.创建菜单资源;CMenu* menuDel->LoadMenu(IDR_MENU1);m_btn1.m_hMenu = menuDel->GetSubMenu(0)->GetSafeHmenu();m_btn1.m_bOSMenu = FALSE;4.响应菜单按钮左键单击事件;

2015-05-12 13:51:52 1003

原创 MFC - CIPAddressCtrl用法

DWORD IP;((CIPAddressCtrl*)this->GetDlgItem(IDC_IPADDRESS1))->GetAddress(IP);

2015-05-04 17:20:17 785

原创 MFC - CComboBox用法

CComboBox* m_combox;m_combox = (CComboBox*)(this->GetDlgItem(IDC_COMBO1));m_combox->AddString(L"C盘");m_combox->AddString(L"D盘");m_combox->AddString(L"E盘");m_combox->AddString(L"F盘");m_comb

2015-05-04 17:12:37 505

原创 win32网络编程【UDP】

//初始化套接字库   流式套接字  接收端WSADATA wsaData;BOOL ret = WSAStartup(MAKEWORD(2,2), &wsaData);if(ret != 0){MessageBox(_T("初始化网络协议失败!"));return FALSE;}SOCKET m_Socket = ::socket(AF_INET,SOCK_S

2015-05-04 16:53:09 448

原创 MFC - 消除警告

#pragma warning ( disable : 警告号码)

2015-05-02 15:09:29 603

原创 MFC - 屏蔽回车和ESC键

//添加重载函数PreTranslateMessageBOOL CClientDlg::PreTranslateMessage(MSG* pMsg){// TODO: 在此添加专用代码和/或调用基类if(pMsg->message==WM_KEYDOWN){int nVirtKey = (int)pMsg->wParam;if(nVirtKey==VK_RETURN |

2015-05-02 00:46:16 378

原创 MFC - 创建状态栏

CStatusBar m_statusbar; //创建状态栏BOOL hbar = m_statusbar.Create(this);UINT b[2]={1009,1010};hbar = m_statusbar.SetIndicators(b,2);m_statusbar.SetPaneInfo(0,b[0],SBPS_NORMAL,400);m_statusbar.Se

2015-05-02 00:40:33 401

原创 MFC - 创建工具栏(图文混合)

CImageList m_imagelist;//图片列表CToolBar m_toolbar;//工具栏m_imagelist.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);CBitmap bmp;for(int i=0;i{bmp.LoadBitmapW(IDB_BITMAP1+i);//加载工具栏上面的图片m_imagelist

2015-05-02 00:36:10 366

原创 MFC - 增加菜单栏

1.首先添加菜单栏资源。2.然后在对话框的属性中选择Menu,值设置成菜单栏ID。3.这样菜单栏就自动被创建显示了。

2015-05-02 00:27:23 413

原创 获取时间

#include #include struct _timeb timebuuef;_ftime(&timebuuef);__int64 endTime = timebuuef.time*1000 + timebuuef.millitm;js方法:var t = new Data().getTime

2015-04-21 17:53:25 225

原创 MFC - 进度条的使用

应用: CProgressCtrl *m_progress; //头文件中声明m_progress = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1); m_progress->SetRange(0,1000); //设置进度条最小进度和最大进度m_progress->SetPos(0); //设置进度条当前进度

2015-04-18 10:49:14 345

原创 MFC - 复制内容到剪切板

CString source = _T("我是谁"); GetDlgItemText(IDC_EDIT1,source); //put your text in source if(OpenClipboard()) { HGLOBAL clipbuffer; char * buffer; EmptyClipboard(); char* src = UnicodeTo

2015-04-16 22:19:41 2616

原创 识别文本文件编码格式

//识别编码函数 pathName 文件路径CString CInsertKeyDlg::CodeTo(CString pathName){char m_FileText[10000]={0};CString m_NewText;CFile m_File;LPCTSTR lpstr = pathName.GetBuffer();BOOL reBol = m_File.O

2015-04-13 12:00:05 377

原创 MFC数据库操作 - 触发器

①、什么是触发器?触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事件进行触发被自动调用执行的。而存储过程可以通过存储过程的名称被调用。触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete

2015-04-12 23:04:57 534

原创 MFC数据库操作 - 存储过程

①、什么是存储过程?存储过程(Stored Procedure)是数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。在数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。②、为什么要用存储过程?优点:1、存储过程只在

2015-04-12 22:27:28 1486

原创 MFC数据库操作 - 事务处理

事务简介:事务是为了完成一个特定的功能或任务而要进行的一系列的处理步骤,事务代表了所需的系列动作的整体。一个事务的所有语句被作为整体执行,遇到错误时,可以回滚事务、取消事务内所做的所有改变。在数据库中,事务可以把多个操作作为单一的、最基本的活动来进行。例如,在货币转账时,必须从账户中减去某个数额并将其对等数额添加到另一账户中。无论其中的哪个更新失败,都将导致账户收支不平衡。

2015-04-12 19:25:59 1177

原创 MFC数据库操作 - Command 对象删除、添加、修改记录

使用 Command 对象的过程步骤:⑴ 定义 _CommandPtr 型变量;⑵ 实例化变量;⑶ 设置变量的相关属性;⑷ 调用 Execute 方法执行命令。例一:通过 Command 对象 使用SQL语句来进行添加、删除、修改操作BOOL bRet = FALSE;_CommandPtr pCommand;pCommand.CreateInstance(__

2015-04-12 18:56:34 1837

原创 MFC数据库操作 - 增加新记录

使用记录集对象添加记录:BOOL CRentDVDDlg::RentDVDByRecordset(CString& strDVDID, CString& strRentName, CString& strRentDate){BOOL bRet = FALSE;_RecordsetPtr pRentRecordset;pRentRecordset.CreateInstance(_

2015-04-09 23:24:46 1005

原创 MFC数据库操作 - 获取数据库内容

//定义 _RecordsetPtr 型变量;HRESULT hr;_RecordsetPtr pRentRecordset;hr = pRentRecordset.CreateInstance(__uuidof(Recordset));if (FAILED(hr)) {MessageBox(_T("创建记录集对象失败."));return;}//调用其 Ope

2015-04-08 23:51:45 1989

原创 MFC数据库操作 - 连接退出

首先进行com组件的初始化_ConnectionPtr m_pConnection;HRESULT hr;try{hr = m_pConnection.CreateInstance(__uuidof(Connection));if (SUCCEEDED(hr)) {//_bstr_t connectStr = _T("Provider=SQLNCLI;Server=19

2015-04-08 23:49:43 804

DLL注入源码

这是一个DLL注入的类,直接调用头文件里面的全局函数就可完成注入。里面还有一个txt文档说明了调用过程,想要实现DLL注入的朋友可以下载看看。

2018-11-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除