网上说得毫不轻松啊,如下:
实现步骤:
1、插入一个对话框资源,放置一个分组框,其ID设为stc32=0x45f,然后放置其他想要的控件
设置对话框的属性:Style: Child Border: None Clip siblings 3D外观 控制
2、为对话框设置相应的实现类,从CDialog派生,然后将基类改为CFileDialog
3、修改构造函数
定义:
public:
CSpecialDlg(BOOL bOpenFileDialog, 
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL);
实现:
CSpecialDlg::CSpecialDlg(BOOL bOpenFileDialog, LPCTSTR lpszDefExt, LPCTSTR lpszFileName,
DWORD dwFlags, LPCTSTR lpszFilter, CWnd* pParentWnd) :
CFileDialog(bOpenFileDialog, lpszDefExt, lpszFileName, dwFlags, lpszFilter, pParentWnd)
{
//turn on the template
m_ofn.Flags |= OFN_ENABLETEMPLATE;//get the right module handle
m_ofn.hInstance = AfxGetResourceHandle();//set the template to load
m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_SPECIAL_DLG);//change the window title
m_ofn.lpstrTitle="Delete File";
}
4、响应自定义模板上控件的消息:
void CSpecialDlg::OnButton1() 
{HWND hwndControl; 
//获得通用对话框上控件的句柄:1是“打开”按钮的Control IDhwndControl = ::GetDlgItem(GetParent()->m_hWnd,1);
//改变标题
::SetWindowText(hwndControl,"Delete All");}
5、使用
CSpecialDlg dlg(TRUE);
dlg.DoModal();我在vc.net中全盘照做,可是文件对话框说什么就是不给我出来了!!!!!help阿!!!急!!

解决方案 »

  1.   

    没错,我昨天刚做了一个CFileDialog派生类。没有问题的。
    但是,可惜的是,这个对话框模板上我不能放置DataGrid控件!!!否则启动不了!
    还有,谁知道"打开"按钮的ID是多少???
      

  2.   

    老哥,别光说你做了一个CFileDialog派生类,分享一下啦,我的就说什么都不出来了,急人阿急人
      

  3.   

    [email protected]打开改为其他的就是这句吧:
    HWND hwndControl; //获得通用对话框上控件的句柄:1是“打开”按钮的Control IDhwndControl = ::GetDlgItem(GetParent()->m_hWnd,1);
    //改变标题
    ::SetWindowText(hwndControl,"Delete All");
      

  4.   

    我的问题已经解决了,因为我使用了RichEdit 2.0 faint 阿!!!!
      

  5.   

    To 鸟人,“打开”按钮的ID值就是1
      

  6.   

    汗~~楼主贴出来的注释中有打开按钮的ID……我以前也重载过CFileDialog,把上面能用到的控件的ID总结过:
    Open按钮:  1
    Cancel按钮: 2
    file name(Edit Combo):   1152
    folder(Combo):   1137
    read only(Label): 1040
    file extension(Combo): 1136
    FolderView(ListView): 1    
    ToolBar:    1088   //补充:
    FolderView的id和Open一样,是列举文件夹下文件名那个List,选择文件夹路径的下拉框是1137。
    工具栏(1088,可以选择FolderView的排列方式)在NT4.0下没有,Win2000和WinXP中才有。