
MFC
文章平均质量分 59
aa1991
这个作者很懒,什么都没留下…
展开
-
VC中注册表的读写修改操作
(1)打开注册表,读写之前都要进行此操作HKEY hKEY; //定义一个hkey句柄 //打开与IRM相关的hKEY,访问注册表,hkey则保存函数所打开的键的句柄 long ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, //需要打开的主键的名称REG_IRM_ROOT, //需要打开的子键的名称,如 “SOF原创 2013-04-08 14:27:11 · 533 阅读 · 0 评论 -
剪贴板的一些机制
浅析Windows编程的剪贴板机制 多数据项和延迟提交技术 要把数据放入剪贴板,在打开剪贴板后一定要调用EmptyClipboard()函数清除当前剪贴板中的内容,而不可以在原有数据项基础上追加新的数据项。但是,可以在EmptyClipboard()和CloseClipboard()调用之间多次调用SetClipboardData()函数来放置多个不转载 2015-07-14 14:40:35 · 1655 阅读 · 0 评论 -
system 用户创建的进程创建当前用户(如Administrator)的进程。
//获取当前进程的灵牌 HANDLE hTokenDup = NULL; HANDLE hThisProcess = GetCurrentProcess(); DWORD dwSessionId = 0; dwSessionId = ::WTSGetActiveConsoleSessionId(); if(dwSessionId == 0xFFFFFFFF) { DWORD原创 2015-04-17 16:18:43 · 1211 阅读 · 0 评论 -
PeekMessage完美解决MFC主界面无响应
一般主界面无响应的解决方案是,对于计算量过大的方法,另开工作者线程,如下: MFC支持两种线程:用户界面线程和工作者线程。(1)用户界面线程:通常用于处理用户输入,响应由用户产生的事件和消息。用户界面线程通常有窗口,有自己的消息循环。CWinApp是一个用户界面线程对象的例子,因为它是从CWinThread派生出来的,而且要处理用户产生的事件和消息。(2转载 2015-03-20 16:51:49 · 5818 阅读 · 0 评论 -
CopyFile(CopyFileEx)复制.mov大文件时关闭文件后文件没有复制完全
CFile sourceFile, destFile;CFileFind FileFind; CFileException ex;BOOL bGetCfgAuthority = FALSE; // 如果文件名太长, 使用短文件名 LPCTSTR lpSrcFile = szDesDir; LPCTSTR lpDestFile = lpVDSrcP原创 2014-09-16 17:34:33 · 1078 阅读 · 0 评论 -
XP下OpenProcess(ALL_ACCESS,...)
解决方法:int AddPrivilege(const char *Name) { HANDLE hToken; TOKEN_PRIVILEGES tp; LUID Luid; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVIL原创 2014-08-20 14:01:31 · 702 阅读 · 0 评论 -
C++怎样获得打印机列表
//获取打印机列表int CloginDlg::GetPrintJobList(CString szPrintName){HANDLE hPrinter;DWORD dwNeeded, dwReturned,i;JOB_INFO_1* pJobInfo;DWORD res = 0;res = OpenPrinter( (LPWSTR)(LPCWSTR)szPrintNa原创 2014-06-27 13:55:52 · 4111 阅读 · 0 评论 -
LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新的cvtres.exe替换老的文件即可,替换之前记得备份一下,如果不对,可以替换回来。例如:我的电脑里面安装了vs2010,最近更新了系统,打了一些补丁,结果就出原创 2014-03-05 09:23:09 · 498 阅读 · 0 评论 -
怎样在去掉自绘菜单的边框
菜单其实也是一种窗口,是类名为“#32768”的窗口,我们可以通过钩子截取窗口过程,对相应的消息进行处理,需要注意的是,菜单窗口不是通过WM_PAINT和WM_NCPAINT对窗口进行绘制,而是通过WM_PRINT(整个窗口)和WM_PRINTCLIENT(客户区)进行绘制。下面介绍具体实现的过程:首先要创建一个进程内钩子,一般在App的InitInstance里调用::SetWi转载 2013-08-08 22:38:43 · 1256 阅读 · 0 评论 -
在listctrl中添加edit和combox控件
1.定义成员变量: CComboBox m_Cmb; 、、将它与组合框控件关联, CEdit m_Edit;、、将它与编辑框控件关联, int m_row,m_col; //记录用户点击的那个单元格所在的行与列号 2.添加listctrl的单击响应消息主要是完成了单击后将控件显示出来。添加代码如下void CControllerDialogAdd::OnClickListD转载 2013-08-21 23:14:23 · 2363 阅读 · 0 评论 -
WM_MOUSELEAVE 消息
void CroundDlg::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: Add your message handler code here and/or call default CDialogEx::OnLButtonDown(nFlags, point); PostMessage(WM_NCLBUTTONDOWN, H原创 2013-07-25 10:54:06 · 620 阅读 · 0 评论 -
innosetup 判断电脑有没有安装.netFramework
[code] function CheckDotNet2_0():boolean; begin Result:=not RegKeyExists(HKLM,'SOFTWARE/Microsoft/.NETFramework/policy/v2.0'); end; function InitializeSetup(): Boolean; var Path:string;原创 2013-07-10 22:18:06 · 1225 阅读 · 0 评论 -
在MFC中,给各个控件显示变化的提示信息
第一步:在头文件里添加一个CToolTipCtrl类型的变量m_tooltip,并在构造函数里初始化 m_tooltip.Create(this,TTS_ALWAYSTIP | TTS_NOPREFIX); m_tooltip.Activate(TRUE); CWnd* pw = GetDlgItem(IDC_OBJECTAUTHORISE); //要显示提示信息的控件id m_原创 2013-05-10 17:24:50 · 671 阅读 · 0 评论 -
低权限向高权限发送消息 (例子 拖拽文件)
因为有UIPI 的存在,当低权限向高权限发送先消息的时候,高权限的进程获取不到消息; 先看下什么是UIPI:以下摘自百度百科: UIPI指 User Interface Privilege Isolation(用户界面特权隔离),是Windows NT 6.0后(即Vista)引入的一种新的安全特性,是整个UAC机制的有机组成部分,主要用于拦截接受对自身进程MIC等转载 2015-12-10 18:10:48 · 1755 阅读 · 0 评论