ClassWizard

智能地操作类的工具

ClassWizard的意思就是智能地操作类的工具,通常被称作“类向导”。

简介
从字面上看,Class是类的意思,而Wizard则是“智者”的意思,两者合起来。
在Visual C++ 6.0的集成开发环境中,ClassWizard最能体现它的特征。与AppWizard类似,ClassWizard也能自动生成程序代码,只是两者生成的对象不同,AppWizard主要用来创建应用程序的框架,而ClassWizard则主要是在应用程序框架的基础上创建和编辑各种类。
ClassWizard既可以操作由AppWizard在应用程序框架中创建的类,又可以操作后来由ClassWizard自己添加的类。利用ClassWizard可以很轻松地完成一些最基本、最普通的工作,如在自己的应用程序中创建新类、映射消息为其添加消息处理函数、覆盖虚拟函数、将对话框中的控件与某个变量相关联等。
ClassWizard只能用于使用MFC类库的应用程序中。
ClassWizard可以完成的主要功能如下:
◆ 创建新类。这是ClassWizard最基本的用途之一。创建的新类由一些主要的基类派生而来,这些基类用于处理Windows的消息,对一般用户来说,这些基类已经足够了。
◆ 进行消息映射。这些消息主要和窗口、菜单、工具栏、对话框、控件以及加速键相关联。
◆ 添加成员变量。利用ClassWizard,可以很方便地向类中添加成员变量,并将这些成员变量与对话框或窗口中的控件关联起来,当控件的值改变时,所对应的成员变量的值也跟着发生变化。
◆ 覆盖虚拟函数。使用ClassWizard可以方便地覆盖基类中定义的虚拟函数。
操作说明
在刚进入Visual C++集成开发环境时,菜单项View|ClassWizard是灰化禁止的,只有在打开一个工作区文件后,该菜单项才能正常显示,表明该选项是可用的。
首先打开以前创建的多文档应用程序FirstApp,再选择菜单项View|ClassWizard,即可启动ClassWizard,进入ClassWizard环境,ClassWizard是一个对话框,其中包含五个选项卡,分别为:Message Maps、Member Variables、Automation、ActiveX Events、以及Class Info。它们针对不同的对象完成不同的任务。
⒈ Message Maps选项卡
它是ClassWizard对话框中最重要的选项卡,主要完成创建新类、添加、删除消息处理函数等任务。
该选项卡中包含了两个下拉列表框:Project下拉列表框和Class name下拉列表框;三个列表框:Object IDs列表框、Message列表框和Member functions列表框;一个文本信息框;四个工具按钮。
★ Project下拉列表框:该下拉列表框用于选择当前操作的项目。当当前打开的工作区中包含多个项目文件时,用户可以从这个下拉列表框中选择将要操作的项目文件。对于单项目工作区来说,其默认值就是项目文件。
★ Class name下拉列表框:该下拉列表框用于选择当前要操作的类。当用户在Class name下拉列表框中选中了某个类之后,Object IDs窗口中的内容将会发生相应的变化。
★ Object IDs列表框:该列表框用于显示当前选定类中能够产生消息的对象的ID值。这些对象包括菜单选项、工具栏按钮选项、对话框以及各种控件等。
通常Object IDs列表框中所包含的第一个对象就是当前类名。
★ Message列表框:Message列表框中列出了对应于Object IDs列表框中所选中的当前项可以处理的消息以及可被重写的MFC虚函数。当Object IDs列表框中选定当前类名时,Message列表框前部分显示的是当前类所能覆盖的虚拟函数,后部分显示的是能够处理的消息。如Object IDs列表框中选定其它对象,则Message列表框显示的就是当前项可以处理的消息。
★ Member functions列表框:Member functions列表框中列出了在Class name下拉列表框中所选中的当前类包含的所有成员函数。其中用字母“V”标出的是MFC虚函数,用字母“W” 标出的是Windows消息处理函数。
★ 文本信息框:在Project下拉列表框的下方有一个文本信息框,用于显示当前选中类的源文件,包括.h文件和.cpp文件。该文本信息框中显示的内容会随着选定类的变化而变化。
★ Add Class按钮:该按钮用于向当前的Project中添加一个新类,新类可以是自己创建,也可以是从已有的文件中选取。
★ Add Function按钮:该按钮用于向当前选定类中为当前选定的消息添加一个消息处理函数。其中类是在Class name下拉列表框中选定的类;而当前消息则是在Message列表框中选定的消息。
Add Function按钮平时是灰化禁止的,只有当用户在Message列表框中选中某个特定的消息之后,该按钮才能正常显示,即此时才能使用。
★ Delete Function按钮:该按钮用于在当前选定的类中删除已有的成员函数。Delete Function按钮平时是灰化禁止的,只有当用户在Member functions列表框中选中某个消息处理函数之后,才能选择该按钮。
★ Edit Code按钮:单击该按钮将打开编辑窗口,并将光标位置自动跳到当前选定的成员函数的源代码处。
⒉ Member Variables选项卡
该选项卡主要用于添加与对话框中的控件相关联的成员变量,以便程序能利用这些成员变量与对话框中的控件进行数据交换。该选项卡与Message Maps选项卡一样,也包含Project下拉列表框和Class name下拉列表框,分别用于选定用户操作的当前项目和当前类;Add Class按钮用于向当前项目中添加一个新类;一个文本信息框,用于显示当前选中类的源文件。
此外,Member Variables选项卡中还包含另一个列表框以及另外四个工具按钮。列表框中共有3列数据,分别为:
★ Control IDs:该项显示了当前选定类中能够映射成员变量的控件的ID值。所谓能映射成员变量的控件,就是可以使用类中的成员变量来代表某个控件,当控件发生改变时,该成员变量的值也发生相应变化。
★ Type:该项表示成员变量的类型。
★ Member:该项表示成员变量的名字。
注意:并不是所有的类都有这些信息,只有在选择了对话框类、有格式视图类或记录视图类时才能显示出这些信息。
★ Add Variable按钮:该按钮用于为当前选定的控件添加一个成员变量
★ Delete Variable按钮:该按钮用于删除一个现有的成员变量。该按钮平时是灰化禁止的,只有当用户在Control IDs列表框中选中某个成员变量以后,才能选择该按钮执行删除工作。
★ Update Columns按钮:该按钮用于选定一个数据源,只在记录集合类中才可以使用。
★ Bind All按钮:只适用于记录集合类,单击此按钮将把所有未绑定的记录集里的数据成员绑定到数据源的一个表中相应的列上。在默认情况下,MFC AppWizard和ClassWizard将绑定所有的列,所以很少需要使用数据绑定。如果通过删除相关的数据成员将一些或所有列取消绑定,那么在这之后还可以重新绑定它们。
⒊ Automation选项卡
该选项卡允许用户加入方法或属性以增强Automation功能。
⒋ ActiveX Events选项卡
该选项卡允许用户加入事件以支持ActiveX控件
⒌ Class Info选项卡
该选项卡用于显示和设置当前选定类中的一些重要信息。
创建新类
使用ClassWizard最重要的作用就是创建新类,用户将不必手工添加创建类所需的大量代码,只需指定一些关于新类的重要信息,ClassWizard将自动为你生成这些代码。
下面以应用程序FirstApp为例说明创建过程。步骤如下:
⑴ 首先打开FirstApp的项目工作区。
⑵ 点击菜单项View|ClassWizard,进入ClassWizard对话框。
⑶ 在Message Maps选项卡中选择功能按钮Add Class,并从其下拉选项栏中单击New选项,将会打开New Class对话框。
⑷ 首先在Name栏中键入新类的名称,如FirstButton。此时我们将看到在下面的File name栏中显示出ClassWizard自动为新类定义的默认文件名:FirstButton.cpp。如果你不想要这个名字,也可以单击Change按钮对文件名进行修改。
⑸ 接下来应当设定新类的基类,即该类是由什么类派生而来的。在Base class下拉列表框中选中所需的基类名,如CButton。
⑹ 如果你创建的基类需要对话框或其它资源,则应当在Dialog ID框中选择一个资源ID值。
⑺ Automation组框用于设置类的自动化信息,这只适用于能够自动化的类,即由CCmdTarget所派生的类,我们保持其默认选择None。
⑻ 最后单击OK按钮结束。
至此我们已经成功地向项目中添加了一个新类FirstButton。
回到Visual C++的主窗口中,我们将发现在FirstApp的项目工作区中发生了一些变化。打开ClassView选项卡,将看到一个新类FirstButton已经被添加到该项目的类列表中了。同时在FirstView选项卡中将发现FirstApp项目中新增加了两个文件:FirstButton.h,FirstButton.cpp。
添加函数
使用ClassWizard来为类添加消息处理函数,用户将不需要手工编写消息映射所需的各种消息宏,这样大大减轻了工作量。
本节将以FirstApp应用程序为例来添加消息处理函数,处理用户在视图中的单击鼠标操作。步骤如下:
⑴ 首先打开FirstApp的项目工作区。
⑵ 点击菜单项View|ClassWizard,进入ClassWizard对话框。
⑶ 选择Message Maps选项卡,在Project下拉列表框中选择项目名FirstApp,在Class name下拉列表框中选择类名CFirstAppView。
⑷ 在Object IDs列表框中选择对象ID为CFirstAppView。
⑸ 在Message列表框中选择需要处理的消息为WM_LBUTTONDOWN,即按下鼠标左键消息。
⑹ 此时会发现Add Function按钮已经可用。单击此按钮,ClassWizard将选中消息的处理函数添加到Member Functions列表框中。在本例中,对应WM_LBUTTONDOWN消息的处理函数是OnLButtonDown()。
⑺ 最后单击OK按钮结束。
注意:当用户为一些标准的Windows消息添加消息处理函数时,ClassWizard一般会自动地为你创建一个默认的消息处理函数名。而当用户为非标准消息添加处理函数时,ClassWizard将弹出一个对话框,并给出一个缺省的函数名,用户可以重新命名该消息响应函数。
在Visual C++的主窗口中打开项目工作区的ClassView选项卡,并打开CFirstAppView类的成员列表,就会发现消息处理函数OnLButtonDown()已经被添加进去了。
同时,通过查看文件,将会看到在CFirstAppView类的头文件FirstAppView.h中新加了消息处理函数OnLButtonDown()的声明。
可以看到该函数体是空的,其中只调用了一个其父类的成员函数,并且ClassView为用户生成了一些重要的注释行,以提示用户在何处添加自己的代码。
添加变量
成员变量也是类中不可或缺的组成部分,用于保存类的信息,我们将利用ClassView来为类添加成员变量。具体步骤如下:
⑴ 首先打开FirstApp的项目工作区。
⑵ 点击菜单项View|ClassWizard,进入ClassWizard对话框。
⑶ 在ClassWizard对话框中选择Member Variables选项卡,在Project下拉列表框中选择当前项目名FirstApp,在Class name下拉列表框中选择当前类名CAboutDlg。此时在Controls IDs列表框中将显示该类中包含的控件ID:“IDOK”,这个ID值对应于About对话框中的OK按钮。
⑷ 单击Add Variables按钮,将打开Add Member Variables对话框。有3个控件用来设置新成员变量的一些重要信息。
◆ Member variables name文本框:该文本框用来输入新成员变量的名字,在默认情况下,ClassWizard提供“m_”这个前缀以便将这个变量确认为成员变量。
◆ Category下拉列表框:该下拉列表框用于指定新变量是一个“Value”类型的成员变量还是一个“Control”类型的成员变量。对于标准的Windows控件来说,选择Value可以创建一个包含由用户来输入控件文本和控件状态的成员变量。而当用户选中Control选项时,就可以创建一个“Control”类型的变量,我们可以对这个控件直接进行访问。
◆ Variable type下拉列表框:该下拉列表框用于选择变量的数据类型。
⑸ 在Member variables name栏中输入变量名m_ok;在Category栏中选择该变量的类型:copntrol类型;在Variable type栏中选择该变量的数据类型CButton。
⑹ 单击OK按钮退出,这时我们可以看到,ClassWizard对话框中发生了改变。
打开FirstApp程序的项目工作区,可以看到,在CAboutDlg类的数据成员中,新增加了一个成员变量:m_ok。在CAboutDlg类的成员函数DoDataExchange()中,也添加了一条语句来映射控件ID值IDOK和成员变量m_ok:
DDX_Control(pDX,IDOK,m_ok);
覆盖函数
我们还可以使用ClassWizard来覆盖基类中定义的虚拟函数,方法如下:
⑴ 打开ClassWizard对话框的Message Maps选项卡。
⑵ 在Class name下拉列表框中选择一个类名来作为当前类。如CFirstAppView。
⑶ 在Object Ids列表框中再次选择该类名,如CFirstAppView。此时在Message列表框中将列出所有可以覆盖的虚拟函数名和所有可操作的Windows消息。
⑷ 在Message列表框中选择所要覆盖的虚拟函数,如OnPaint()。
⑸ 单击Add Function按钮覆盖基类的该虚拟函数。此时在Member functions列表框中将显示虚拟函数名OnPaint()。注意在此函数前有一个“V”字母,表示该函数是一个虚拟函数
⑹ 单击OK按钮结束。
我们在头文件FirstAppView.h中可看到该虚拟函数的定义:
virtual void OnPaint(CDC * pDC,CPrintInfo * pInfo);
同时在实现函数FirstAppView.cpp中可看到该虚拟函数的函数体
void CFirstAppView::OnPaint(CDC * pDC,CPrintInfo * pInfo)
{
//在此处加上专门代码或调用基类
CView::OnPaint(pDC,pInfo);
}
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市