关于CFileDialog对话框上返回上一层,新建文件夹按钮的处理 在系统提供的标准打开/保存对话框中,右上角有几个快捷按钮,如:“到上一级目录”,“新建文件夹”等。它们好像是toolbar,请问各位大虾,是否有方法对它们进行控制,使它们Enable或Disable. 谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to syy64(太平洋)我搜了一下,inside vc 第7章有一个改造文件打开对话框,往上面增加一个“delete all matching files”的按钮,你说的是这个例子么? 不过我不是想往标准对话框上增加按钮,而是想隐藏windows文件打开对话框上的那几个按钮。 找到好早的一个帖子关于CFileDialog对话框上的按钮楼主Pixie(笨笨虫)2000-09-16 17:21:00 在 VC/MFC / 基础类 提问 在系统提供的标准打开/保存对话框中,右上角有几个快捷按钮,如:“到上一级目录”,“新建文件夹”等。请问各位大虾,是否有方法对它们进行控制,使它们Enable或Disable. 问题点数:80、回复次数:6Top1 楼Holly()回复于 2000-09-16 18:55:00 得分 10系统没有公开它们的ID,它们是在一个ToolBarWindow上,因此还很难对按钮进行控制,倒是可以想办法自己构建一个,将原来的ToolBarWindow隐藏掉!Top2 楼RedFire(丹焰)回复于 2000-09-16 21:26:00 得分 0关注!Top3 楼andygood()回复于 2000-09-17 17:11:00 得分 0使用Hook,对进程内的相关消息进行处理。在CodeGuru上的对话框部分有相应的文章。Top4 楼lgs(老臭虫)回复于 2000-09-17 17:23:00 得分 0需要示例代码的可以找我!Top5 楼Pixie(笨笨虫)回复于 2000-09-17 20:44:00 得分 0lgs的回答已解决了我的问题,谢谢大家! 呵呵,刚刚做过一个类似的问题的程序。我们采用的方法是将这两个按钮删除掉,需要派生cfiledialog类,给你个代码吧,自己看。void CFileDialogEx::OnInitDone(){ // Disable the selecting folder path Combo box GetParent()->GetDlgItem(cmb2)->EnableWindow(FALSE); // Disable the Edit control GetParent()->GetDlgItem(edt1)->EnableWindow(FALSE); // Delete two buttons: "up" and "new" of the dialog's tool bar. CWnd *pwnd = GetParent()->GetWindow(GW_CHILD); if(pwnd) { char *buf = new char[512]; ASSERT(buf); while(pwnd != NULL) { ::GetClassName(pwnd->GetSafeHwnd(), buf, 512); CString str=buf; str.TrimRight(); if(_T("ToolbarWindow32") == str) { CToolBar* pToolBar = (CToolBar*) pwnd; CToolBarCtrl* pToolBarCtrl = &(pToolBar->GetToolBarCtrl()); ASSERT(pToolBar); ASSERT(pToolBarCtrl); pToolBarCtrl->DeleteButton(1); // delete "up" button pToolBarCtrl->DeleteButton(1); // delete "new" button } pwnd = pwnd->GetNextWindow(); } delete[] buf; buf = NULL; }} 关闭80等端口 GDI+高手请进,显示内存中图片的问题 多线程的问题 如何将长整形时间转换为可字符时间?? 简单头文件包含问题 一个小问题 字符串怎么转为数字啊 想学COM+编程 从哪里能够得到Cserial类来实现串口通讯 菜鸟系列:请问如何用CFileFind类查找internet上的文件?给100分! richtext中怎么将包含有特定字符的行设为粗体 拖动按钮到网页中获取控件 如何得到unicode字符
我搜了一下,inside vc 第7章有一个改造文件打开对话框,往上面增加一个“delete all matching files”的按钮,你说的是这个例子么?
不过我不是想往标准对话框上增加按钮,而是想隐藏windows文件打开对话框上的那几个按钮。
关于CFileDialog对话框上的按钮
楼主Pixie(笨笨虫)2000-09-16 17:21:00 在 VC/MFC / 基础类 提问 在系统提供的标准打开/保存对话框中,右上角有几个快捷按钮,如:“到上一级目录”,“新建文件夹”等。请问各位大虾,是否有方法对它们进行控制,使它们Enable或Disable. 问题点数:80、回复次数:6Top
1 楼Holly()回复于 2000-09-16 18:55:00 得分 10系统没有公开它们的ID,它们是在一个ToolBarWindow上,因此还很难对按钮进行控制,倒是可以想办法自己构建一个,将原来的ToolBarWindow隐藏掉!Top
2 楼RedFire(丹焰)回复于 2000-09-16 21:26:00 得分 0关注!Top
3 楼andygood()回复于 2000-09-17 17:11:00 得分 0使用Hook,对进程内的相关消息进行处理。在CodeGuru上的对话框部分有相应的文章。Top
4 楼lgs(老臭虫)回复于 2000-09-17 17:23:00 得分 0需要示例代码的可以找我!Top
5 楼Pixie(笨笨虫)回复于 2000-09-17 20:44:00 得分 0lgs的回答已解决了我的问题,谢谢大家!
void CFileDialogEx::OnInitDone()
{
// Disable the selecting folder path Combo box
GetParent()->GetDlgItem(cmb2)->EnableWindow(FALSE);
// Disable the Edit control
GetParent()->GetDlgItem(edt1)->EnableWindow(FALSE); // Delete two buttons: "up" and "new" of the dialog's tool bar.
CWnd *pwnd = GetParent()->GetWindow(GW_CHILD);
if(pwnd)
{
char *buf = new char[512];
ASSERT(buf);
while(pwnd != NULL)
{
::GetClassName(pwnd->GetSafeHwnd(), buf, 512);
CString str=buf;
str.TrimRight(); if(_T("ToolbarWindow32") == str)
{
CToolBar* pToolBar = (CToolBar*) pwnd;
CToolBarCtrl* pToolBarCtrl = &(pToolBar->GetToolBarCtrl());
ASSERT(pToolBar);
ASSERT(pToolBarCtrl);
pToolBarCtrl->DeleteButton(1); // delete "up" button
pToolBarCtrl->DeleteButton(1); // delete "new" button
}
pwnd = pwnd->GetNextWindow();
}
delete[] buf;
buf = NULL;
}
}