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

📄 9911.txt

📁 关于编程技术技巧的文章
💻 TXT
字号:
=====================================================

                   《编 程 技 术》

         一份属于广大编程爱好者的电子杂志

       这是一份完全关于探讨编程的免费电子杂志
       您可以任意传播本刊,但必须保持它的完整
      本刊承诺绝不向订户发送任何形式的垃圾邮件!

                   第11期 99/06/06
=====================================================

<本期栏目>
 *刊首语*
 *雕虫小技*
    Visual C++编程技巧
 *技术文档*
    TCHimage组件实现图形切换效果
    用Delphi编写打印程序的窍门
    让C/C++图形程序独立运行
    让VC++支持中文
    Visual Basic设计多媒体应用程序
 *疑难杂症*
 
*****************************************************

<刊首语>
    
    祝贺本刊订户勇超1000,大家鼓掌(啪啦、啪啦、啪啦)。
没啥说的,我会以更好的内容来回报大家的。
    不知道这里有没有喜欢看鬼故事的朋友,我在主页上开辟
了一个子栏目“鬼话连篇”,不定期更新,欢迎感兴趣的朋友
常来看看。

*****************************************************
*****************************************************

<雕虫小技>
    
                      Visual C++编程技巧

1、如何获取一个对话控件的指针 

有两种方法。其一,调用CWnd: : GetDlgItem,获取一个CWnd*指针调用成员
函数。下例调用GetDlgItem,将返回值传给一个CSpinButtonCtrl*以便调用
CSpinButtonCtrl : : SetPos 函数: 
BOOL CSampleDialog : : OnInitDialog ( ) 
CDialog : : OnInitDialog ( ) ; 
//Get pointer to spin button . 
CSpinButtonCtrl * pSpin - ( CSpinButtonCtrl *) GetDlgItem (IDC_SPIN) ; 
ASSERT _ VALID (pSpin) ; 
//Set spin button's default position . 
pSpin —> SetPos (10) ; 
return TRUE ; 
} 

其二, 可以使用ClassWizard将控件和成员变量联系起来。在ClassWizard中
简单地选择Member Variables标签,然后选择Add Variable …按钮。如果在
对话资源编辑器中,按下Ctrl键并双击控件即可转到Add Member Variable对话。 

2、如何禁止和使能控件 
控件也是窗口,所以可以调用CWnd : : EnableWindow使能和禁止控件。 
//Disable button controls . 
m_wndOK.EnableWindow (FALSE ) ; 
m_wndApply.EnableWindow (FALSE ) ; 

3、如何改变控件的字体 
由于控件是也是窗口,用户可以调用CWnd: : SetFont指定新字体。该函数用
一个Cfont指针,要保证在控件撤消之前不能撤消字体对象。下例将下压按钮
的字体改为8点Arial字体: 
//Declare font object in class declaration (.H file ). 
private : 
Cfont m_font ; 
// Set font in class implementation (.Cpp file ). Note m_wndButton is a 
//member variable added by ClassWizard.DDX routines hook the member 
//variable to a dialog button contrlo. 
BOOL CSampleDialog : : OnInitDialog ( ) 

//Create an 8-point Arial font 
m_font . CreateFont (MulDiv (8 , -pDC—> GetDeviceCaps (LOGPIXELSY) , 72). 
0 , 0 , 0 , FW_NORMAL , 0 , 0, 0, ANSI_CHARSER, OUT_STROKE_PRECIS , 
CLIP_STROKE _PRECIS , DRAFT _QUALITY 
VARIABLE_PITCH |FF_SWISS, _T ("Arial") ); 
//Set font for push button . 
m_wndButton . SetFont (&m _font ); 
} 

4、如何在OLE控件中使用OLE_COLOR数据类型 

诸如COleControl : : GetFortColor和COleControl : : GetBackColor等函数
返回OLE _COLOR数据类型的颜色,而GDI对象诸如笔和刷子使用的是COLORREF
数据类型,调用COleControl : : TranslateColor可以很容易地将OLE_COLOR
类型改为COLORREF类型。下例创建了一个当前背景颜色的刷子: 
void CSampleControl : : OnDraw (CDC* pdc 
const Crect& rcBounds , const Crect& rcInvalid ) 
 
//Create a brush of the cuttent background color . 
CBrush brushBack (TranslateColor (GetBackColor ( ) ) ); 
//Paint the background using the current background color . 
pdc—> FilllRect (rcBounds , &brushBack) ; 
//other drawign commands 
} 

5、在不使用通用文件打开对话的情况下如何显示一个文件列表 
调用CWnd: : DlgDirList或者CWnd: : DlgDirListComboBox, Windows 将自动
地向列表框或组合框填充可用的驱动器名或者指定目录中的文件,下例将Windows
目录中的文件填充在组合框中: 
BOOL CSampleDig : : OnInitDialog ( ) 
CDialog : : OnInitDialog ( ) 
TCHAR szPath [MAX_PATH] = {"c:\\windows"} ; 
int nReslt = DlgDirListComboBox (szPath , IDC_COMBO , IDC_CURIDIR, 
DDL_READWRITE |DDL_READONLY|DDL_HIDDEN| 
DDL_SYSTEM|DDL_ARCHIVE ) ; 
return TRUE ; 
} 

6、为什么旋转按钮控件看起来倒转 
需要调用CSpinCtrl : : SetRange 设置旋转按钮控件的范围,旋转按钮控件的
缺省上限为0,缺省下限为100,这意味着增加时旋转按控件的值由100变为0。
下例将旋转按钮控件的范围设置为0到100: 
BOOL CAboutDlg : : OnInitDialog ( ) 
CDialog : : OnInitDialog ( ) 
//set the lower and upper limit of the spin button 
m_wndSpin . SetRange ( 0 ,100 ) ; 
return TRUE ; 
} 
Visual C++ 4.0 Print对话中的Copise旋转按钮控件也有同样的问题:按下Up按
钮时拷贝的数目减少,而按下Down 按钮时拷贝的数目增加。 

7、为什么旋转按钮控件不能自动地更新它下面的编辑控件 
如果使用旋转按钮的autu buddy特性, 则必须保证在对话的标记顺序中buddy窗
口优先于旋转按钮控件。从Layout菜单中选择Tab Order菜单项(或者按下Crtl+D)
可以设置对话的标签顺序。 

8、如何用位图显示下压按钮 
Windows 95按钮有几处新的创建风格,尤其是BS_BITMAP和BS_ICON,要想具有位
图按钮,创建按钮和调用CButton : : SetBitmap或CButton : : SetIcon时要指
定BS_BITMAP或BS_ICON风格。 
首先,设置按钮的图标属性。 
然后,当对话初始化时调用CButton: : SetIcon。注意:下例用图标代替位图,
使用位图时要小心,因为不知道背景所有的颜色——并非每个人都使用浅灰色。 
BOOL CSampleDlg : : OnInitDialog ( ) 
CDialog : : OnInitDialog ( ) ; 
//set the images for the push buttons . 
m_wndButton1.SetIcon (AfxGetApp ( ) —> LoadIcon (IDI _ IPTION1) ) 
m_wndButton2.SetIcon (AfxGetApp ( ) —> LoadIcon (IDI _ IPTION2) ) 
m_wndButton3.SetIcon (AfxGetApp ( ) —> LoadIcon (IDI _ IPTION3) ) 
return TRUE ; 
} 

*****************************************************
*****************************************************

<技术文档>
                      TCHimage组件实现图形切换效果

                             (湖北  周新)             

       Delphi3.0与Authorware、Director、ToolBook等多媒体工具软件相比,
     没有提供图形切换效果组件,不免使其制作的多媒体程序看上去有些呆板。
       在《PC世界3》上我发现了安徽的李新华朋友制作图形切换效果组件
     TCHimage,喜爱用Delphi编程的朋友不妨拷下来一试。下面我简单介绍一下
     这个组件的使用方法∶
       TCHimage组件是由Timage派生的子类。要使用这个组件,首先在DELPH中
     选择“COMPONENT/INSTALL COMPONENT”。
       选择“UNIT FILE NAME”,输入文件名TEST.PAS,按OK键,系统自行将
     TCHIMAGE组件加入到SAMPLE控件组中,这时便可以使用TCHIMAGE类了。下面
     通过一例具体介绍一下该组件的用法。
       首先从SAMPLE控件组中选择TCHIMAGE,在FORM中创建一个TCHIMAGE对
     象,打开属性表,可以看到其基本属性与其父类TIMAGE一致,只是多了一个
     EFFECT属性,此属性即决定其PICTURE指定图形的切换效果,从0~24,总共
     25个值。这样,只需简单设置EFFECT的值,便可使你的图形有多达25种形式
     不同、内容丰富的切换方式,真是帅呆了。同时,在程序执行过程中,你还
     可以通过随时调用SetEffect(Effect:byte,FileName:string)过程动态实现
     图形效果的切换,使你的应用程序更加千变万化,丰富多彩。以下就以一例
     说明TCHIMAGE是怎样设置的。
       1.创建一个FORM,在SAMPLE构件组中选择TCHIMAGE构件,在FORM中指定
     大小。
       2.激活TCHIMAGE属性框,在EFFECT属性栏中输入0,PICTURE属性可暂时
     不写,留待程序中再动态加入(对于TCHimage的Picture属性,可在设计期指
     定,但这样可能会对图形切换时的速度有一定的影响)。
       3.程序代码如下:
       procedure TForm1

⌨️ 快捷键说明

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