CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  界面

如何开发自己的界面库

楼主willwl()2005-08-22 22:37:10 在 VC/MFC / 界面 提问

比如MagicSkin的,只要加载其动态库和两三句话,那些控件就自动全变为新的界面了  
  而自己开发的自绘控件,要用的话还要挨个加一堆成员变量关联一下,好烦  
  想把自己开发的控件也作成dll的,但是如何让其一加载就自动替换原有的button等等控件呢  
   
  还有一个:如何开发自己的SDK,像BCG   ControlBar在新建工程时,出现自己的wizard,之后自动生成C++代码的demo,方便他人进行二次开发  
   
  还请高手指点  
   
  问题点数:100、回复次数:2Top

1 楼goodboyws(深夜不眠者(VCMVP))回复于 2005-08-23 00:05:17 得分 60

**如何让其一加载就自动替换原有的button等等控件***  
  BOOL   CMySkintDlg::OnInitDialog()    
  {  
  CDialog::OnInitDialog();  
   
  //   TODO:   Add   extra   initialization   here  
   
  ApplyControlSkin(); }  
  return   TRUE;     //   return   TRUE   unless   you   set   the   focus   to   a   control  
                              //   EXCEPTION:   OCX   Property   Pages   should   return   FALSE  
  }  
  void   CContentDlgBase::ApplyControlSkin()  
  {  
  HWND   hWnd   =   ::GetWindow(m_hWnd,   GW_CHILD);  
  while   (hWnd)  
  {  
  TCHAR   szClassName[MAX_PATH];  
  memset(szClassName,0,   sizeof(szClassName));  
  GetClassName(hWnd,   szClassName,   MAX_PATH);  
  if   (_tcscmp(szClassName,   "Static")   ==   0  
  &&   hWnd   !=   m_SkinVerticleScrollbar.m_hWnd)  
  {  
  //绑定没有被绑定的Static控件  
  CWnd*   pWnd   =CWnd::FromHandlePermanent(hWnd);  
  if   (pWnd   ==   NULL)  
  {  
  CTransparentStatic*   pStatic   =   new   CTransparentStatic;  
  pStatic->m_colTextColor   =   m_colTextColor;  
  pStatic->SubclassWindow(hWnd);  
  m_arrPtrStatic.Add(pStatic);  
  }  
  }  
  else   if   (_tcscmp(szClassName,   "Button")   ==   0)  
  {  
  //绑定没有被绑定的按钮控件  
  CWnd*   pWnd   =CWnd::FromHandlePermanent(hWnd);  
  if   (pWnd   ==   NULL)  
  {  
  CHoverButton*   pButton   =   new   CHoverButton;  
  pButton->SubclassWindow(hWnd); CString   strText;  
  pButton->GetWindowText(strText);  
  if   (strText.GetLength()   <=   4)  
  pButton->LoadBitmap(m_strBtnBmp2,   m_colTransparent);  
  else   if   (strText.GetLength()   <=   6)  
  pButton->LoadBitmap(m_strBtnBmp3,   m_colTransparent);  
  else  
  pButton->LoadBitmap(m_strBtnBmp4,   m_colTransparent);  
  m_arrPtrButton.Add(pButton);  
  }  
  }  
   
  hWnd   =   ::GetWindow(hWnd,   GW_HWNDNEXT);  
  }  
  }  
  这是我做的界面库的自动替换button和Static的代码  
   
  **如何开发自己的SDK,像BCG   ControlBar在新建工程时,出现自己的wizard**  
   
  VC++支持自定义向导  
  选择Project   ——   Custom   AppWizard   可以根据已有工程的代码创建新的工程Top

2 楼humourHM(小鬼)回复于 2005-08-23 12:04:25 得分 40

http://www.vckbase.com/document/viewdoc/?id=1235Top

相关问题

  • +++++++++ 求界面开发库 ++++++++
  • 如何用Delphi开发数据库客户端界面!!!
  • 如何用c++开发图形界面?
  • 现在有那些界面开发库?
  • 界面开发
  • 用ASP.NET开发WEB,那么如何开发界面?
  • 如何编写界面库
  • 请问如何在linux下开发图形界面程序?
  • 请问如何在CB中开发XP风格的界面
  • 请问如何开发下列风格的界面

关键词

  • 界面
  • 控件
  • 代码
  • szclassname
  • coltransparent
  • strbtnbmp
  • 开发
  • 加载
  • loadbitmap
  • hwnd

得分解答快速导航

  • 帖主:willwl
  • goodboyws
  • humourHM

相关链接

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

广告也精彩

反馈

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