CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

关于开发IE ToolBar添加TBButton的问题 高手关注一下 非常着急 谢谢

楼主huzhangyou(信仰(http://www.libing.net.cn))2006-03-03 14:52:55 在 VC/MFC / ATL/ActiveX/COM 提问

LRESULT   CMFToolbar::OnCreate(UINT   uMsg,   WPARAM   wParam,   LPARAM   lParam,   BOOL&   bHandled)  
  {  
   
  SendMessage(m_hWnd,TB_BUTTONSTRUCTSIZE,sizeof(TBBUTTON),0);  
  SendMessage(m_hWnd,TB_SETMAXTEXTROWS,4,0L);  
  TCHAR*       pCaption       =       _T("MEUU");  
  int       iIndex       =       ::SendMessage(m_hWnd,       TB_ADDSTRING,       0,(LPARAM)pCaption);  
  TCHAR*   pCaption1=_T("交友");  
  iIndex       =::SendMessage(m_hWnd,       TB_ADDSTRING,       0,(LPARAM)pCaption1);  
  TCHAR*   pCaption2=_T("活动");  
  iIndex       =::SendMessage(m_hWnd,       TB_ADDSTRING,       0,(LPARAM)pCaption2);  
  TCHAR*   pCaption3=_T("博客");  
  iIndex       =::SendMessage(m_hWnd,       TB_ADDSTRING,       0,(LPARAM)pCaption3);    
  //       load       our       button's       icon       and       create       the       image       list       to       house       it.  
  HICON       hMotley       =       LoadIcon(_Module.GetResourceInstance(),       MAKEINTRESOURCE(IDI_MOTLEY));  
  m_hImageList       =       ImageList_Create(16,16,       ILC_COLOR16,       1,       0);  
  int       iImageIndex       =       ImageList_AddIcon(m_hImageList,       hMotley);  
  DestroyIcon(hMotley);  
  hMotley       =       LoadIcon(_Module.GetResourceInstance(),       MAKEINTRESOURCE(IDI_MOTLEY));  
  iImageIndex       =       ImageList_AddIcon(m_hImageList,       hMotley);  
  DestroyIcon(hMotley);  
  //       Set       the       toolbar's       image  
  ::SendMessage(m_hWnd,       TB_SETIMAGELIST,       0,       (LPARAM)m_hImageList);  
   
  //       add       the       button       for       the       toolbar       to       the       window  
  TBBUTTON       Button;  
  ZeroMemory((void*)&Button,       sizeof(TBBUTTON));  
  Button.idCommand       =       IDM_GETQUOTE;  
  Button.fsState       =       TBSTATE_ENABLED;  
  Button.fsStyle       =       BTNS_BUTTON       |       BTNS_AUTOSIZE       |       BTNS_SHOWTEXT;  
  Button.dwData       =       0;  
  Button.iString       =       0;  
  Button.iBitmap       =       0;  
  int       num=::SendMessage(m_hWnd,       TB_INSERTBUTTON,       1,       (LPARAM)&Button);  
  TBBUTTON       Button1;  
  ZeroMemory((void*)&Button1,       sizeof(TBBUTTON));    
  Button1.idCommand=IDM_GETQUOTE;  
  Button1.fsState       =       TBSTATE_ENABLED;  
  Button1.fsStyle       =       BTNS_BUTTON       |       BTNS_AUTOSIZE       |       BTNS_SHOWTEXT;  
  Button1.dwData       =       0;  
  Button1.iString       =       2;  
  Button1.iBitmap       =       0;  
  num=::SendMessage(m_hWnd,       TB_INSERTBUTTON,2,       (LPARAM)&Button1);  
  TBBUTTON       Button2;  
  ZeroMemory((void*)&Button2,       sizeof(TBBUTTON));    
  Button2.idCommand=IDM_GETQUOTE;  
  Button2.fsState       =       TBSTATE_ENABLED;  
  Button2.fsStyle       =       BTNS_BUTTON       |       BTNS_AUTOSIZE       |       BTNS_SHOWTEXT;  
  Button2.dwData       =       0;  
  Button2.iString       =       3;  
  Button2.iBitmap       =       0;  
  num=::SendMessage(m_hWnd,       TB_INSERTBUTTON,3,       (LPARAM)&Button2);  
   
  //       create       our       EditQuote       window       and       set       the       font.  
  RECT       rect       =       {0,0,0,0};  
  m_EditWnd.Create(m_hWnd,       rect,       NULL,       WS_CHILD|WS_VISIBLE,       WS_EX_CLIENTEDGE);  
  m_EditWnd.SetFont(static_cast<HFONT>(GetStockObject(DEFAULT_GUI_FONT)));  
  return       0;  
   
  }  
   
   
  这段是代码  
  为什么我只能得到MENU这个按钮  
  其他的按钮都不能创建  
  我也在CSDN找了  
  他们的好像度可以啊  
  为什么我得不可以呢  
  谢谢关注 问题点数:100、回复次数:16Top

1 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-03 15:42:54 得分 0

upTop

2 楼SeekTruth(鹤舞白沙)回复于 2006-03-03 16:36:38 得分 5

IE添加按钮不是这么整的吧,GOOGLE一下Top

3 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-03 17:10:17 得分 0

TO   SeekTruth(鹤舞白沙):  
   
  IE添加按钮是通过操作注册表得  
  这个我知道  
  但是我现在哪个已经实现了  
  我已经通过Google   search了很多遍了  
  这段代码没有编译问题  
  就是出来不了效果  
  谢谢你  
  希望这位大侠继续关注Top

4 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-03 17:58:25 得分 0

UPTop

5 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-03 20:34:15 得分 0

upTop

6 楼laiyiling(陌生人[MVP])回复于 2006-03-04 08:56:21 得分 40

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/toolbar/toolbar_using.aspTop

7 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-04 09:50:41 得分 0

to   laiyiling:  
        谢谢你的关注,   编译的时候出现如下问题  
  C:\Documents   and   Settings\Administrator\桌面\WholeProject\MotleyFool_src\MotleyFool\MFToolbar.cpp(212)   :   error   C2065:   'g_hinst'   :   undeclared   identifier  
   
  也就是说HINSTANCE这个参数我没有,,  
  而且我得程序是一个DLL,  
  所以我也的确不能生成这个东西  
  希望您继续关注    
  谢谢Top

8 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-04 09:51:44 得分 0

BTW:您的这篇文章我已经看过  
  还是找不到我得解决方案..Top

9 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-05 09:45:45 得分 0

up     等待高手关注Top

10 楼wshcdr(dd)回复于 2006-03-05 18:16:49 得分 40

//   add   the   button   for   the   toolbar   to   the   window  
  TBBUTTON   Button;  
  ZeroMemory((void*)&Button,   sizeof(TBBUTTON));  
  Button.idCommand   =   IDM_GETQUOTE;  
  Button.fsState   =   TBSTATE_ENABLED;  
  Button.fsStyle   =   BTNS_BUTTON   |   BTNS_AUTOSIZE   |   BTNS_SHOWTEXT;  
  Button.dwData   =   0;  
  Button.iString   =   0;  
  Button.iBitmap   =   0;  
  int   num=::SendMessage(m_hWnd,   TB_INSERTBUTTON,   1,   (LPARAM)&Button);  
  TBBUTTON   Button1;  
  ZeroMemory((void*)&Button1,   sizeof(TBBUTTON));    
  Button1.idCommand=IDM_GETQUOTE;  
  Button1.fsState   =   TBSTATE_ENABLED;  
  Button1.fsStyle   =   BTNS_BUTTON   |   BTNS_AUTOSIZE   |   BTNS_SHOWTEXT;  
  Button1.dwData   =   0;  
  Button1.iString   =   2;  
  Button1.iBitmap   =   0;  
  num=::SendMessage(m_hWnd,   TB_INSERTBUTTON,2,   (LPARAM)&Button1);  
  TBBUTTON   Button2;  
  ZeroMemory((void*)&Button2,   sizeof(TBBUTTON));    
  Button2.idCommand=IDM_GETQUOTE;  
  Button2.fsState   =   TBSTATE_ENABLED;  
  Button2.fsStyle   =   BTNS_BUTTON   |   BTNS_AUTOSIZE   |   BTNS_SHOWTEXT;  
  Button2.dwData   =   0;  
  Button2.iString   =   3;  
  Button2.iBitmap   =   0;  
  num=::SendMessage(m_hWnd,   TB_INSERTBUTTON,3,   (LPARAM)&Button2);  
   
  /////////////////  
  改成如下代码,试试  
   
  TBBUTTON   tbb[3];    
  tbb[0].iBitmap   =   -1;    
          tbb[0].idCommand   =   IDM_GETQUOTE;    
          tbb[0].fsState   =   TBSTATE_ENABLED;    
          tbb[0].fsStyle   =   TBSTYLE_BUTTON;    
          tbb[0].dwData   =   0;    
          tbb[0].iString   =   0;    
     
          tbb[1].iBitmap   =   -1;    
          tbb[1].idCommand   =   IDM_GETQUOTE;    
          tbb[1].fsState   =   TBSTATE_ENABLED;    
          tbb[1].fsStyle   =   TBSTYLE_BUTTON;    
          tbb[1].dwData   =   0;    
          tbb[1].iString   =   0;    
     
          tbb[2].iBitmap   =   -1;    
          tbb[2].idCommand   =   IDM_GETQUOTE;    
          tbb[2].fsState   =   TBSTATE_ENABLED;    
          tbb[2].fsStyle   =   TBSTYLE_AUTOSIZE;    
          tbb[2].dwData   =   0;    
          tbb[2].iString   =   0;   //(int)   pszBuf2;  
           
  SendMessage(   TB_ADDBUTTONS,   (WPARAM)   NUM_BUTTONS,    
                  (LPARAM)   (LPTBBUTTON)   &tbb);  
   
  SendMessage(TB_AUTOSIZE,   0,   0);    
  ShowWindow(SW_SHOWNORMAL);Top

11 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-05 21:57:57 得分 0

我测试了  
  还是不行啊  
  谢谢你的关注啦  
  继续UP  
  等待高手Top

12 楼laiyiling(陌生人[MVP])回复于 2006-03-06 08:26:53 得分 0

HINSTANCE参数直接用AfxGetInstanceHandle得到Top

13 楼rudolf_he()回复于 2006-03-06 10:23:11 得分 5

友情路过一下Top

14 楼yanedanny(守望者)回复于 2006-03-06 10:25:40 得分 10

Button.idCommand   =   IDM_GETQUOTE;   Button1.idCommand=IDM_GETQUOTE;   Button2.idCommand=IDM_GETQUOTE;  
  Button.fsState   =   TBSTATE_ENABLED;  
  Button.fsStyle   =   BTNS_BUTTON   |   BTNS_AUTOSIZE   |   BTNS_SHOWTEXT;  
  这些代码都有问题的。Top

15 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-06 12:00:03 得分 0

to   laiyiling(陌生人)   :  
          我的程序不通过那个得到Instance  
   
   
  程序代码参考地方如下  
  http://www.codeproject.com/atl/ietoolbartutorial.asp  
  http://blog.wdjl.net/post/422.html  
   
  to   yanedanny(守望者):  
  既然你觉的有问题  
  能不能帮我修改一下  
  或者说明错误的缘由  
  代码的编译是没有问题的Top

16 楼huzhangyou(信仰(http://www.libing.net.cn))回复于 2006-03-21 10:11:15 得分 0

问题没有解决  
  但是算了  
  揭帖Top

相关问题

  • 我的IE怎么打不开?着急中!!!!在线等!!
  • 关于IE和asp.net的调试问题!不知道如何解决了?如何解决?着急,着急,着急的要死了阿。先多谢各位了阿!
  • 着急
  • 着急!!!!!!!!!!!!!!!
  • 着急
  • 为什么我的IE狂吃内存,而且只加不减......着急!
  • jar文件在用IE浏览,在IE端是怎么处理的?求求求求各位了!着急!
  • 求教sleep(1000),着急!着急!着急!
  • 着急!着急!着急!华为面试!!!!!!!
  • 小问题 着急 着急

关键词

  • toolbar
  • 编译
  • 代码
  • pcaption
  • hmotley
  • himagelist
  • 谢谢
  • sendmessage
  • addstring
  • iindex

得分解答快速导航

  • 帖主:huzhangyou
  • SeekTruth
  • laiyiling
  • wshcdr
  • rudolf_he
  • yanedanny

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo