字体
第(2/4)页
关灯
   存书签 书架管理 返回目录
加速键

    资源如何装入内存即可。

    与菜单资源一样,加速键资源也必须在使用前先装入内存。这个过程是由CFrcomWnd

    的成员函数LoadAccelTable() 完成的。这个函数为框架窗口动态装入加速键资源。

    LoadAccelTable()的原型为:

    BOOL LoadAccelTable(

    LPCTSTR lpszResourceNcom

    );

    参数lpszResourceNcom 指向加速键资源的名称,也可以指向通过MAKEINTRESOURCE

    宏转换的加速键资源ID。

    用户有时候可能需要用到两套不同的加速键,根据当前程序运行的状态选择不同的加速

    键。比如一个既能进行文本编辑,又能进行图像编辑的程序,当进行文本编辑时程序使用一

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·60·

    套加速键,而当进行图像编辑时,程序却使用另外一套加速键,相同的加速键在不同的加速

    键资源中可能对应不同的命令消息,因此需要动态加载加速键,这时候就可能用到

    LoadAccelTable()函数。

    创建新的加速键资源的过程与创建新的菜单资源类似。例如要创建并使用一个ID 为

    IDR_MYACCEL 的加速键资源,可以通过以下步骤:

    (1)在IDE 主菜单栏中依次选择“Insert|Resource”菜单命令,或者使用快捷键Ctrl+R,

    打开“Insert Resource”对话框,在列表框中选择Accelerator,单击“New”按钮即可创建一

    个有默认资源ID 为IDR_ACCELERATOR1 的新的菜单资源(如图3-7 所示,不过此时在

    “Resource type”树状列表框中选择的是Accelerator),并自动进入该菜单的编辑界面。

    (2)找到IDE 左侧的“ResourceView”选项卡中IDR_ACCELERATOR1 的节点,打开资

    源属xìng编辑对话框,在ID 输入框中将资源ID 修改为IDR_MYACCEL。然后参照3.2 节中的

    方法添加加速键,完成加速键资源的创建。

    (3)创建新的加速键资源后,就需要在程序中要求切换加速键资源的地方添加如下代码:

    ((CMainFrcom *)AfxGetMainWnd())->LoadAccelTable(

    MAKEINTRESOURCE(IDR_ACCEL));

    这句代码装入ID 为IDR_ACCEL 的加速键资源。

    用户可以自己创建和使用加速键资源,但特别是由AppWizard 生成的程序代码中,MFC

    已经封装了上述过程。同普通菜单资源的创建一样,MFC 的文档视图结构在装入文档模板的

    时候,自动将ID 为IDR_MAINFRAME 的加速键资源装入内存,这个过程是和其他资源包括

    菜单资源一起装入内存的。用户无需深究其中的细节,只需要编辑IDR_MAINFRAME 的加

    速键资源就可以很方便地为程序创建加速键。

    3.5 本章小结

    本章介
上一页 目录 下一页