闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛暦瀹€鍕厸鐎光偓閳ь剟宕伴弽顓溾偓浣糕槈濡嘲鐗氶梺鍛婂姉閸嬫挸袙婢跺绻嗛柣鎰典簻閳ь剚鍨垮畷鏇熺節濮橆剛顔嗛梺璺ㄥ櫐閹凤拷 (0) +1 闂傚倸鍊搁崐宄懊归崶褏鏆﹂柛顭戝亝閸欏繒鈧箍鍎遍幏瀣触鐎n喗鐓曢柍鈺佸枤濞堛垹霉绾攱瀚� (0) +1 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂撮檷閸嬫垿鎮楀☉娆嬬細妞も晜鐓¢弻锝夊箣閿濆棭妫勭紓浣哄閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟� (0) +1
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掆偓杩濋梺閫炲苯澧撮柡灞剧〒閳ь剨缍嗛崑鍛暦瀹€鍕厸鐎光偓閳ь剟宕伴弽顓溾偓浣糕槈濡嘲鐗氶梺鍛婂姉閸嬫挸袙婢跺绻嗛柣鎰典簻閳ь剚鍨垮畷鏇㈠蓟閵夈儱鐎梺绉嗗嫷娈旈柦鍐枛閺岋綁寮崶銉㈠亾閳ь剟鏌涚€n偅灏柍钘夘槸閳诲秹顢樿缁ㄥジ鏌熸笟鍨鐎规洘鍎奸ˇ顕€鏌¢埀顒勬嚍閵夛絼绨婚梺鍝勬川閸嬬偤藟閻愮儤鍊垫慨妯煎亾鐎氾拷闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸℃ぞ绮℃俊鐐€栭崝褏绮婚幋鐘差棜闁秆勵殕閻撴洟鏌熼柇锕€鐏遍柛銈咁儔閺屻倝寮堕幐搴′淮闂佸搫鏈粙鎴﹀煡婢跺ň鏋庨柟閭﹀枤閳诲繒绱撻崒姘偓椋庢媼閺屻儱鐤鹃柣妯款嚙閽冪喖鏌i弮鍌楁嫛闁轰礁绉电换婵囩節閸屾碍鐏撻梺鍝勬-閸樺ジ鈥旈崘顔嘉ч柛鎰╁妼婵兘姊洪悷鏉挎闁瑰嚖鎷�>>

正在阅读:VC精华教程:MFC入门系列(三)VC精华教程:MFC入门系列(三)

2005-08-18 10:57 出处:PConline 作者:zhoujiamurong 责任编辑:xietaoming

相关文章:

  VC精华教程:MFC入门系列(一)
  VC精华教程:MFC入门系列(二)

MFC入门系列(三)

  我先申明一下以免很多网友可能误会我,在VC方面我也是刚脱贫还未致富,我写这些文章就是因为我脱贫的时候太艰辛,希望大家能够共同富裕。

  上两节我们讲了一个简单的MFC的程序,和消息映射宏的用法,我们这一节将讲述资源文件,在将资源文件之前,我们看一下VC++的文件简介,那我们看下面这一张图。(来自《深入浅出MFC》侯大师)

  这张图清楚的描述了VC++的文件系统,他们是分为两条线的一个是源文件,一个是资源文件。

  先讲第一条线—源文件,.c或者.cpp文件,在加入了头文件.H文件后,就进入编译器工具。

  在讲第二条线—资源文件,有最上面的三个工具,对话框工具编辑对话框文件.dlg,图片编辑器编辑图片(.bmp)、光标(.cur)、图标(.ico)文件,字体编辑器编辑字体文件(.FON)(但是字体我没有看到哪里可以用,请高人指点)。所有的资源文件合成一个文件.RC文件,即资源文件,我们可以想到,这资源文件和我们的源文件怎么关联呢?那么唯一相关联的是.H文件,这个头文件就是我们等一下要用的resource.h这个文件。

  .c或者.cpp文件和头文件编译成.obj文件,而.rc文件和头文件编译成.res文件,.obj和库文件和.res文件连结成可执行文件。

  大家可能都看烦了,下面来上机创建一个资源文件,即菜单,为我们上两节的程序加一个菜单。先打开我们的上两节的程序的工程,然后,新建—〉在打开的对话框里,我们自动会在文件选项卡里,我们选择Resource Script选项,在文件文本框中填写一个文件名,自己起一个名字。那么,我们就给我们的工程加了一个资源文件。在弹出的窗体,点击右键,在谈出的菜单中点击Insert菜单---〉Menu--新建.,在弹出得菜单编辑器,我们双击主菜单,弹出的属性框中,填写菜单标题 如:我的菜单.回车后,我们就建立了一个菜单资源文件。我们可以看到,这个资源编辑器是WYSIWYG(What you see is what you get所见及所得)界面,我只简单介绍一下:

  资源编辑器创建的资源会自动的生成resource.h这个头文件,我们刚才也讲了,这个头文件是资源文件和源代码文件的一个桥梁,所以我们在源代码例一定要#include “resource.h”,我们在创建子菜单的时候会发现,有一个资源ID号要你填写(自己起一个名字,不要重复),那么这个资源号就是我们在源代码里要引用的。

  我们已经添加了菜单,我们运行程序,发现菜单并没有出现,因为我们的菜单并没有和我们的某一个窗体相关联。那么如何关联?

  我们回忆我们在写SDK程序是我们是如何加菜单的。我们使用CreateWindow这个API函数来创建窗体,同时也关联菜单(当然,也可以在注册类里关联),我们知道MFC就是对API的封装后,CreateWindow当然也被封装了,他被封装成了很多类的Create方法,其中就有CFrameWnd。我们在Sample 类里继承了CFrameWnd,我们右键点击 Sample 构造函数里的Create方法,在弹出的菜单里点击Goto Define of Create,在弹出的菜单点确定。我们来到了Create方法的定义

 BOOL Create(LPCTSTR lpszClassName,//注册类,MFC将注册类封装,我们填写NULL
    LPCTSTR lpszWindowName,//窗体名,窗体标题
    DWORD dwStyle = WS_OVERLAPPEDWINDOW,//窗体风格
    const RECT& rect = rectDefault,//窗体的矩形区域
    CWnd* pParentWnd = NULL,        // 父窗体指针
    LPCTSTR lpszMenuName = NULL,  //窗体的菜单
    DWORD dwExStyle = 0,//窗体扩展风格
    CCreateContext* pContext = NULL);//框架窗体的视图和文档信息,一般填NULL

  那我们看到前面两个参数,没有等号,说明他们是必选的参数,后面是可选的,在可选的参数里面有一个窗体的菜单,他的类型是LPCTSTR,我们看这个类型有一个方法,分开看,首先L是long ,P是指针,CT是Const常量 ,STR是字符串,也就是一个指向常量字符串的长指针。我们打开MSDN看这个方法的参数如何填写,在MSDN的索引中添Create回车,在弹出的主题中选择CFrameWnd::Create,我们找到菜单这个参数的解释

lpszMenuName
Identifies the name of the menu resource to be used with the window. Use MAKEINTRESOURCE if the menu has an integer ID instead of a string. This parameter can be NULL.

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗霉閿濆牊顏犵紒鈧繝鍌楁斀闁绘ɑ褰冮埀顒€顕槐鎾愁潩鏉堛劌鏋戦梺鍝勫暙閻楀嫰鍩€椤戣法绐旂€殿喕绮欓、姗€鎮欓懠鍨涘亾閸喒鏀介柨娑樺娴犙呯磼椤曞懎鐏︾€殿噮鍋婇幃鈺冪磼濡攱瀚奸梻鍌欑贰閸嬪棝宕戝☉銏″殣妞ゆ牗绋掑▍鐘绘煙缂併垹鏋熼柣鎾寸懄閵囧嫰寮埀顒勵敄濞嗗繄缂氶柟鎵閻撴瑧鈧懓瀚晶妤呭吹閸モ斁鍋撶憴鍕8闁告柨绉堕幑銏犫攽鐎n亞锛滃┑鐐叉閸旀牠鍩㈤弴鐔虹瘈闁汇垽娼у暩濡炪倧缍€濡嫬宓勯梺鍛婄⊕濞兼瑧澹曟繝姘厵闁硅鍔﹂崵娆戠磼閻欌偓閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟�闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸婂潡鏌ㄩ弴鐐测偓鍝ョ不閺嶎厽鐓曟い鎰剁稻缁€鈧紒鐐劤濞硷繝寮婚悢鐓庣畾闁绘鐗滃Λ鍕磼閹冣挃缂侇噮鍨抽幑銏犫槈閵忕姷顓哄┑鐐叉缁绘帗绂掓總鍛娾拺闁告繂瀚銉╂煕鎼达絾鏆鐐插暙椤粓鍩€椤掑嫬绠栨繛鍡樻尭缁狙囨煕椤垵鏋ょ憸鐗堝灥閳规垿鎮欓懠顒佹喖缂備緡鍠栫粔鍫曞礆閹烘绠婚悹鍥蔼閹芥洖鈹戦悙鏉戠仧闁糕晛瀚板顐﹀礃椤旂晫鍙嗗┑鐘绘涧濡瑩藟閻樼偨浜滈柨鏂挎惈閸旓附鎱ㄦ繝鍐┿仢鐎规洏鍔嶇换婵嬪礃閻愵剦妫濋梻鍌欒兌閹虫捇宕甸弽顓炵闁跨噦鎷�