您的位置:程序门 -> vc/mfc -> 界面



为什么用win api做的界面(button, checkbox之类)没有mfc的好看?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


为什么用win api做的界面(button, checkbox之类)没有mfc的好看?[已结贴,结贴人:sprinfall]
发表于:2007-12-28 09:01:46 楼主
rt。
纯粹用win32api写的界面,比如dialog,上面放了一些buttons,checkboxes,   groups,   ...   感觉都比较丑。一直也不知道什么原因。

xp系统上缺省的那种style就很好看,用mfc(或者.net),缺省的界面和xp的style是一致的。是不是它们在封装了win32   api后还做了什么额外的“美化”?
发表于:2007-12-28 09:47:501楼 得分:15
需要添加manifest文件,里面包含common   control   6.0的引用
发表于:2007-12-28 09:53:592楼 得分:10
mfc作出来的对话框和api写出来的是一样的
你感觉不一样,可能是因为那个mfc的使用了xp风格
很简单,下载一个exescope,在可执行文件上面点右肩,选择用exescope编辑资源,然后点工具栏上的xp按钮,就成xp风格了,就一样了
发表于:2007-12-28 10:03:403楼 得分:0
我咋觉得mfc的dialog很丑撒...
发表于:2007-12-28 10:11:184楼 得分:1
标准控件也不漂亮啊。。。还是要自己去贴图的才漂亮
发表于:2007-12-28 10:22:375楼 得分:0
都不太好看...
发表于:2007-12-28 10:24:116楼 得分:0
vc作界面如果没有特效处理实在不太好看
发表于:2007-12-28 10:37:127楼 得分:0
我也不要太花哨的啊。我觉得xp缺省的那种style就很好。
比如我在资源文件里这样写:

idd_option   dialogex   0,   0,   350,   200
style   ds_setfont   ¦   ds_modalframe   ¦   ds_center   ¦   ws_popup   ¦   ws_caption   ¦   ws_sysmenu
exstyle   ws_ex_appwindow
caption   "系统设置"
font   9,   "宋体",   400,   0,   0x0
begin
defpushbutton       "确定",idok,174,177,50,16,bs_bitmap
pushbutton             "取消",idcancel,236,177,50,16
pushbutton             "应用",idapply,297,177,50,16
control                   "",idc_treeview,"systreeview32",tvs_hasbuttons   ¦   tvs_haslines   ¦   tvs_linesatroot   ¦   ws_tabstop,7,9,89,163,ws_ex_clientedge
groupbox                 "外观",idc_group_appearance,103,8,243,161
                ...
end

mfc和win32   api出来的效果就不一样,前者是xp那种风格,后者比较图,win   2000的风格。

to   jameshooo:   待会试一下你说的。

to   jimoguilai:   通过外部工具来改不是我的初衷啊!不过还是感谢!
发表于:2007-12-28 11:17:278楼 得分:15

可以用manifest实现xp风格,前提是你的操作系统是xp的,参见这里:
发表于:2007-12-28 11:21:409楼 得分:3
using   windows   xp   visual   styles  
windows   shell支持该功能前提是你的程序需运行在windows   xp
发表于:2007-12-28 11:24:1110楼 得分:1
mfc的标准控件也不好看啊,好看的都是自己用代码实现的。
发表于:2007-12-28 12:35:2811楼 得分:5
去google上搜“xp风格界面”,2005里面mfc工程这种界面已经是默认的了。
发表于:2007-12-28 13:03:2112楼 得分:0
to   jameshooo   &   yjukh:

通过修改menifest已经达到效果了.   不过我用的是非embed的menifest.   embed情况下还不知道怎么改.   project属性里应该有地方可以设置缺省就包含下面这样的代码在menifest里的啊.   感谢各位的回复,   散分结贴.

    <dependency>
        <dependentassembly>
            <assemblyidentity   type="win32"   name="microsoft.windows.common-controls"   version="6.0.0.0"   processorarchitecture="x86"   publickeytoken="6595b64144ccf1df"   language="*"> </assemblyidentity>
        </dependentassembly>
    </dependency>



快速检索

最新资讯
热门点击