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 ...
随机推荐
- MySQL技术内幕汇总
MySql技术内幕之MySQL入门(1) MySql技术内幕之MySQL入门(1) 检查系统中是否已经安装了MySQL sudo netstat -tap | grep mysql 若没有显示已安装结 ...
- js文件中使用EL表达式的问题
var str = '${str}' ; var str = '${obj.属性名}'; 只可以再jsp页面的<script></script>中使用,外部引入的js文件中不能 ...
- 使用Hibernate Tools从数据库逆向生成Hibernate实体类
自动生成model.java.*.hbm.xml 甚至是dao.java.*.ddl.*.html等等.一般也就如下三种方式1. MyEclipse 自带插件2. jboss的 hibernate-t ...
- Linux系统挂载操作mount详解
在Linux系统中,文件系统不挂载是无法使用的.挂载,即是让文件系统在操作系统中可用.在Linux中使用mount命令来挂载文件系统,有永久性挂载和临时性挂载两种挂载方式. 1. 永久性挂载: 修改配 ...
- LeetCode 346. Moving Average from Data Stream (数据流动中的移动平均值)$
Given a stream of integers and a window size, calculate the moving average of all integers in the sl ...
- java时间格式
Calendar startdate = Calendar.getInstance(); startdate.setTime(new Date()); //当前时间 startdate.add(Cal ...
- ajax+php(环境搭建+测试)
在学习JavaScript,jQuery的ajax部分的时候,一直不明白要如何进行,不知道服务器要怎么弄,什么都不知道,当初在学ajax的时候,除了看一下ajax的内容,实践极少,因为,不知道要怎么做 ...
- Hdu 1698(线段树 区间修改 区间查询)
In the game of DotA, Pudge's meat hook is actually the most horrible thing for most of the heroes. T ...
- 蓝桥杯-算法训练--ALGO-4 结点选择
本人是一个刚刚接触C++不久的傻学生~记录一些自己的学习过程.大神路过可以批评指正~ 刚学动态规划,水平还很渣,一下子不知道从何下手,借鉴了一下这位大哥的文章 http://www.cnblogs.c ...
- mysql将字符串转化为数字
我的字段为内容为数字,但是类型为字符串,需要使用CASE转换即可 SELECT MAX(CAST(C_id AS UNSIGNED)) INTO id 即查询出来最大的C_id,否则会按照字符串查询最 ...