⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bcjq018.txt

📁 c++ builder 的一些txt文档
💻 TXT
字号:

C++ Builder开发者:程序员之家
var how_many_ads = 3;
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
 
  
  
    
      
        
          
            首页   
              | 控件天堂 | 控件使用                 
              | 编程技巧                  
              |  源代码 |  编程工具 |      
               系统补丁 |  电子书籍 | 技术论坛                  
              |  相关链接               
                         
                       
                     
                   
                   
                     
                       
                         
                           
                         
               
       if (ad==1) {document.write(''+'');}             
       if (ad==2) {document.write(''+'');}             
       if (ad==3) {document.write(''+'');}             
                            
                         
                      
                                  
                      
                    
                  
                
                
                  
                    
                      
                        
                     
                   
var marqueecontents=''+scroll_text+''         
if (document.all)         
document.write(''+marqueecontents+'')         
function regenerate(){         
window.location.reload()         
}         
function regenerate2(){         
if (document.layers){         
setTimeout("window.onresize=regenerate",450)         
intializemarquee()         
}         
}         
function intializemarquee(){         
document.cmarquee01.document.cmarquee02.document.write(marqueecontents)         
document.cmarquee01.document.cmarquee02.document.close()         
thelength=document.cmarquee01.document.cmarquee02.document.height         
scrollit()         
}         
function scrollit(){         
if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){         
document.cmarquee01.document.cmarquee02.top-=speed         
setTimeout("scrollit()",100)         
}         
else{         
document.cmarquee01.document.cmarquee02.top=marqueeheight         
scrollit()         
}         
}         
window.onload=regenerate2         
                     
                       
                     
                   
                 
               
               
                 
                   
                     
                       
                         
                           
                             
                  当前位置
  
  
                    编程技巧          
                          
                        
                      
                      
                      
                        
                          
                            
                    BCB自画菜单       
                         
                   
                     
                       
                         
                          我们知道,C++Builder没有自画菜单,但可以调用API函数::SetMenuItemInfo()来改变菜单类型,达到自画菜单的目的。下面的例子演示了如何使用自画菜单。当鼠标位于菜单上拾,菜单项将凸出来。(黑体字为添加的代码)
 
            //头文件
 
            
 
            //-----------------------------------------------------------------------
 
            
 
            #ifndef TestMenuH
    
            #define TestMenuH
    
            //-----------------------------------------------------------------------
    
            #include <Classes.hpp>
    
            #include <Controls.hpp>
    
            #include <StdCtrls.hpp>
    
            #include <Forms.hpp>
    
            #include <Menus.hpp>
    
            //------------------------------------------------------------
    
            class TForm1 : public TForm
    
            {
    
            __published: // IDE-managed Components
    
            TMainMenu *MainMenu1;
    
            TMenuItem *aaa1;
    
            TMenuItem *aaaaaaaaa1;
    
            TMenuItem *ccc1;
    
            TMenuItem *ddd1;
    
            TMenuItem *eee1;
    
            TMenuItem *ddsds1;
    
            TMenuItem *fcdfsss1;
    
            TMenuItem *dddddddd1;
    
            void __fastcall FormCreate(TObject *Sender);
    
            private: // User declarations
    
            void __fastcall Modify(TMenuItem *pMenuItem);
    
            protected :
    
            MESSAGE void __fastcall CNMeasureItem(TWMMeasureItem &Msg);//增加响应消息
    
            MESSAGE void __fastcall CNDrawItem(TWMDrawItem &Msg);
    
            public: // User declarations
    
            
    
            __fastcall TForm1(TComponent* Owner);
    
            BEGIN_MESSAGE_MAP//添加消息映射
    
            VCL_MESSAGE_HANDLER(WM_MEASUREITEM, TWMMeasureItem, CNMeasureItem);
    
            VCL_MESSAGE_HANDLER( WM_DRAWITEM, TWMDrawItem, CNDrawItem);
    
            END_MESSAGE_MAP(TForm);
    
            };
    
            //---------------------------------------------------------------------------
    
            extern PACKAGE TForm1 *Form1;
    
            //---------------------------------------------------------------------------
    
            #endif
    
            //实现文件
    
            //---------------------------------------------------------------------------
    
            #include <vcl.h>
    
            #pragma hdrstop
    
            #include "TestMenu.h"
    
            //---------------------------------------------------------------------------
    
            #pragma package(smart_init)
    
            #pragma resource "*.dfm"
    
            TForm1 *Form1;
    
            //---------------------------------------------------------------------------
    
            
    
            __fastcall TForm1::TForm1(TComponent* Owner)
    
            : TForm(Owner)
    
            {
    
            }
    
            //---------------------------------------------------------------------------
    
            
    
            void __fastcall TForm1::Modify(TMenuItem *pMenuItem)
    
            {//修改缺省属性
    
            for(int i=0;i<pMenuItem->Count;i++)
    
            {
    
            MENUITEMINFO mii=
    
            {
    
            sizeof(MENUITEMINFO),
    
            MIIM_TYPE|MIIM_DATA ,//改变类型和数据
    
            MF_OWNERDRAW,0,0,0,0,0,DWORD(pMenuItem->Items[i]->Handle),
    
            //把菜单项的句柄赋给32位数据
    
            0,
    
            0,
    
            };
    
            if(pMenuItem->Items[i]->Caption!="-")//如果不是间隔线
    
            ::SetMenuItemInfo(pMenuItem->Handle,i,TRUE,&mii);
    
            if(pMenuItem->Items[i]->Count)//如果含有子菜单
    
            Modify(pMenuItem->Items[i]);
    
            }
    
            }
    
            
    
            void __fastcall TForm1::FormCreate(TObject *Sender)
    
            {
    
            for(int i=0;i<MainMenu1->Items->Count;i++)
    
            {
    
            Modify(MainMenu1->Items->Items[i]);
    
            }
    
            DrawMenuBar(Handle);
    
            }
    
            //----------------------------------------------------
    
            
    
            void __fastcall TForm1::CNMeasureItem(TWMMeasureItem &Msg)
    
            {//设置菜单大小
    
            TMenuItem     
            *pItem=MainMenu1->FindItem(Msg.MeasureItemStruct->itemData,fkHandle);
    
            Msg.MeasureItemStruct->itemWidth     
            =pItem->Caption.Length()*8+40;
    
            Msg.MeasureItemStruct->itemHeight = 20;
    
            }
    
            
    
            void __fastcall TForm1::CNDrawItem(TWMDrawItem &Msg)
    
            {//画出菜单
    
            TMenuItem     
            *pItem=MainMenu1->FindItem(Msg.DrawItemStruct->itemData,fkHandle);
    
            TCanvas *pCanvas=new TCanvas;
    
            pCanvas->Handle=Msg.DrawItemStruct->hDC;
    
            RECT r=Msg.DrawItemStruct->rcItem;
    
            pCanvas->Brush->Color=clBtnFace;
    
            RECT r1=r;
    
            r1.right+=1;
    
            r1.bottom+=1;
    
            r1.top-=1;
    
            r1.left-=1;
    
            pCanvas->FillRect(r);
    
            ::SetBkMode(pCanvas->Handle,TRANSPARENT);
    
            pCanvas->TextOut(r.left+10,r.top+2,pItem->Caption);
    
            r.right-=1;
    
            r.bottom-=1;
    
            if(Msg.DrawItemStruct->itemAction == ODA_SELECT&&
    
            Msg.DrawItemStruct->itemState&ODS_SELECTED )
    
            {
    
            pCanvas->Pen->Color=(TColor)(RGB(255,255,255));
    
            pCanvas->MoveTo(r.right,r.top);
    
            pCanvas->LineTo(r.left,r.top);
    
            pCanvas->LineTo(r.left,r.bottom);
    
            pCanvas->Pen->Color=(TColor)(RGB(128,128,128));
    
            pCanvas->LineTo(r.right,r.bottom);
    
            pCanvas->LineTo(r.right,r.top);
    
            }
    
            
    
            }   
                           
                         
                             
                     
                           
                             
                           
                  if (ad==1) {document.write(''+'');}           
                  if (ad==2) {document.write(''+'');}           
                  if (ad==3) {document.write(''+'');}           
                                             
                           
                         
                       
                     
                
                 
                   
                     
                   
                   
                       
                   
                 
                    
                  
                
              
            
            
              
                
                  
                    
            C++ Builder开发者®         
              2000年06月01日 站长:唐朝         
                   
                 
               
             
             
               
             
           
           
         
         
         
         

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -