热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

有没有了解ole对象的!?我想知道“插入对象”(ole对象)对话框是哪个类??

“插入对象”对话框是哪个类呀?我知道有一个COleInsertDialog类,但是不是我想要的。我想要word文档里面插入对象时弹出的那种对话框!有没有人知道是哪个类呀?是这种对话框:
“插入对象”对话框是哪个类呀? 我知道有一个COleInsertDialog类,但是不是我想要的。我想要word文档里面插入对象时弹出的那种对话框!有没有人知道是哪个类呀?

是这种对话框:

#10


失误,上面的图片贴瞎了。再贴一遍,你给的资源代码生成的对话框:



引用 8 楼 sebastianlin 的回复:
這個是 IDD_INSERTOBJECT的 dialog template

IDD_INSERTOBJECT DIALOG DISCARDABLE  6, 18, 293, 150
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

#11


引用 8 楼 sebastianlin 的回复:
這個是 IDD_INSERTOBJECT的 dialog template

IDD_INSERTOBJECT DIALOG DISCARDABLE  6, 18, 293, 150
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

非常感谢!
高手,是不是没有现成的类跟word文档中插入对象对话框对应??word插入对象对话框也是自己设计的且跟COleInsertDialog的对话框没什么区别?
我想要word插入对象那样的对话框,主要原因是我用COleInsertDialog选择从文件插入对象勾选显示为图标后更改图标没有效果,您理解吗?有解决方法没?
主要就是从文件插入ole后更改图标,再上图:

#12


#13


#14


引用 10 楼 aimn147 的回复:
失误,上面的图片贴瞎了。再贴一遍,你给的资源代码生成的对话框:



引用 8 楼 sebastianlin 的回复:這個是 IDD_INSERTOBJECT的 dialog template

IDD_INSERTOBJECT DIALOG DISCARDABLE  6, 18, 293, 150
STYLE DS_MODALFRAME | WS_POPU……


無言了,給了你 IDD_INSERTOBJECT的 dialog template 也有 ID
幫你把 OLEDLG 門戶大開,如果你還不知如何下一步,....孔仲尼云舉一偶而不以三偶反.....

你用了原本的 dialog template 當然還是原來 OLDDLG 的模樣

在最上加了 TAB CONTROL 不就是再把 IDC_IO_CREATEFROMFILE ,IDC_IO_CREATENEW
2 個 RADIO 藏起來,再把 MESSAGE 引導至TAB CONTROL不就可以? .......

IDD_INSERTDLG DIALOGEX 0, 0, 400, 200
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Insert Object"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
    CONTROL         "",IDC_TAB1,"SysTabControl32",0x0,2,4,397,185
    CONTROL         "Create &New",IDC_IO_CREATENEW,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,76,44,73,10
    CONTROL         "Create from &File",IDC_IO_CREATEFROMFILE,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,76,62,73,10
    CONTROL         "Create &Control",IDC_IO_INSERTCONTROL,"Button",BS_AUTORADIOBUTTON,76,80,72,10
    LTEXT           "Object &Type:",IDC_IO_OBJECTTYPETEXT,151,32,110,8
    LISTBOX         IDC_IO_OBJECTTYPELIST,152,43,132,78,LBS_SORT | LBS_USETABSTOPS | WS_VSCROLL | WS_GROUP | WS_TABSTOP
    LTEXT           "Fil&e:",IDC_IO_FILETEXT,152,50,20,8
    LTEXT           "",IDC_IO_FILETYPE,190,50,80,8
    EDITTEXT        IDC_IO_FILEDISPLAY,152,60,132,12,ES_AUTOHSCROLL
    PUSHBUTTON      "&Browse...",IDC_IO_FILE,152,76,48,14
    CONTROL         "&Link",IDC_IO_LINKFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,210,78,40,10
    LISTBOX         IDC_IO_CONTROLTYPELIST,152,43,132,66,LBS_SORT | LBS_USETABSTOPS | NOT WS_VISIBLE | WS_DISABLED | WS_VSCROLL | WS_GROUP | WS_TABSTOP
    PUSHBUTTON      "&Add Control...",IDC_IO_ADDCONTROL,152,104,66,14
    DEFPUSHBUTTON   "OK",IDOK,291,32,66,14,WS_GROUP
    PUSHBUTTON      "Cancel",IDCANCEL,291,49,66,14
    PUSHBUTTON      "&Help",IDC_OLEUIHELP,291,66,66,14
    CONTROL         "&Display As Icon",IDC_IO_DISPLAYASICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,292,88,66,10
    CONTROL         "",IDC_IO_ICONDISPLAY,"OLE2UIiconbox",0x0,291,105,66,46
    PUSHBUTTON      "Change &Icon...",IDC_IO_CHANGEICON,291,156,66,14
    GROUPBOX        "Result",IDC_STATIC,76,122,210,47,WS_GROUP
    CONTROL         "",IDC_IO_RESULTIMAGE,"OLE2UIresimage",0x0,80,132,42,34
    LTEXT           "<< result text goes here >>",IDC_IO_RESULTTEXT,126,132,156,32,SS_NOPREFIX | SS_NOTIFY | NOT WS_GROUP
END

BOOL CALLBACK AfxDlgProc(HWND hWnd, UINT message, WPARAM, LPARAM);   

UINT CALLBACK CInsertDialog::MyHookProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_INITDIALOG)
{
return (UINT)AfxDlgProc(hWnd, message, wParam, lParam);
}

else if (message == WM_COMMAND && LOWORD(wParam) == IDC_OLEUIHELP)
{
CInsertDialog* pDlg = DYNAMIC_DOWNCAST(CInsertDialog, CWnd::FromHandlePermanent(hWnd));

// just translate the message into the AFX standard help command.
pDlg->SendMessage(WM_COMMAND, ID_HELP, 0);
return TRUE;
}
else if( message == WM_NOTIFY && ((LPNMHDR)lParam)->idFrom == IDC_TAB1 && ((LPNMHDR)lParam)->code == TCN_SELCHANGE )
{
LRESULT rlt;
CInsertDialog* pDlg = DYNAMIC_DOWNCAST(CInsertDialog, CWnd::FromHandlePermanent(hWnd));
pDlg->OnTcnSelchangeTab1((NMHDR*)lParam,&rlt);
return rlt;
}
return 0;
}


BOOL CInsertDialog::OnInitDialog()
{
COleInsertDialog::OnInitDialog();

// TODO:  Add extra initialization here
CString strCreateNew,strCreateFile;
CTabCtrl* pTab=(CTabCtrl*)GetDlgItem(IDC_TAB1);
CButton* pCreateNew=(CButton*)GetDlgItem(IDC_IO_CREATENEW);
CButton* pCreateFile=(CButton*)GetDlgItem(IDC_IO_CREATEFROMFILE);

pCreateNew->GetWindowText(strCreateNew);
pCreateFile->GetWindowText(strCreateFile);

//pCreateNew->ShowWindow(SW_HIDE);
//pCreateFile->ShowWindow(SW_HIDE);

pTab->InsertItem(0,strCreateNew);
pTab->InsertItem(1,strCreateFile);


return TRUE;  // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}


void CInsertDialog::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
CTabCtrl* pTab=(CTabCtrl*)GetDlgItem(IDC_TAB1);
int cur=pTab->GetCurSel();

if( cur == 0 )
{

}
else if( cur == 1 )
{

}


*pResult = 0;
}

如果提示如此你還不了解,你 WIN32/OLE 的基礎建議再多加強些









#15


引用 11 楼 aimn147 的回复:
引用 8 楼 sebastianlin 的回复:這個是 IDD_INSERTOBJECT的 dialog template

IDD_INSERTOBJECT DIALOG DISCARDABLE  6, 18, 293, 150
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
非常感谢!
高手,……


MS WORD 是不是用 OLE HOOK 來完成我不是很清楚 ,很久沒再去DISASSEMBLY WORD 了
但是 OLE官方是建議用 HOOK 來改 DIALOG

#16


引用 14 楼 sebastianlin 的回复:
IDD_INSERTOBJECT DIALOG DISCARDABLE  6, 18, 293, 150
STYLE DS_MODALFRAME ……


高手,我的目的不是手动修改插入对象对话框的样式啊。我以为word插入对象对话框的另外一个现有的类,与COleInsertDialog一样只是对话框外表不完全相同。
您看图片没有?我的程序插入ole对象时选“从文件插入”,并以图标方式显示,有些图标不能正常显示!word文档中从文件插入对象可以任意更改图标且能正常显示。您知道为什么有些图标不能正常显示吗?
再次贴图:


(如果你需要分数我可以另外发帖你去解答)3Q

#17


引用 14 楼 sebastianlin 的回复:
IDD_INSERTOBJECT DIALOG DISCARDABLE  6, 18, 293, 150
STYLE DS_MODALFRAME ……


高手,我的目的不是手动修改插入对象对话框的样式啊。我以为word插入对象对话框是另外一个现有的类,与COleInsertDialog一样只是对话框外表不完全相同。
您看图片没有?我的程序插入ole对象时选“从文件插入”,并以图标方式显示,有些图标不能正常显示!word文档中从文件插入对象可以任意更改图标且能正常显示。您知道为什么有些图标不能正常显示吗?
再次贴图:


(如果你需要分数我可以另外发帖你去解答)3Q

#18


引用 4 楼 sebastianlin 的回复:
COleInsertDialog dlg;
if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK)
return;



高手,分给你了。
还是这个问题,我新发了一个帖。地址:http://bbs.csdn.net/topics/390330170
麻烦您有时间帮忙解决一下

#19


。。。。。。。。。。。。。。。。。。。。。

#20


引用 4 楼 sebastianlin 的回复:
COleInsertDialog dlg;
if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK)
return;


高手,分给你了。
还是这个问题,我新发了一个帖。地址: http://bbs.csdn.net/topics/390330170
麻烦您有时间帮忙解决一下



#21


搞手!!!!!

推荐阅读
author-avatar
落可可lookeke
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有