自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

God,please give me a little more time ....

路漫漫其修远兮,吾将上下而求索 ...

  • 博客(75)
  • 资源 (17)
  • 收藏
  • 关注

原创 获取CMD命令结果

<br />UINT __cdecl ThreadProc(LPVOID lParam){ HWND hWnd = (HWND)lParam; ASSERT(hWnd); TCHAR szApp[MAX_PATH] = _T("netstat -s"); HANDLE hRead = NULL; HANDLE hWrite = NULL; SECURITY_ATTRIBUTES sa = {0}; sa.nLength = sizeof(sa); sa.lpSecu

2011-04-26 21:30:00 4808

原创 支持窗口滚动条控制的类(SDK版)

<br />这里提供一个SDK版的,支持窗口滚动条控制的类,MFC版本和使用方法都请参考这里。<br />// H 文件#pragma onceclass CScrollWnd {public: CScrollWnd(); virtual ~CScrollWnd();public: void Attach(HWND hWnd); void Detach(); void SetSize(int nWidth, int nHeight); const SIZ

2011-04-22 13:39:00 4680 2

原创 Win32 SDK 添加状态栏Status Bar

<br />#include <commctrl.h>#pragma comment(lib, "comctl32.lib")// 在窗口回调函数的WM_CREATE消息中添加如下代码:case WM_CREATE:{ INITCOMMONCONTROLSEX icex;// Ensure that the common control DLL is loaded. icex.dwSize = sizeof(INITCOMMONCONTROLSEX); icex.dwICC

2011-04-15 13:51:00 3511 2

原创 LVN_ITEMCHANGED通知会响应多次的问题

<br />#define LVIF_STATE 0x0008#define LVIS_FOCUSED 0x0001#define LVIS_SELECTED 0x0002// 在CListCtrl派生类中响应LVN_ITEMCHANGED消息void CNewListCtrl::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult) { NMLISTVIEW* pNMLis

2011-04-14 10:36:00 11834 7

原创 向本进程窗口中的ListView窗口发送NM_DBLCLK通知(SDK代码)

<br />// 注意这里是向本进程的ListView窗口发送NM_DBLCLK通知,通过WM_NOTIFY消息,WM_NOTIFY不能跨进程,主要是因为SendMessage发送WM_NOTIFY消息最后一个LPARAM参数是个指针。// MSDN上有明确说明:For Microsoft Windows 2000 and later systems, the WM_NOTIFY message cannot be sent between processes。int nId = ::GetDl

2011-04-11 10:20:00 6424 3

原创 应用程序加载外部字体文件

<br /><br />/*MSDN: Any application that adds or removes fonts from the system font table should notify other windows of the change by sending a WM_FONTCHANGE message to all top-level windows in the operating system. The application should send this

2011-03-14 13:43:00 5347 2

原创 对话框上右下角显示resize icon(可以拖动改变对话框的大小)

<br />CStatusBar m_StatusBar; // 成员变量// 全局变量static UINT auIDStatusBar[] = { ID_SEPARATOR};//在对话框类的WM_CREATE消息的响应函数OnCreate中加入下面的代码ModifyStyle(0, WS_THICKFRAME);//在对话框类的OnInitDialog()中加入下面的代码 if(m_StatusBar.Create(this)){

2011-03-04 15:52:00 4476 10

原创 在编辑框(CEdit)控件上追加内容

<br />// MFC 版本CEdit* pEdit = GetDlgItem(IDC_EDIT1);ASSERT(pEdit && pEdit->GetSafeHwnd());pEdit->SetSel(-1);pEdit->ReplaceSel(_T("Hello, World!"));// SDK 版本HWND hEdit = ::GetDlgItem(hWnd, IDC_EDIT1);ASSERT(hEdit);::SendMessage(hEdit, EM_S

2011-03-01 10:02:00 9206 1

原创 窗口截图(二)

窗口截图,可以获取遮挡窗口完整的图像,并保存到bmp文件中去。主要用到的函数中PrintWindow,VC6不支持该函数,请使用VS2008来编译。其它需求如平台要求请参考MSDN文档。void SaveHwndToBmpFile(HWND hWnd, LPCTSTR lps

2011-02-25 09:29:00 15172 13

原创 窗口截图(可指定HWND窗口句柄)

BOOL SaveHwndToBmpFile(HWND hWnd, LPCTSTR lpszPath){ HWND hDesktop = ::GetDesktopWindow(); ASSERT(hDesktop); if(NULL == hWnd) { hWnd = hDesktop; } RECT rect; ::GetWindowRect(hWnd, &rect); int nWidht = rect.right - rect.left; int nH

2011-02-23 16:00:00 12384 22

原创 简单的自绘CListBox(三)(类似CTreeCtrl Expand效果)

<br />一个简单的扩展的CListBox类,点击某一个item的时候,自动展开该项来显示更多信息,类似CTreeCtrl控件的Expand样式风格。<br />// H 文件#pragma once#include <vector>using namespace std;// CMultiLineListBox#define RGB_FOREGROUND RGB(0, 0, 0)#define RGB_BACKGROUND RGB(255, 255, 255)#d

2011-02-14 10:25:00 5592 6

原创 一个简单的UDP广播例子(含C/S)

<br />一个简单的UDP广播通讯的例子程序,含有服务端和客户端的代码。<br />// 服务端// BoardCast_Server.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <WinSock2.h>#include <Windows.h>#pragma comment(lib, "WS2_32.lib")int _tmain(in

2011-02-11 11:13:00 7572 3

原创 自绘CProgressCtrl进度条控件,支持自定义显示文本和进程百分比信息

<br />// CXProgressCtrl 头文件#pragma once// CXProgressCtrlclass CXProgressCtrl : public CProgressCtrl{ DECLARE_DYNAMIC(CXProgressCtrl)public: CXProgressCtrl(); virtual ~CXProgressCtrl(); typedef enum _ALIGN_TEXT_ { ALIGN_LEFT

2011-01-26 15:57:00 12473 21

原创 对话框工程CTreeCtrl(checkbox风格)在OnInitDialog中调用CTreeCtrl::SetCheck()无效的问题

<br />在对话框工程中,添加一个CTreeCtrl树型控件,该树型控件勾上了checkbox风格,但是在OnInitDialog中调用下面的代码却无法勾选指定的节点项,不过利用下面的代码却可以勾选该节点。<br />// CTreeCtrl m_tree; // CTreeCtrl类型对象m_tree已经关联了树型控件//对话框类的OnInitDialog函数m_tree.ModifyStyle(TVS_CHECKBOXES, 0);m_tree.ModifyStyle(0, TVS

2011-01-14 09:19:00 3508

原创 转移当前焦点到另外下一个Tab次序的控件

<br />之前有写个一个关于转移输入焦点的,http://blog.csdn.net/VisualEleven/archive/2010/12/06/6058687.aspx,这里再给出另外一种,之前的那是是直接将焦点转移到指定的控件上(IDCANCEL标示的CButton上),这里给出的是将输入焦点转移到下个Tab次序的控件上。<br /> <br />// 将当前输入焦点转移到下一个Tab顺序的控件上CWnd* pWnd = GetNextDlgTabItem(GetFocus());AS

2010-12-28 11:23:00 2221

原创 屏幕截图(带光标)

<br />// 屏幕截图程序,可运行PC,WinCE,Windows Mobile平台上void SaveScreenToFile(LPCTSTR szFileName){ HDC hScrDC = ::GetDC(NULL); HDC hMemDC = NULL; BYTE *lpBitmapBits = NULL; int nWidth = GetSystemMetrics(SM_CXSCREEN); int nHeight = GetSystemMetr

2010-12-23 10:20:00 7616 14

原创 动态调整CDialogBar的停靠位置

<br />// 在主框架类的CMainFrame的函数中加入最后的代码即可// CDialogBar m_wndMyDialogBar是CMainFrame类的成员变量#define AFX_IDW_DOCKBAR_TOP 0xE81B#define AFX_IDW_DOCKBAR_LEFT 0xE81C#define AFX_IDW_DOCKBAR_RIGHT 0xE81D#define AFX_IDW_DOCKB

2010-12-22 11:39:00 3393 2

原创 Winsock IOCP模型(二)

<br />// IOCP2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <WinSock2.h>#include <MSWSock.h>#include <Windows.h>#include <process.h>#pragma comment(lib, "WS2_32.lib")#define MAX_BUFFER 256#de

2010-12-21 10:30:00 14441 24

原创 简单的自绘CListBox(二)(多行显示,支持前景色和背景色的变更)

<br />简单的自绘CListBox,支持多行显示和前景色和背景色的更换。下面是相关的H头文件和CPP文件。<br />#if !defined(AFX_MULITLINELISTBOX_H__D705CB99_9FD0_424E_BD71_027547449AE5__INCLUDED_)#define AFX_MULITLINELISTBOX_H__D705CB99_9FD0_424E_BD71_027547449AE5__INCLUDED_#if _MSC_VER > 1000#pra

2010-12-13 08:50:00 10001 10

原创 CPropertySheet属性页对话框中各个按钮的ID值

<br />//向导模式ID_WIZNEXT // NextID_WIZBACK // BackID_WIZFINISH // FinshIDCANCEL // Cancel//普通模式IDOK // OKIDCANCEL // CancelID_APPLY_NOW // ApplyIDHELP // He

2010-12-08 16:42:00 3258 1

原创 简单的自绘CListBox(多行显示)

<br />      之前写过一个自绘的CListBox类,详细请参考http://blog.csdn.net/VisualEleven/archive/2010/10/12/5935430.aspx<br />现在修改这之前的代码,使该CListBox能够支持多行显示的问题。<br /> <br />// 重写DrawItem虚函数void CNewListBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your

2010-12-08 10:39:00 5246 4

原创 转移当前焦点到另外一个CButton上

<br />将当前焦点由一个CButton转移到另外一个CButton上,可以使用WM_NEXTDLGCTL消息,可以使用下面代码将焦点移到IDCANCEL标示的Button上 <br />CButton* pButton = (CButton*)GetDlgItem(IDCANCEL);SendMessage/PostMessage(WM_NEXTDLGCTL, (WPARAM)pButton->GetSafeHwnd(), TRUE);

2010-12-06 16:40:00 2050

原创 CEdit中(多行属性),双击选中一行文本

<br />// 重写CEdit类,处理WM_LBUTTONDBLCLK消息void CNewEdit::OnLButtonDblClk(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CEdit::OnLButtonDblClk(nFlags, point); int start = LineIndex(HIWORD

2010-12-02 10:41:00 3678

原创 Winsock IOCP模型

<br />// IOCP.cpp : Defines the entry point for the console application.////#include "stdafx.h"#include <WinSock2.h>#include <Windows.h>#include <process.h>#pragma comment(lib, "WS2_32.lib")#define MAX_BUFFER 256#define MAX_TIMEOUT

2010-11-29 05:12:00 7092 8

原创 将EXE作为资源,然后在释放到磁盘上并运行该exe程序

// 将exe作为资源加入,然后再释放出来,并运行 try { HRSRC hRes = FindResource(NULL, MAKEINTRESOURCE(IDR_EXE1), _T("EXE")); if(NULL == hRes) return ; DWORD dw...

2010-11-25 17:02:00 10509 5

原创 CreateProcess启动隐藏的外部程序

<br /> HDESK hDesk = CreateDesktop(_T("MyDesk"), NULL, NULL, 0, GENERIC_ALL, NULL); ASSERT(hDesk); STARTUPINFO si = {sizeof(si)}; si.lpDesktop = _T("MyDesk"); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; PROCESS_INFORMATION pi =

2010-11-21 16:49:00 9163 3

原创 Winsock Overlapped IO模型(二)

<br />// Overlpped_Server2.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Winsock2.h>#include <Windows.h>#include <process.h>#pragma comment(lib, "WS2_32.lib")#define MAX_BUFFER 256#define MAX_T

2010-11-16 05:43:00 3111 1

原创 Winsock Overlapped IO模型(一)

<br />// NetWork.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <Winsock2.h>#include <Windows.h>#include <process.h>#pragma comment(lib, "WS2_32.lib")#define MAX_BUFFER 256#define MAX_TIMEOUT 1

2010-11-06 14:08:00 2395

原创 修改MDI工程主框架窗口标题

<br />//在CMainFrame类的PreCreateWindow函数中加入m_strTitle = _T("Hello");cs.style &= ~FWS_ADDTOTITLE;//即可修改主框架窗口的标题。代码如下:BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){ m_strTitle = _T("Hello"); cs.style &= ~FWS_ADDTOTITLE; if( !CMDIFr

2010-10-27 11:15:00 2272 2

原创 自绘CListCtrl类

<br />//自绘CListCtrl类,重载虚函数DrawItemvoid CNewListCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){ // TODO: Add your code to draw the specified item ASSERT(lpDrawItemStruct->CtlType == ODT_LISTVIEW); CDC dc; dc.Attach(lpDrawItemStruct->hDC);

2010-10-18 09:55:00 21544 30

原创 简单的自绘CListBox

<br />//例如CNewListBox继承自CListBox,重载虚MeasureItem和DrawItem这两个虚函数,代码如下:void CNewListBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { // TODO: Add your code to draw the specified item ASSERT(lpDrawItemStruct->CtlType == ODT_LISTBOX); LPCTSTR lpsz

2010-10-12 13:07:00 8065 1

原创 替换应用程序的图标

替换应用程序exe图标,主要使用的API函数是BeginUpdateResource(),UpdateResource(),EndUpdateResource()来使用自定义的ico文件类替换exe程序原来的图标。// 第一个参数是将要替换图标的exe文件路径,第二个参数是替换的ico文件路径void ReplaceExeIco(LPCTSTR lpszApp, LPCTSTR lpszI

2010-07-22 11:32:00 5524 4

原创 MFC的GUI窗口使用Console输出函数printf

在GUI程序中使用printf函数: #include #include void InitConsole(){ int nRet= 0; FILE* fp; AllocConsole(); nRet= _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);

2010-04-22 21:11:00 16190 9

原创 关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息

对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。void CXXXDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu){ CDialog::OnInitMenuPopu

2010-04-21 22:42:00 5426 8

原创 Windows平台下图形化的Ping工具

Windows 平台下的图形化的ping工具,基于MFC的对话框工程,界面效果如下图所示:图1 图二源代码下载地址:http://download.csdn.net/source/2263557 

2010-04-21 17:32:00 8640 6

Windows Driver Development (Windows驱动开发电子书).rar

Windows驱动开发资料(均为英文版资料) 1)Windows NT File System Internals 2)Developing Drivers with the Windows Driver Foundation 3)Programming the Microsoft Windows Driver Model(2nd) 4)Windows Internals 6th (Part 1/Part 2) 5)Windows.Internals 7th (Part 1)

2019-07-22

cppcheck tool

cppcheck tool for C/C++ project cppcheck tool for C/C++ project

2018-01-22

Developing Drivers with the Windows Driver Foundation.pdf

Windows Driver Developement, WDF Development, WDM WDF Development

2018-01-22

Windows驱动开发技术详解

Windows驱动开发技术详解

2017-03-21

Windows设备驱动程序WDF开发

Windows设备驱动程序WDF开发

2017-03-21

Developing Drivers with the Microsoft Windows Driver Foundation

Brought to you from the team who developed Windows Driver Foundation, this comprehensive guide gives you the in-depth, expert guidance you need to start developing robust drivers for Windows.

2017-03-21

Windows平台下的Ping工具(3)

Windows平台下的Ping工具(3)修正之前的的Bug

2010-05-25

Windows平台下的图形化的Ping工具(2)(基于MFC的Dialog工程)

Windows平台下的图形化的Ping工具(基于MFC的Dialog工程),之前的版本存在一个小错误,即计算平均耗时时间错误。

2010-04-20

Windows平台下的图形化的Ping工具(基于MFC的Dialog工程)

Windows平台下的图形化的Ping工具(基于MFC的Dialog工程)

2010-04-20

VC图形图像技术篇.chm

VC图形图像技术篇.chm VC图形图像技术篇.chm

2008-09-09

OpenGL基础图形编程.chm

OpenGL基础图形编程.chm OpenGL基础图形编程.chm

2008-09-09

MFC类库详解.chm

MFC类库详解.chm MFC类库详解.chm

2008-09-09

ESAN2

TCP下的端口扫描器,开源代码

2008-04-23

ESAN1

tcp下端口扫描器,开源代码

2008-04-23

ESCAN扫描器

TCP下的端口扫描器,开源代码

2008-04-23

空空如也

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

TA关注的人

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