• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






C++是神码东东。。。

Nothing to Say
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | | 订阅 订阅 | 管理

10 2012 档案

 
Windows API ——LoadCursor——载入鼠标
摘要:1: LoadStandardCursor使用方法 . LoadStandardCursor用来载入系统自带的光标 , 调用方式如下: HCURSOR hCursor = (HCURSOR)AfxGetApp()->LoadStandardCursor(IDC_CROSS); ::SetCursor(hCursor);2: LoadCursor 使用方法 HCURSOR LoadCursor(HINSTANCE hInstance , // handle to application instance LPCT... 阅读全文
posted @ 2012-10-31 17:55 凨丶 阅读(2330) 评论(0) 推荐(0)
Windows消息循环
摘要:1 #include <Windows.h> 2 #include <tchar.h> 3 #include "resource.h" 4 5 #define MAX_LOADSTRING 100 6 TCHAR szTitle[MAX_LOADSTRING] = _T("标题栏"); // 标题栏文本 7 TCHAR szWindowClass[MAX_LOADSTRING] = _T("MyClass"); // 主窗口类名 8 9 10 ATOM ToRegisterClass(HINSTANCE hIn 阅读全文
posted @ 2012-10-31 16:37 凨丶 阅读(465) 评论(0) 推荐(0)
PreTranslateMessage
摘要:MFC中CWintThread的PumpMessage函数的定义: 1 BOOL CWinThread::PumpMessage() 2 { 3 _AFX_THREAD_STATE *pState = AfxGetThreadState(); 4 5 ::GetMessage(&(pState->m_msgCur), NULL, NULL, NULL)) 6 7 if (!AfxPreTranslateMessage(&(pState->m_msgCur)))//当PreTranslateMessage返回FALSE时才继续传递消息 8 { 9 ... 阅读全文
posted @ 2012-10-31 16:05 凨丶 阅读(2610) 评论(0) 推荐(0)
windows消息大全
摘要:消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg, 它在Windows中是这样声明的: typedef struct { HWNDhwnd;/ /窗口句柄 UINTmessage;/ /消息常量标识符 WPARAMwParam;// 32位消息的特定附加信息 LPARAMlPar... 阅读全文
posted @ 2012-10-31 15:39 凨丶 阅读(292) 评论(0) 推荐(0)
Windows消息中的虚拟键列表
摘要:Windows消息中的虚拟键列表Windows消息中的虚拟键VK_LBUTTON 鼠标左键 0x01VK_RBUTTON 鼠标右键 0x02VK_CANCEL Ctrl + Break 0x03VK_MBUTTON 鼠标中键 0x04VK_BACK Backspace 键 0x08VK_TAB Tab 键 0x09VK_RETURN 回车键 0x0DVK_SHIFT Shift 键 0x10VK_CONTROL Ctrl 键 0x11VK_MENU Alt 键 0x12VK_PAUSE Pause 键 0x13VK_CAPITAL ... 阅读全文
posted @ 2012-10-31 15:36 凨丶 阅读(1597) 评论(0) 推荐(0)
钩子HHOOK
摘要:基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。运行机制1、钩子链表和钩子子程: 每一个Hook都有一个与之相关联的指针列表,... 阅读全文
posted @ 2012-10-31 15:23 凨丶 阅读(3956) 评论(0) 推荐(2)
Windows API——SHGetSpecialFolderPath——获取系统特殊路径
摘要:1 BOOL SHGetSpecialFolderPath( 2 HWND hwndOwner, 3 LPTSTR lpszPath, //路径,长度至少为MAX_PATH,Windows下即260 4 int nFolder,//MSDN上搜索CSIDL,可以知道常用的特殊路径的宏定义 5 BOOL fCreate//如果为true,表示不存在指示的特殊路径,则创建 6 ); 7 8 TCHAR szPath[MAX_PATH]; 9 ZeroMemory(szPath, MAX_PATH); 10 SHGetSpecialFolderPa... 阅读全文
posted @ 2012-10-31 14:37 凨丶 阅读(4919) 评论(0) 推荐(0)
CString的成员函数详解
摘要:typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;CString的构造函数:1 CString( );2 CString( const CString& stringSrc );3 CString( TCHAR ch, int nRepeat = 1 );4 CString( LPCTSTR lpch, int nLength );5 CString( const unsigned char* psz );6 CString( LPCWSTR lpsz );7 CString( LP 阅读全文
posted @ 2012-10-31 13:04 凨丶 阅读(6972) 评论(4) 推荐(1)
MultiByteToWideChar的与WideCharToMultiByte的参数详解(转)
摘要:MultiByteToWideChar的与WideCharToMultiByte的参数详解第一个就是宽字符到多字节字符转换函数,函数原型如下:CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->intWideCharToMultiByte(UINTCodePage,DWORDdwFlags,LPCWSTRlpWideCharStr,intcchWideChar,LPSTRlpMultiByteStr,intcbMultiByte,LPCS 阅读全文
posted @ 2012-10-31 10:34 凨丶 阅读(3155) 评论(2) 推荐(0)
WideCharToMultiByte和MultiByteToWideChar函数的用法 (转)
摘要:先看看这篇关于Windows编码的文章:http://blog.csdn.net/shyboy_nwpu/article/details/4431668 再看看这篇关于两个函数参数和用法的说明:http://www.cnblogs.com/wind-net/archive/2012/10/10/2718340.html 为了支持Unicode编码,需要多字节与宽字节之间的相互转换。这两个系统函数在使用时需要指定代码页。 WideCharToMultiByte的代码页用来标记与新转换的字符串相关的代码页。 MultiByteToWideChar的代码页用来标记与一个多字节字符串相关的... 阅读全文
posted @ 2012-10-31 10:17 凨丶 阅读(22528) 评论(0) 推荐(0)
MFC下的各种字符串类型和相互转换
摘要:MFC下的常用字符串数据类型表示的含义:L:Long 长 P:Point 指针 C:Const 常量 W:Wchar_t 宽字符 T:TCHAR STR:String 字符串在看看MFC下各种数据类型的定义: 1 typedef char *LPSTR; 2 typedef const char *LPCSTR; 3 4 typedef wchar_t *LPWSTR; 5 typedef const wchar_t *LPCWSTR; 6 typedef wchar_t WCHAR; 7 8 #ifdef UNICODE 9 ... 阅读全文
posted @ 2012-10-31 10:11 凨丶 阅读(11786) 评论(0) 推荐(1)
CTabCtrl分页控件的使用
摘要:1.插入三个对话框,ID为默认的IDD_DIALOG1、IDD_DIALOG2、IDD_DIALOG3。设定对话框属性Border:None Style:Child2.双击对话框,为其添加类,CDlg1、CDlg2、CDlg33.在主对话框的头文件中添加对三个对话框类头文件的引用1 #include "Dlg1"2 #include "Dlg2"3 #include "Dlg3"4.在主对话框中添加三个变量:1 CDlg1 m_dlg1;2 3 CDlg2 m_dlg2;4 5 CDlg3 m_dlg3;5.主对话框中添加TabCtr 阅读全文
posted @ 2012-10-30 19:58 凨丶 阅读(5561) 评论(0) 推荐(1)
CListCtrl的使用
摘要:1.添加表头: 定义一个CListCtrl控件的关联变量ListControl,在OnInitDialog()函数里面加上如下代码 1 ////初始化界面 2 ListControl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); 3 LONG lStyle; 4 lStyle = GetWindowLong(ListControl.m_hWnd, GWL_STYLE);//获取当前窗口style 5 lStyle &= ~LVS_TYPEMASK; //清除显示方式位 6 lS... 阅读全文
posted @ 2012-10-30 09:47 凨丶 阅读(12329) 评论(0) 推荐(2)
Windows API ——GetVersionEx——获取操作系统版本信息
摘要:1 //获取系统版本 2 BOOL GetOSName( CString& csOsName ) 3 { 4 OSVERSIONINFOEX osvi; 5 SYSTEM_INFO si; 6 BOOL bOsVersionInfoEx; 7 ZeroMemory(&si, sizeof(SYSTEM_INFO)); 8 ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); 9 10 // Try calling GetVersionEx using the OSVERSIONINFOEX structure. 11 // ... 阅读全文
posted @ 2012-10-27 15:11 凨丶 阅读(4154) 评论(0) 推荐(0)
Windows API ——CreateToolhelp32Snapshot——查找进程
摘要:1 //根据进程名获取进程ID 2 DWORD GetPidByProcessName(TCHAR *pProcess) 3 { 4 HANDLE hSnapshot; 5 PROCESSENTRY32 lppe; 6 //创建系统快照 7 hSnapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); //#include<Tlhelp32.h> 8 9 if (hSnapshot == NULL) 10 return 0; 11 12 //初始化... 阅读全文
posted @ 2012-10-26 16:56 凨丶 阅读(2265) 评论(0) 推荐(1)
VC++ DEGUG/RELEASE两选项主要有哪些区别 .(转)
摘要:一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Release 版错误,在此不讨论)Debug 版本:/MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库)/Od 阅读全文
posted @ 2012-10-26 09:24 凨丶 阅读(993) 评论(0) 推荐(0)
WIN32进程快照以及进程ID和句柄查找(转)
摘要:要对进程进行某种操作,就必须首先知道该进程的进程句柄或者进程ID,否则一切无从谈起,对于程序自己创建的子进程来说,CreateProcess函数返回了进程句柄和进程ID,但如果需要调试系统中已经运行的进程,那就必须首先获取它们的句柄才行。Win32中并没有直接获取其他进程句柄的函数,但如果知道进程ID,可以由此得到进程句柄,所以可以首先通过某种途径获取进程ID。一、获取进程ID1. 从窗口句柄获取进程句柄 获取进程ID的方法之一是使用GetWindowThreadProcessId函数,这个函数可以从一个窗口句柄获得创建该窗口的进程的进程ID,而通过FindWindow函数得到窗口句柄是很简. 阅读全文
posted @ 2012-10-25 15:58 凨丶 阅读(4137) 评论(0) 推荐(1)
Windows API ——OpenProcess——打开进程
摘要:1 bool KillProcess(TCHAR *pProcess)//ch是进程名字符串 2 { 3 HANDLE hSnapshot; 4 PROCESSENTRY32 lppe; 5 //创建系统快照 6 hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); 7 if (hSnapshot == NULL) 8 return false; 9 //初始化 lppe 的大小 10 lppe.dwSize = sizeof(lp... 阅读全文
posted @ 2012-10-25 15:47 凨丶 阅读(3442) 评论(1) 推荐(0)
查找窗口、窗口置顶、获取窗口的文本
摘要://窗口置顶 1 CWnd *wnd = CWnd::FindWindow(NULL, _T("test.txt - 记事本"));//通过窗口名 2 3 if (wnd) 4 5 { 6 7 wnd->ShowWindow(SW_NORMAL);//显示窗口 8 9 wnd->SetForegroundWindow();//设为前台窗口10 11 ::SetWindowPos(wnd->m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//置顶12 13 }如果不用MFC的类,也可以直接用API函数1 阅读全文
posted @ 2012-10-25 15:47 凨丶 阅读(1418) 评论(0) 推荐(0)
结构体对齐的具体含义(#pragma pack)(转) .
摘要:朋友帖了如下一段代码: #pragma pack(4) class TestB { public: int aa; char a; short b; char c; }; int nSize = sizeof(TestB); 这里nSize结果为12,在预料之中。 现在去掉第一个成员变量为如下代码: #pragma pack(4) class TestC { public: char a; short b; char c; }; int nSize = sizeof(TestC); 按照正常的填充方式nSize的结果应该是... 阅读全文
posted @ 2012-10-25 11:07 凨丶 阅读(441) 评论(1) 推荐(0)
#pragma指令的使用(转)
摘要:在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.下面介绍了一下该指令的一些常用参数,希望对大家有所帮助!一. message 参数。 message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 当我们在程序中定义了许多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定 阅读全文
posted @ 2012-10-25 11:05 凨丶 阅读(263) 评论(0) 推荐(0)
GUID
摘要:GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。 在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项、类及接口标识、数据库、系统目录等对象。GUID格式 GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x ... 阅读全文
posted @ 2012-10-24 17:10 凨丶 阅读(372) 评论(0) 推荐(1)
Windows API ——SetWindowLong—— 设置窗口样式
摘要:SetWindowLong 函数原型为:LONG SetWindowLong(HWND hwnd,int nIndex,Long dwNewLong);详见MSDN。下面简单总结一下SetWindowLong函数几种常用的地方:1.设置窗口风格 如:SetWindowLong(hWnd, GWL_STYLE, WS_POPUP|WS_BORDER); //有边框的弹出窗口 SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW);//设置窗口扩展样式为WS_EX_TOOLWINDOW,可以让窗体不在任务栏中显示。2.消息处理函数的转移 对于WINDO 阅读全文
posted @ 2012-10-23 15:45 凨丶 阅读(18697) 评论(0) 推荐(0)
常用cmd命令
摘要:appwiz.cpl 添加\卸载程序arp -a 显示所有连接了的计算机IP和MACarp -s 192.168.10.59 00-50-ff-6c-08-75 ip和MAC绑定arp -d 127.0.0.1 解除绑定assoc 显示文件管理at 11:51 ipconfig计划运行任务attrib +r 文件名 将文件设置为只读,-r去掉只读(s系统,h隐藏,a存档)calc 计算器cacls访问控制列表(ACLS)certmgr.msc 证书管理charmap 字符映射表chglogon.exe 启动或停用回话记录chgport.exe 改变端口(终端服务)chgusr.exe 改变用户 阅读全文
posted @ 2012-10-17 17:40 凨丶 阅读(236) 评论(0) 推荐(0)
VC常用代码(VS2008下测试过的)
摘要:1.只允许运行程序的一个实例MFC写在InitInstance函数中 HANDLE hMutex = CreateMutex(NULL, TRUE, _T("test"));//创建一个有名的互斥对象 if (ERROR_ALREADY_EXISTS == GetLastError())//如果互斥对象创建失败 { CWnd *wnd;//找到当前允许程序的窗口,第二个程序为窗口名 if( wnd = CWnd::FindWindow(0, _T("ControlDemo"))) { //恢复窗口 wn... 阅读全文
posted @ 2012-10-16 17:59 凨丶 阅读(1034) 评论(0) 推荐(0)
Boost 1.46.1 - VS2008下直接安装使用 .(转)
摘要:http://blog.csdn.net/blizmax6/article/details/6727102 阅读全文
posted @ 2012-10-09 15:03 凨丶 阅读(174) 评论(0) 推荐(0)