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

儿女情长 2012-12-19 09:15:45
“插入对象”对话框是哪个类呀? 我知道有一个COleInsertDialog类,但是不是我想要的。我想要word文档里面插入对象时弹出的那种对话框!有没有人知道是哪个类呀?

是这种对话框:


而不是这种:
...全文
645 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongfs 2013-01-31
  • 打赏
  • 举报
回复
搞手!!!!!
儿女情长 2012-12-27
  • 打赏
  • 举报
回复
引用 4 楼 sebastianlin 的回复:
COleInsertDialog dlg; if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK) return;
高手,分给你了。 还是这个问题,我新发了一个帖。地址:http://bbs.csdn.net/topics/390330170 麻烦您有时间帮忙解决一下
chmn364 2012-12-27
  • 打赏
  • 举报
回复
。。。。。。。。。。。。。。。。。。。。。
儿女情长 2012-12-27
  • 打赏
  • 举报
回复
引用 4 楼 sebastianlin 的回复:
COleInsertDialog dlg; if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK) return;
高手,分给你了。 还是这个问题,我新发了一个帖。地址:http://bbs.csdn.net/topics/390330170 麻烦您有时间帮忙解决一下
儿女情长 2012-12-24
  • 打赏
  • 举报
回复
引用 14 楼 sebastianlin 的回复:
IDD_INSERTOBJECT DIALOG DISCARDABLE 6, 18, 293, 150 STYLE DS_MODALFRAME ……
高手,我的目的不是手动修改插入对象对话框的样式啊。我以为word插入对象对话框是另外一个现有的类,与COleInsertDialog一样只是对话框外表不完全相同。 您看图片没有?我的程序插入ole对象时选“从文件插入”,并以图标方式显示,有些图标不能正常显示!word文档中从文件插入对象可以任意更改图标且能正常显示。您知道为什么有些图标不能正常显示吗? 再次贴图: (如果你需要分数我可以另外发帖你去解答)3Q
儿女情长 2012-12-24
  • 打赏
  • 举报
回复
引用 14 楼 sebastianlin 的回复:
IDD_INSERTOBJECT DIALOG DISCARDABLE 6, 18, 293, 150
STYLE DS_MODALFRAME ……


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


(如果你需要分数我可以另外发帖你去解答)3Q
西門十方 2012-12-23
  • 打赏
  • 举报
回复
引用 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
西門十方 2012-12-23
  • 打赏
  • 举报
回复
引用 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 的基礎建議再多加強些
儿女情长 2012-12-21
  • 打赏
  • 举报
回复
chmn364 2012-12-21
  • 打赏
  • 举报
回复
儿女情长 2012-12-20
  • 打赏
  • 举报
回复
引用 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后更改图标,再上图:

儿女情长 2012-12-20
  • 打赏
  • 举报
回复
失误,上面的图片贴瞎了。再贴一遍,你给的资源代码生成的对话框:



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

IDD_INSERTOBJECT DIALOG DISCARDABLE 6, 18, 293, 150
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
儿女情长 2012-12-20
  • 打赏
  • 举报
回复
[/img]
引用 8 楼 sebastianlin 的回复:
這個是 IDD_INSERTOBJECT的 dialog template

IDD_INSERTOBJECT DIALOG DISCARDABLE 6, 18, 293, 150
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Insert Object"
FONT 8, "MS Shell Dl……


高手,你玩我呢吧?
[img=http://img.my.csdn.net/uploads/201212/20/1355968232_7804.jpg]
这个是你给的那个资源代码生成的插入对象对话框(你在8楼的回复内容)
你在7楼回复的代码我也试了,跟原来一样的!
我非常怀疑你是否看了我问题的正文,你是不是只看了标题就来回答了呀?
我是想要word中插入对象的那种对话框,是属性页样式的而不是COleInsertDialog选项卡式的对话框,问题的正文有图片的。
儿女情长 2012-12-19
  • 打赏
  • 举报
回复
引用 2 楼 tiger9991 的回复:
楼主好久不见。还在做Word?太强了
是啊,好久不见!编辑器这东西涉及到的东西多,没办法。只是个编辑器,还称不上word,如果是做word,再来5年我也做不完啊==
傻X 2012-12-19
  • 打赏
  • 举报
回复
楼主好久不见。还在做Word?太强了
儿女情长 2012-12-19
  • 打赏
  • 举报
回复
西門十方 2012-12-19
  • 打赏
  • 举报
回复
這個是 IDD_INSERTOBJECT的 dialog template IDD_INSERTOBJECT DIALOG DISCARDABLE 6, 18, 293, 150 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Insert Object" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Create &New",IDC_IO_CREATENEW,"Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,6,18,73,10 CONTROL "Create from &File",IDC_IO_CREATEFROMFILE,"Button", BS_AUTORADIOBUTTON | WS_TABSTOP,6,36,73,10 CONTROL "Create &Control",IDC_IO_INSERTCONTROL,"Button", BS_AUTORADIOBUTTON,6,54,72,10 LTEXT "Object &Type:",IDC_IO_OBJECTTYPETEXT,81,6,110,8 LISTBOX IDC_IO_OBJECTTYPELIST,82,17,132,78,LBS_SORT | LBS_USETABSTOPS | WS_VSCROLL | WS_GROUP | WS_TABSTOP LTEXT "Fil&e:",IDC_IO_FILETEXT,82,24,20,8 LTEXT "",IDC_IO_FILETYPE,120,24,80,8 EDITTEXT IDC_IO_FILEDISPLAY,82,34,132,12,ES_AUTOHSCROLL PUSHBUTTON "&Browse...",IDC_IO_FILE,82,50,48,14 CONTROL "&Link",IDC_IO_LINKFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,52,40,10 LISTBOX IDC_IO_CONTROLTYPELIST,82,17,132,66,LBS_SORT | LBS_USETABSTOPS | NOT WS_VISIBLE | WS_DISABLED | WS_VSCROLL | WS_GROUP | WS_TABSTOP PUSHBUTTON "&Add Control...",IDC_IO_ADDCONTROL,82,78,66,14 DEFPUSHBUTTON "OK",IDOK,221,6,66,14,WS_GROUP PUSHBUTTON "Cancel",IDCANCEL,221,23,66,14 PUSHBUTTON "&Help",IDC_OLEUIHELP,221,40,66,14 CONTROL "&Display As Icon",IDC_IO_DISPLAYASICON,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,222,62,66,10 CONTROL "",IDC_IO_ICONDISPLAY,"OLE2UIiconbox",0x0,221,79,66,46 PUSHBUTTON "Change &Icon...",IDC_IO_CHANGEICON,221,130,66,14 GROUPBOX "Result",IDC_STATIC,6,96,210,47,WS_GROUP CONTROL "",IDC_IO_RESULTIMAGE,"OLE2UIresimage",0x0,10,106,42, 34 LTEXT "<< result text goes here >>",IDC_IO_RESULTTEXT,56,106, 156,32,SS_NOTIFY | SS_NOPREFIX | NOT WS_GROUP END 看你要改成什麼樣都可以只要不要動到ID 最後再看你要放在 dlg.m_io.lpszTemplate; // Customized template name OR dlg.m_io.hResource; // Customized template handle 就 OK
西門十方 2012-12-19
  • 打赏
  • 举报
回复
引用 6 楼 aimn147 的回复:
引用 4 楼 sebastianlin 的回复:COleInsertDialog dlg; if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK) return; 我知道有一个COleInsertDialog类,但是不是我想要的。请看清楚哦
引用 6 楼 aimn147 的回复:
引用 4 楼 sebastianlin 的回复:COleInsertDialog dlg; if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK) return; 我知道有一个COleInsertDialog类,但是不是我想要的。请看清楚哦
還是要用 COleInsertDialog 沒錯 只是要用 hook BOOL CALLBACK AfxDlgProc(HWND hWnd, UINT message, WPARAM, LPARAM); UINT CALLBACK MyHookProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if (message == WM_INITDIALOG) return (UINT)AfxDlgProc(hWnd, message, wParam, lParam); if (message == WM_COMMAND && LOWORD(wParam) == IDC_OLEUIHELP) { // just translate the message into the AFX standard help command. SendMessage(hWnd, WM_COMMAND, ID_HELP, 0); return TRUE; } return 0; } COleInsertDialog dlg; dlg.m_io.lpfnHook = MyHookProc; if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK) return; 而 CONTROL ID 最好都用 OLE 的 // Help Button Identifier #define IDC_OLEUIHELP 99 // Insert Object Dialog identifiers #define IDC_IO_CREATENEW 2100 #define IDC_IO_CREATEFROMFILE 2101 #define IDC_IO_LINKFILE 2102 #define IDC_IO_OBJECTTYPELIST 2103 #define IDC_IO_DISPLAYASICON 2104 #define IDC_IO_CHANGEICON 2105 #define IDC_IO_FILE 2106 #define IDC_IO_FILEDISPLAY 2107 #define IDC_IO_RESULTIMAGE 2108 #define IDC_IO_RESULTTEXT 2109 #define IDC_IO_ICONDISPLAY 2110 #define IDC_IO_OBJECTTYPETEXT 2111 //{{NOHELP}} #define IDC_IO_FILETEXT 2112 //{{NOHELP}} #define IDC_IO_FILETYPE 2113 #define IDC_IO_INSERTCONTROL 2114 #define IDC_IO_ADDCONTROL 2115 #define IDC_IO_CONTROLTYPELIST 2116
儿女情长 2012-12-19
  • 打赏
  • 举报
回复
引用 4 楼 sebastianlin 的回复:
COleInsertDialog dlg; if (dlg.DoModal(COleInsertDialog::DocObjectsOnly) != IDOK) return;
我知道有一个COleInsertDialog类,但是不是我想要的。请看清楚哦
儿女情长 2012-12-19
  • 打赏
  • 举报
回复
加载更多回复(1)

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧