这一章里有个计算器的程序叫HEXCALC,作者把对话框和窗口叠在了一起,但是里面的按钮都是在hexcalc.dlg文件里手工定义的,怎么样才能实现在.RC文里方便的用可视化工具来定义

解决方案 »

  1.   

    左侧的资源视图(resourceview)里编辑,如果没有,以下添加:
    插入----资源-----对话框(dialog)
    之后关闭这个资源,提示保存(默认为Script1.rc),保存为hexcalc.rc
    工程----加入到工程----文件,选择hexcalc.rc和resource.h
    如果没出现,双击fileview的hexcalc.rc
      

  2.   

    你好shunruo ,我试了一下你的方法,但是又出现了新的问题,建立对话框后WndProc不处理对话框的发来的WM_COMMAND消息,连关闭对话框都不行,HEXCALC程序只用一个WndProc来处理两者的消息,但要求对话框注册一个类,代替以前的主窗口,如果是你说的方法就没办法注册了。
    HexCalc DIALOG -1, -1, 102, 122
    STYLE WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
    CLASS "HexCalc"       //关键
    CAPTION "Hex Calculator"
      

  3.   

    它就是一个非模态对话框,没有什么主窗口。模态和非模态对话框,它们都是窗口,不过它们是系统已经处理过的窗口。CreateDialog 最终也会去调用 CreateWindow 。至于为什么不能在 Dialog Editor 中建立对话框,书上是这么说的:“不幸的是,在Developer Studio的Dialog Editor中,对话框模板需要一些我们不能添加的东西。因此,对话框模板包含在HEXCALC.DLG文件中,而且需要手工输入。”我也没有完全明白。
      

  4.   

    "对话框模板需要一些我们不能添加的东西。"
    这个东西究竟是什么呢?难道就是不能设定CLASS?
      

  5.   

    http://d.download.csdn.net/down/289044/shunruo
    我改了一个,LZ到我的空间去下。上传真是太慢了!-_-
      

  6.   

    插入----资源-----对话框(dialog)
    CreateDialog 
      

  7.   

    谢谢shunruo,问题解决了,5天一到就加分.
      

  8.   

    不过我对这句话仍不太理解SetClassLong(hwnd,GCL_HBRBACKGROUND, (LONG)(HBRUSH) (COLOR_BTNFACE + 1));
    这句话是不是也起到了重画的作用?