MFC中小笔记
主要记录下一些有啊没啊的MFC东西。
1、单文档 去掉 无标题:在玩的时候用于FindWindow(class,title)
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE; cs.style &= ~FWS_ADDTOTITLE ;//////////////////加上这一句. return TRUE;
}
单文档 去掉 打开文档名(无标题)
2、鼠标右键操作 ,二级菜单
POINT t;
GetCursorPos(&t);
HMENU hMenu,hPopupMenu;
hMenu=CreatePopupMenu();
hPopupMenu=CreatePopupMenu();
AppendMenu(hMenu,MF_STRING,CW_ABOUT,"");
AppendMenu(hPopupMenu,MF_STRING,CW_DOCUMENT,"22222222(&D)");
InsertMenu(hMenu,,MF_BYPOSITION|MF_STRING|MF_POPUP,(unsigned short)hPopupMenu,"");
TrackPopupMenu(hMenu,TPM_TOPALIGN,t.x,t.y,,::GetFocus(),);
右键弹出
3、文件文件夹右击菜单 注册表中位置 HKCR_AllFilesystemObjects_ShellEx_ContextMenuHandlers
在ATL工程中编辑的位置为FileView 选项卡- SimATL.rgs(*.rgs)
NoRemove AllFilesystemObjects
{
NoRemove ShellEx
{
NoRemove ContextMenuHandlers
{
ForceRemove SimpleShlExt = s '{×××××××××××××××(ATL-uid)}'
}
}
}
}
注册表-全部文件和文件夹
4、对多个文件的右击操作()
HRESULT CSimAti::Initialize(LPCITEMIDLIST pidlFolder, LPDATAOBJECT lpdobj, HKEY hkeyProgID)
{
//----------省略
。。。。。。 //拖拽操作,右击操作
//----------------------------------------------
//extern TCHAR m_files[MAX],m_pzDropFile[20]
//extern int length; int count = ::DragQueryFile(hDrop, 0xFFFFFFFF, NULL, ); if (count){
for (int i=;i<count;i++){
DragQueryFile(hDrop,i,m_pzDropFile,MAX_PATH);
for (int j=;j<strlen(m_pzDropFile);j++)
{
m_files[length+j]=m_pzDropFile[j]; } length+=strlen(m_pzDropFile);
m_files[length++]=0x20;//0x20 ASCII为空格,以空格来间隔各个文件
}
m_files[length]=NULL; }
//---------------------------------------------- GlobalUnlock(hDrop);
//Release the medium storage
::ReleaseStgMedium(&mdmSTG);
//return SUCCEED flag
return S_OK;
}
多文件右键操作
5、对文件-右键菜单的点击行为
HRESULT CSimAti::InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
{
USES_CONVERSION; int nFlag = HIWORD(lpici->lpVerb);//如果 nFlag 不为0则说明 pici->lpVerb 指向一个以''\0''结尾的字符串
int nMnuId = LOWORD(lpici->lpVerb);//user clicked menu's id //用户当前点击的菜单项ID
if( != nFlag){
return E_INVALIDARG;
}
//response the menu item command
switch(nMnuId){
case :
{
///*形成后的命令行格式为 *.exe E/D file1name空格 filename2空格 filename3...*/
m_files[]='E';//
m_files[]=0x20;//空格
ShellExecute(NULL,"open","temp.exe",m_files,NULL, SW_SHOW );
return S_OK;
}
break; case :
{
m_files[]='D';//标识符 E
m_files[]=0x20;
ShellExecute(NULL,"open","temp.exe",m_files,NULL, SW_SHOW );
return S_OK;
}
break;
}
return E_INVALIDARG;
}
右键点击
MFC中小笔记的更多相关文章
- MFC 学习笔记
MFC 学习笔记 一.MFC编程基础: 概述: 常用头文件: MFC控制台程序: MFC库程序: 规则库可以被各种程序所调用,扩展库只能被MFC程序调用. MFC窗口程序: 示例: MFC库中类的简介 ...
- MFC学习笔记(一)
个人对MFC技术一直都很感兴趣,因为能够做出漂亮绚丽的界面应该是一件十分有成就感的事情. 学习的参考课本为北京博彦科技发展有限责任公司翻译的Jeff Prosise著的<MFC Windows程 ...
- MFC学习笔记
获取窗口句柄 FindWindow 根据窗口名获取 GetSafehWnd 取你程序所在窗口类的句柄 GetActiveWindow ...
- 孙鑫MFC学习笔记13:文档
1.CArchive类保存内存数据 2.CAchive类重载了>>与<<操作符,类似C++文件流 3.在OnNewDocument中通过SetTitle设置标题 4.字符串资源 ...
- 孙鑫MFC学习笔记12:文件读写
1.指向常量的指针 2.指针常量 3.C语言对文件操作是在缓冲区,在缓冲区满或文件关闭时写入文件 读取相同 4.fflush刷新缓冲区,使缓冲区数据写入文件 5.fseek改变文件指针偏移量 6.st ...
- 孙鑫MFC学习笔记4:MFC画图
1.画线方法 *1.捕获鼠标按下和弹起消息,获取两个点 *2.消息响应,画线 2.在CMainFrame类中的鼠标左键事件得不到响应的原因是CNameView覆盖了CMainFrame 3.注释宏 4 ...
- 孙鑫MFC学习笔记3:MFC程序运行过程
1.MFC中WinMain函数的位置在APPMODUL.cpp APPMODUL.cpp中是_tWinMain,其实_tWinMain是一个宏#define _tWinMain WinMain 2.全 ...
- [百度空间] [原]MFC杂乱笔记
1. 创建动态菜单 假如ID是动态分配的,那么重载virtual BOOLOnCmdMsg(UINT,int,void*,AFX_CMDHANDLERINFO*); 据MSDN不详细解释,当第二个参数 ...
- 【MFC学习笔记-作业7-小型画图软件】【】
作业要求: 按下鼠标右键画圆. 按下鼠标左键移动曲线. 丝毫没有思路..网上教程又比这个程序复杂100倍... 好吧 总算找到一个合适的了... 转载至:http://blog.chinaunix.n ...
随机推荐
- 超级简单的retrofit使用自签名证书进行HTTPS请求的教程
1. 前言 HTTPS越来越成为主流,谷歌从 2017 年起,Chrome 浏览器将也会把采用 HTTP 协议的网站标记为「不安全」网站:苹果从 2017 年 iOS App 将强制使用 HTTPS: ...
- 【NOIP模拟】的士碰撞(二分答案)
Description
- (转)Java Socket编程
原文出自:http://www.cnblogs.com/rocomp/p/4790340.html Socket是网络驱动层提供给应用程序编程接口和一种机制.可以把Socket比喻成一个港口码头,应用 ...
- 【UML 建模】状态图介绍
1.Statechart Diagram 即状态图,主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列.引起状态转移的事件(Event).因状态转移而伴随的动作(Action) ...
- 【框架学习与探究之定时器--Hangfire】
声明 本文欢迎转载,请注明文章原始出处:http://www.cnblogs.com/DjlNet/p/7603632.html 前言 在上篇文章当中我们知道关于Quartz.NET的一些情况,其实博 ...
- jquery ajax 数据传输
在 form表单中,需要发送给后台的是一串长数据,后台才能接受,而用户则只需要输入字符串中的一部分,这种情况下,就需要将用户输入内容,和剩余部分进行拼串,然后添加进 formData 中传输. 另一种 ...
- Android 6.0运行时权限
一.Runtime Permissions Android 6.0在手机安全方面做的一个处理就是增加了运行时权限(Runtime Permissions). 新的权限机制更好的保护了用户的隐私,Goo ...
- 数据分析与展示——NumPy库入门
这是我学习北京理工大学嵩天老师的<Python数据分析与展示>课程的笔记.嵩老师的课程重点突出.层次分明,在这里特别感谢嵩老师的精彩讲解. NumPy库入门 数据的维度 维度是一组数据的组 ...
- Spring容器组建注解@Component和Resouces实现完全注解配置
@Resource和@Component实现零XML配置 1.@Resource的注解: @Resource是J2EE的注解.意思是说在容器里面找相应的资源.也可以通过name属性指定它name的资源 ...
- Struts2+Spring+Hibernate实现员工管理增删改查功能(一)之ssh框架整合
前言 转载请标明出处:http://www.cnblogs.com/smfx1314/p/7795837.html 本项目是我写的一个练习,目的是回顾ssh框架的整合以及使用.项目介绍: ...