
VC/MFC
文章平均质量分 81
新源译码
这个作者很懒,什么都没留下…
展开
-
Win32使用GDI+画图
#include <windows.h>#include <gdiplus.h>using namespace Gdiplus;#pragma comment(lib, "gdiplus.lib")VOID OnPaint(HDC hdc) { Graphics graphics(hdc); Pen pen(Color(255...原创 2020-03-11 00:07:59 · 926 阅读 · 1 评论 -
GDI+绘制圆环,抗锯齿
COLORREF m_crOuterClr;COLORREF m_crInnerClr;CSize m_sizeInnerPos;void CRoundWnd::OnPaint(Gdiplus::Graphics* dc){ //抗锯齿 dc->SetSmoothingMode(Gdiplus::SmoothingModeHighQuality); //外圆 G...原创 2020-03-10 23:09:02 · 1959 阅读 · 0 评论 -
Graphics.DrawEllipse 方法(椭圆)
重载列表 名称 说明 DrawEllipse(Pen, Int32, Int32, Int32, Int32) 绘制一个由边框定义的椭圆,该边框由矩形的左上角坐标 pen Type:System.Drawing.Pen Pen,它确定曲线的颜色、宽度和样式。...原创 2020-03-10 23:06:25 · 10451 阅读 · 0 评论 -
FillRect、FrameRect、Rectangle 矩形绘制函数使用对比分析
FillRect、FrameRect函数与Rectangle函数都是用于矩形操作。Rectangle函数用于绘制矩形,包括绘制矩 形边框线和填充矩形,而FillRect函数只用于填充矩形内部,FrameRect函数则只画矩形的线。也就是说, Rectangle=FillRect+FrameRect。 以上是这三个函数的关系。然而我要进一步了解这三个函数,还是有必要的。不要看到上面一段就觉得没 ...原创 2020-03-10 15:14:18 · 4749 阅读 · 0 评论 -
VC控制Win7系统音量
#include <Windows.h> #include <Endpointvolume.h> #include <Mmdeviceapi.h> #include <conio.h> #pragma comment(lib, "Winmm.lib") IAudioEndpointVolume *m_pEndptVolCtr...原创 2019-12-20 00:20:39 · 317 阅读 · 0 评论 -
VC调节系统音量(win10/win7)
#include <windows.h> #include <mmdeviceapi.h> #include <endpointvolume.h>#include <audioclient.h>//设置音量bool SetVolum(int volume){HRESULT hr;IMMDeviceEnumerator* pDev...原创 2019-12-20 00:18:57 · 1026 阅读 · 1 评论 -
图标贪吃蛇
#include "stdafx.h"#include<stdio.h>#include<windows.h>#include<commctrl.h>#include<math.h>#include<stdlib.h>#include<malloc.h>#include<conio.h>#incl...原创 2019-11-22 15:07:48 · 787 阅读 · 0 评论 -
列表框消息大全
应用程序用CreateWindowEx创建列表框控件时,可根据控件的用途在下表中选择部份常数来设定其风格属性(style)。 常数 说明 LBS_DISABLENOSCROLL 固定显示垂直滚动条。未指定本项时,当列表未超出窗口,垂直滚动条自动隐藏。 LBS_EXTENDE...原创 2019-11-22 14:04:37 · 458 阅读 · 0 评论 -
列表框属性
列表框列表框允许用户从多个对象中选择一项或多项,这些对象可以是文本、文件和位图等。当列表框的项不能全部显示出来时,可以用滚动条来滚动显示。1. 基础知识默认的列表框只允许用户单选,需要多选时,须把列表框的风格定义为 LBS_ MULTIPLESEL 和 LBS_EXTENDEDSEL 。列表框提供的其他风格取值可以控制列表框的外观和操作。例如是否按照列表框各项的名称排序,是否多行排列,是...原创 2019-11-22 14:01:41 · 2332 阅读 · 0 评论 -
GetDlgItem、EnableWindow等函数在线程函数中无法使用
将窗口指针传递给线程,或者申明一个全局窗口指针,使线程内可见。例如:UINT TestThread(LPVOID pParam){ CMyDlg* pDlg = (CMyDlg*)pParam; pDlg->GetDlgItem(IDC_Button1)->EnableWindow(0); return 0; }void CMyDlg::OnBnClick原创 2014-09-08 22:27:53 · 1991 阅读 · 0 评论 -
让MFC程序隐藏运行界面
有一种好方法,就是在OnInitDialog(...)中加入以下的代码://设置窗口为非顶级窗口,并且窗口的位置为(0,0)窗口的宽和高为(0,0)SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_HIDEWINDOW); //隐藏任务栏图标显示(设置窗口格式为工具窗口)ModifyStyleEx(WS_EX_APPWINDOW,WS_EX原创 2014-08-26 09:43:34 · 998 阅读 · 0 评论 -
MFC动态创建BUTTON
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件:为了对照,我们先来看一下静态控件的创建。放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。静态控件不需要调原创 2014-09-25 10:06:09 · 11695 阅读 · 1 评论 -
MFC设置字体详解
VC++中static text字体改变 窗口都有2个和字体有关的函数:CWnd::GetFont()和SetFont(CFont*, BOOL);1)CFont* pFont = m_static.GetFont();2)LOGFONT LogFont;pFont->GetLogFont(&LogFont);3)对LogFont直接操纵修改里面的字体选项 //如Log原创 2014-09-27 22:51:34 · 9939 阅读 · 0 评论 -
DLL注入经典方法
注入Dll:1,OpenProcess获得要注入进程的句柄2,VirtualAllocEx在远程进程中开辟出一段内存,长度为strlen(dllname)+1;3,WriteProcessMemory将Dll的名字写入第二步开辟出的内存中。4,CreateRemoteThread将LoadLibraryA作为线程函数,参数为Dll的名称,创建新线程5,Clo原创 2014-10-26 10:47:24 · 1082 阅读 · 0 评论 -
用VC创建并使用DLL
Windows平台下用C++代码取得机器的MAC地址并不是一件简单直接的事情。到目前为止,作者尚未发现有任何一个通用的100%的适用于所有Windows平台的方法可以稳定的取得MAC地址。而有些应用(比如MMORPG)则需要稳定的得到机器的MAC地址,解决方案往往是通过多种方法依次使用来提高成功率。 说明: 以下方法只会返回多网卡的第一个MAC地址转载 2014-10-24 14:00:28 · 594 阅读 · 0 评论 -
关于wParam和lParam
在VC的函数参数中常出现WPARAM和LPARAM,这两个有什么特殊意义么?它们的含义是不是要事先定义? WPARAM和LPARAM一般在消息里面用的很多,其实没有特殊的含义的。 是两普通的变量 。 是怎样通过wParam,lParam传参数的呢?有时候表示点的坐标,有时表示控件的ID, 是不是事先定义好的? W转载 2014-10-11 10:45:52 · 929 阅读 · 0 评论 -
AfxGetApp()->GetMainWnd()->GetSafeHwnd()
AfxGetApp()- -- 取应用程序实例指针 getmainwnd -- 取主窗口对象指针原创 2014-10-11 09:36:14 · 2773 阅读 · 0 评论 -
WebBrowser 事件
私有事件描述BeforeNavigate2在导航之前发生. (该事件并不在不刷新页面的时候发生)CommandStateChange当命令状态改变时发生.该事件告诉你何时使能或者禁止 Back 以及Forward 菜单像或者按钮.DocumentComplete当整个文档完全完成装载时发生.原创 2014-10-11 16:58:30 · 2092 阅读 · 0 评论 -
MFC隐藏主窗口运行的几种方法
有很多应用程序要求一起动就隐藏起来,这些程序多作为后台程序运行,希望不影响其他 窗口,往往只在托盘区显示一个图标。这些程序通常都是对话框程序,而对话框在初始化的过程上与SDI、MDI的初始化是不同的,对话框只需要 DoModule或者是CreateDialog等等对话框函数调用一次便可,SDI、MDI则要好几步才行。这样看来,对话框在使用方法上面是隐藏了不 少细节的,其中就没有SDI、MDI所要求原创 2014-10-14 10:03:48 · 14255 阅读 · 0 评论 -
正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
[cpp] view plaincopy// CMy5View message handlers#include #include #include void CMy5View::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel){ // TODO: Add your specialized code here and/o转载 2014-10-13 11:53:35 · 1359 阅读 · 1 评论 -
CStdioFile之ReadString()与WriteString()注意事项
CStdioFileCObject └CFile └CStdioFile一个CStdioFile对象代表一个用运行时函数fopen打开的C运行时流式文件。流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFi原创 2014-11-16 18:11:49 · 20531 阅读 · 0 评论 -
VC获取DOS命令返回值
改变DOS程序的标准输出,用一个管道的写端口替换他,然后windows程序从管道的读端口读出来。 下面这个示例的函数可以把给定的DOS命令执行一遍,并把DOS下的输出内容记录在buffer中。同时示范了匿名管道重定向输出的用法:[cpp] view plaincopyBOOL CDOSDlg::ExecDosCmd() {转载 2014-10-25 09:30:05 · 1657 阅读 · 0 评论 -
vc 启动和停止服务
包含头文件:#include winsvc.h>以下以web服务为例: #include winsvc.h>void CStartServiceDlg::OnBnClickedButton1(){ // 打开服务管理对象 SC_HANDLE hSC = ::OpenSCManager( NULL,原创 2014-10-15 14:05:32 · 2400 阅读 · 0 评论 -
VC加载初始化GDI+方法
1. MFC Dialog工程加载GDI+方法(1) stdafx.h 文件中添加代码:#include //将GDI+头文件加入到工程中 #pragma comment(lib, "gdiplus.lib") //将GDI+的lib文件加入到工程中 using namespace Gdiplus; //使用GDI+的命名空间原创 2014-11-17 16:24:51 · 2857 阅读 · 0 评论 -
VC实现窗口最小化至托盘
所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。一 、原理1、最小化的原理:首先要将窗口隐藏,然后 在右下角绘制图标。2、恢复的原理:将窗口显示,再将托盘中的图片删除。二、代码实现1、自定义消息WM_SHOWTASK:为了防止用户定义原创 2014-11-18 19:30:45 · 2954 阅读 · 0 评论 -
木马编程DIY之系统服务
木马编程DIY之系统服务] 对系统服务的管理几乎是木马必不可少的功能了,比如神气儿,上兴远程控制等要是能我们给自己的木马加上这个功能,看着也不赖。我们实现的效果如图3-4所示图3图4好啦,现在开始干活 取得配置权限 在对服务进行管理设置前,需要以相应的权限打开服务,可通过下面两个API实现原创 2014-10-15 15:16:02 · 648 阅读 · 0 评论 -
C#程序实现窗体的最大化/最小化
C#代码实现:private void button1_Click(object sender, EventArgs e){ this.WindowState = FormWindowState.Maximized; this.notifyIcon1.Visible = true;}private void button2_Click(object sender, Ev原创 2014-11-18 18:55:11 · 27765 阅读 · 0 评论 -
WinMM.dll 函数汇总
#include "MMSystem.h" auxGetDevCaps 查询指定的辅助输出设备以确定其性能auxGetNumDevs 检取系统中存在的辅助输出设备的数量auxGetVolume 返回指定的辅助输出设备的当前卷设备auxOutMessage原创 2014-11-03 17:16:12 · 2587 阅读 · 0 评论 -
StrStrI 与 strstr
PTSTR StrStrI( _In_ PTSTR pszFirst, _In_ PCTSTR pszSrch);原创 2014-10-17 12:06:15 · 6557 阅读 · 0 评论 -
VC创建圆角窗体2
为了实现圆角的对话框窗口,这里主要用两个函数,CreateRoundRectRgn,和SetWindowRgn程序先通过GetWindowRgn函数得到窗口矩形,然后通过CreateRoundRectRgn函数创建一个圆角矩形,最后通过SetWindowRgn函数改变窗口的形状。具体操作如下:1 打开“class view”,右击“CMyDlg”,出现一个菜单,选择“原创 2014-11-18 20:36:44 · 1343 阅读 · 0 评论 -
URL编码
本文的目的是设计一个完成URL编码的C++类。在我曾经的项目中,我需要从VC++ 6.0应用程序中POST数据,而这些数据需要进行URL编码。我在MSDN中查找能根据提供的字符串生成URL编码的相关类或API,但我没有找到,因此我必须设计一个自己的URLEncode C++类。URLEncoder.exe是一个使用URLEncode类的MFC对话框程序。如何处理 一些特殊字符在Inte原创 2014-11-19 16:54:33 · 1301 阅读 · 0 评论 -
VC创建圆角窗体
有时候根据具体需求,我们可能要改变窗口的形状。使用API函数SetWindowRgn可以改变一个窗体的可见范围。使用API函数CreateRoundRectRgn()函数可以创建一个圆角矩形区域。图片ID为:IDB_BACKBMPBOOL CDemoDlg::OnInitDialog(){ CDialog::OnInitDialog(); // Set the原创 2014-11-18 20:33:40 · 1731 阅读 · 0 评论 -
sscanf,sscanf_s及其相关用法
#include 定义函数 int sscanf (const char *str,const char * format,........);函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表原创 2014-11-19 13:48:37 · 3259 阅读 · 0 评论 -
inno setup 打包工具介绍
使 用 笔 记1、Inno Setup 是什么?Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。关键功能:★ 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003,原创 2014-10-19 13:32:48 · 3864 阅读 · 0 评论 -
VC中调用JavaScript的代码片段
m_ReUrl.Format("javascript:CategHandle('%d','%s','%d','yes')", g_nGroupIndex + 1,dlg.m_vFileGroup[g_nGroupIndex].strGroup,dlg.m_vFileGroup.size()); CComPtr ppDisp = NULL; m原创 2014-11-02 16:27:38 · 468 阅读 · 0 评论 -
回调函数
回调函数,就是由你自己写的你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函数里完成你要做的事模块A有一个函数foo,它向模块B传递foo的地址,然后在B里面发生某种事件(event)时,通过从A里面传递过来的foo的地址调用foo,通知A发生了什么事情,让A作出相应反应 那么我们就把foo称原创 2014-10-20 16:19:00 · 628 阅读 · 0 评论 -
WebBrowser控件使用技巧
MFC标准WEB控件变量:CExplorer1 m_web;1. 重载WEB控件方法DocumentComplete:实现消除内嵌网页的滚动条和3D边框void CWebDlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL){ // TODO: 在此处添加消息处理程序代码 CComPtr p原创 2014-12-15 10:06:14 · 3234 阅读 · 0 评论 -
获取屏幕及桌面大小
1. 获取屏幕大小方法I:使用GetSystemMetrics()int nWidth = GetSystemMetrics(SM_CXSCREEN);int nHeight = GetSystemMetrics(SM_CYSCREEN);得到1920*1080例如:实现窗口居中显示//屏幕大小int cx = GetSystemMetrics(SM_CXSCR原创 2014-12-06 14:55:52 · 5372 阅读 · 0 评论 -
加载图片的方法(II)
1 按钮添加图标:方法一:1.添加图标资源IDI_ICON1;2 使用函数 LoadIcon() 载入图标。因为LoadIcon() 是类 CWinApp 的成员函数,同时函数 LoadIcon() 返回所载入图标的句柄。所以我们采用以下方法来调用函数 LoadIcon(): HICON m_hicn1=AfxGetApp()->LoadIcon(IDI_ICON1);原创 2014-11-29 15:22:17 · 1016 阅读 · 0 评论 -
设置ListCtrl表头
1. 隐藏表头方法方法I: 设置ClistCtrl属性“ no column header”为"true";方法II: 加载属性LVS_NOCOLUMNHEADER 2. 禁止表头拖动自定义CMyListCtrl, 继承CListCtrl, 然后重载方法OnNotify()//重载OnNotify来禁止拖动表头//拖动ListCtrl列表宽度时接收到HDN_ITE原创 2014-11-24 23:45:07 · 4611 阅读 · 0 评论