VC中在VS2008编译环境下创建属性表单中出现“所属资源不存在的错误”
2012-11-29 20:20
316 查看
属性表单
1.插入属性页资源。Insert->new Resource->Dialog
2.当选择Classwizard菜单时,系统提示是否为创建新的类,我们将其从CPropertyPage派生!这样可以为
方便为其增加消息响应函数。
3.插入新的从CPropertySheet派生的类,在类中增加3个CPropertyPage的实例。
4.在view中增加菜单项,当点击时显示属性表单,出现中文乱码,修改CPropertyPage属性为中文,另外将
其字体设为宋体。
5.在CPropertyPage中设置SetWizardButtons可将其属性改为上一步、完成!
6.为IDC_RADIO1关联成员变量,需要先设置Group属性才行。另外别忘记调用UpdateData().
7.为CPropertyPage增加虚函数,OnWizardNext,如果用户点击下一步时,不想让他进入下一步,刚返回-1!
8.将用户的选择输出到屏幕上,此时可以在View中增加几个成员变量,用来接收用户选择的数据。
4.memset()的用法! memset(m_bLike,0,sizeof(m_bLike));
上面是VC6.0方法。
在VS2008中,方法一样,思路一样。不同的是,按照相同方法设计出来后,会有所需资源不可用的错误。解决办法:
用记事本打开.rc文件,把跟属性页相关的如下部分代码 及其对应的#endif删除
#if defined(APSTUDIO_INVOKED) || defined(PAGE2)
#if defined(APSTUDIO_INVOKED)
IDD_PROP2$(PAGE2) DIALOGEX 0, 0, 235, 156
#else
切记,代码块后面的#endif也要删除。一起删除三次。
VS中,是不会出现乱码的。不用设置字体。
建立属性对象后,创建属性窗口前,添加setWiardMode函数,即可变成向导。
做向导的时候我们想改变属性页按钮的功能 需要在三个属性页类中分别重写OnSetActive函数 在其中添加((CPropSheet *)GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
GetParent()得到父窗口的指针,然后转换为属性表单指针,调用设置按钮函数。
Radio Button 是通过GROUP属性来划分组的 通过在具有组属性的按钮上添加一个成员变量 根据该变量的值来判断组里有谁被选中 注意 被关联的变量与控件间的数据交换需要地用UpdateData函数参数为TRUE时是从控件中取回指 参数为FALSE是将成员变量的值赋予控件
要在点击下一步的时候判断RadioButton是否被选中 需要在该属性页的类中重写OnWizardNext函数
对于要在属性页的list里添加了内容 可以在OnInitDialog函数中写 该函数是用来相应WM_INITDIALOG消息的 该消息是在对话框将要显示之前发送的 在VC6++中是通过添加消息映射函数建立该函数的 而在VS2008中 则是通过重写
MFC中对控件操作都是通过调用相关的类 比如list box控件 就要用CListBox类 然后可以通过得到控件指针的函数 GetDlgItem 来操作
如:
((CListBox *)GetDlgItem(IDC_LIST1))->AddString(L"枫江");
判断list box中的选项是否被选择的方法 也是关联一个成员变量 CString类型的 如果为空 则未选择
Combo Box的Sort属性选FALSE 就不会自动排序了
可以用CComboBox的一个成员函数SetCurSel来进行缺省的设置
然后用getTBText函数,完成对索引值内容的读取。
*VS2008中 添加数组变量 方法举例
类型 int (&)[10]
名字 m
但是 添加进去之后最好还是改成 int m[10]的形式
1.插入属性页资源。Insert->new Resource->Dialog
2.当选择Classwizard菜单时,系统提示是否为创建新的类,我们将其从CPropertyPage派生!这样可以为
方便为其增加消息响应函数。
3.插入新的从CPropertySheet派生的类,在类中增加3个CPropertyPage的实例。
4.在view中增加菜单项,当点击时显示属性表单,出现中文乱码,修改CPropertyPage属性为中文,另外将
其字体设为宋体。
5.在CPropertyPage中设置SetWizardButtons可将其属性改为上一步、完成!
6.为IDC_RADIO1关联成员变量,需要先设置Group属性才行。另外别忘记调用UpdateData().
7.为CPropertyPage增加虚函数,OnWizardNext,如果用户点击下一步时,不想让他进入下一步,刚返回-1!
8.将用户的选择输出到屏幕上,此时可以在View中增加几个成员变量,用来接收用户选择的数据。
4.memset()的用法! memset(m_bLike,0,sizeof(m_bLike));
上面是VC6.0方法。
在VS2008中,方法一样,思路一样。不同的是,按照相同方法设计出来后,会有所需资源不可用的错误。解决办法:
用记事本打开.rc文件,把跟属性页相关的如下部分代码 及其对应的#endif删除
#if defined(APSTUDIO_INVOKED) || defined(PAGE2)
#if defined(APSTUDIO_INVOKED)
IDD_PROP2$(PAGE2) DIALOGEX 0, 0, 235, 156
#else
切记,代码块后面的#endif也要删除。一起删除三次。
VS中,是不会出现乱码的。不用设置字体。
建立属性对象后,创建属性窗口前,添加setWiardMode函数,即可变成向导。
做向导的时候我们想改变属性页按钮的功能 需要在三个属性页类中分别重写OnSetActive函数 在其中添加((CPropSheet *)GetParent())->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
GetParent()得到父窗口的指针,然后转换为属性表单指针,调用设置按钮函数。
Radio Button 是通过GROUP属性来划分组的 通过在具有组属性的按钮上添加一个成员变量 根据该变量的值来判断组里有谁被选中 注意 被关联的变量与控件间的数据交换需要地用UpdateData函数参数为TRUE时是从控件中取回指 参数为FALSE是将成员变量的值赋予控件
要在点击下一步的时候判断RadioButton是否被选中 需要在该属性页的类中重写OnWizardNext函数
对于要在属性页的list里添加了内容 可以在OnInitDialog函数中写 该函数是用来相应WM_INITDIALOG消息的 该消息是在对话框将要显示之前发送的 在VC6++中是通过添加消息映射函数建立该函数的 而在VS2008中 则是通过重写
MFC中对控件操作都是通过调用相关的类 比如list box控件 就要用CListBox类 然后可以通过得到控件指针的函数 GetDlgItem 来操作
如:
((CListBox *)GetDlgItem(IDC_LIST1))->AddString(L"枫江");
判断list box中的选项是否被选择的方法 也是关联一个成员变量 CString类型的 如果为空 则未选择
Combo Box的Sort属性选FALSE 就不会自动排序了
可以用CComboBox的一个成员函数SetCurSel来进行缺省的设置
然后用getTBText函数,完成对索引值内容的读取。
*VS2008中 添加数组变量 方法举例
类型 int (&)[10]
名字 m
但是 添加进去之后最好还是改成 int m[10]的形式
相关文章推荐
- VC6工程转移至VS2008编译WinMain出现错误
- 使用VS 2008(带sp1)编译VC 6.0的一个工程,出现下面的编译错误
- VC错误:编译程序中出现“fatal error C1010: unexpected end of file”
- thinkphp3.2.3版本在windows本地apache环境运行正常,上传到centos服务器apache环境中出现:thinkphp 上传根目录不存在!请尝试手动创建:uploads/
- vc编译出现错误:cannot open program database 目录/debug/vc60.pdb的解决
- VC2010环境下OpenCV出现“丢失tbb_debug.dll”错误解决办法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 2017-06-13共享时出现错误,没有启动服务器服务,此时尚未创建共享资源”的解决办法
- 在Ubuntu 64位环境下编译Liunx内核出现 Can't use 'defined(@array)' 错误的解决办法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 使用VC2005编译出现这个错误
- VS2008编译出现问题:error C2485: “__restrict”: 无法识别的扩展属性 解决办法
- maven build时出现编译错误,提示程序包不存在
- 【积沙成塔】Android 环境下编译后出现乱码错误的情况
- 关于VC2008编译出现错误“error C2664: ” 的处理方法:
- 创建ROS工作空间catkin_make编译出现错误
- VC 使用MSXML创建新结点时出现xmlns="" 属性解决方法
- 问题:VS2005和VS2008开发环境,安装IE8以后,无法创建 VC++ Smart Device Project?
- VC6调用VC2005编译生成的lib/dll库出现“unresolved external symbol "__declspec(dllimport) int __cdecl”错误的原因
- JavaWeb手动编译时出现xxx软件包不存在的错误