我正在与VS2005合作,以WinCE设备为目标,目前正在构建MFC。我得到了一个与行相关的错误
CTEXT IDC_PG,168,183,63,63
说
my_app.rc(95):误差RC2108 :期望数值对话常数
我确信CTEXT行是有问题的(错误指向后面的行)。我已经把CTEX线从中间移动到末尾,在CTEXT之后我得到了行的错误,当它是中间的时候),但是我不知道这里可能有什么不正确。
这是完整的代码块:
BEGIN
LTEXT "Static",IDC_SEL,337,122,63,61,SS_NOTIFY
LTEXT "Static",IDC_ESC,337,183,62,63,SS_NOTIFY
LTEXT "Static",IDC_RETURN,337,122,63,123,SS_NOTIFY
LTEXT "Static",IDC_RB,337,45,63,61,SS_NOTIFY
LTEXT "Static",IDC_LB,337,0,63,61,SS_NOTIFY
LTEXT "Static",IDC_DN,337,61,63,61,SS_NOTIFY
LTEXT "Static",IDC_UP,337,0,63,61,SS_NOTIFY
LTEXT "Static",IDC_SET,274,183,63,63,SS_NOTIFY
LTEXT "Static",IDC_VYPLN,0,183,211,63,SS_NOTIFY
LISTBOX IDC_LF,1,1,338,182,LBS_NOINTEGRALHEIGHT | NOT WS_BORDER | WS_TABSTOP
CTEXT "Static",IDC_PHOTO,0,0,337,245
CTEXT "Static",IDC_BG,0,0,400,245
LTEXT "Static",IDC_ESC2,202,182,62,63,SS_NOTIFY
CTEXT IDC_PG,168,183,63,63 //PagingWidget
END提前感谢你在这件事上透露了一些信息。
发布于 2017-06-14 17:39:21
您在这句话中解释了您的问题:“我不想让它成为”静态“,因为我计划使用这个小部件来显示currentPage。”
在您的项目中编译的资源是Resoure.h,以及所有*.rc和*rc2文件只能包含与应用程序链接的静态数据。所有资源项都必须具有一个ID (从应用程序代码中可以看出是UINT,而对于操作系统则是一个字符串),该ID是常量的,在编译时定义的。
如果需要动态创建控件,则必须在代码中这样做。您可以通过将它们作为对话框类的成员进行管理,或者在指针向量中的动态内存中(无法复制CWnd)来管理它们。MFC提供CObArray,它为动态分配CWnd*提供了一些基本的RAII。
如果您真的觉得需要引用对话框中的矩形来放置动态控件,那么请在对话框中使用编辑器插入一些虚拟的、不可见的静态控件。
或者,如果您已经知道您需要的小部件的最大数量,那么将它们作为静态项放置在对话框资源中,并在对话框的/hide ()成员函数中显示它们。
抱歉,给你带来了坏消息。我希望你有一个好的后援。
发布于 2017-06-14 17:54:32
另一方面,如果您只想在运行时访问一个小部件,更改它的内容,右键单击对话框-> Create类,确保类型是CDialog。然后,您可以通过右键单击控件(小部件) -> create变量来为它们创建变量。
控制变量的经验法则是为动态控件创建控制变量,这些控件将在对话框的生存期内更改内容。
对于简单的对话框,它只显示和收集用户的数据,这对我们来说是最好的公共类型变量,这些变量将在入口时自动填充您的控件,并在成功退出时收集数据。
建议阅读:https://msdn.microsoft.com/en-us/library/0khz1cy9(v=vs.90).aspx
希望这就是你想做的。要使用MFC的代码生成功能,需要有一个工作资源文件。
https://stackoverflow.com/questions/44521706
复制相似问题