zoukankan      html  css  js  c++  java
  • VC6工程向导制作

    最近突然发现每天写点教程对自己的学习很有帮助,所以以后每天都尽量写点东西吧。关于Win32工程向导,也许还有很多人不知道这是个什么玩意,其实很简单,每次你创建工程文件的时候VC总会让你选择一种是win32项目还是控制台程序等等,这就是向导,而今天我要做的就是一个简单的窗体向导,使用这个向导以后,你可以很方便的创建一个窗体,而不用每次写程序的时候都重新写一大堆代码。

    第一步:使用管理员身份打开VC,(为什么要用管理员身份呢?这是因为我的电脑是win7的,而且UAC设置并没有关,VC又是安装在C盘,所以待会儿写入模板的时候需要管理员权限才能写入C盘的VC安装目录下。XP好像不需要用管理员权限打开)打开后,点击【文件】【新建】”,弹出一个对话框,选择【Win32Application】,在右上角输入工程名,选择你的工程保存的位置,点击【确定】后弹出一个对话框,选择【一个简单的Win32程序】再点击【完成】,再在弹出对话框点【确定】即可。如图:

    第二步:再次点击【文件】【新建】弹出对话框,选择【资源脚本】,输入文件名点击【确定】新建完成。弹出对话框如下图二。

    上图中的文件名为rescource为我的拼写错误,我重新建了一个,下面我已经改正文件名为resource了!

    对准上面对话框中的resource.rc 点击【右键】【插入】,弹出对话框,选中【dialog】点击【新建】,一个对话框窗体就创建完成了。
    如图。

    对准对话框主窗体内【双,弹出对话框的属性框,将原来的ID【IDD_DIALOG1】 修改为【IDD_MAIN】后点击【确定】。

    然后自己随便画些按钮或者控件上去,这个就是你以后使用该向导创建的窗体的样子了。另外在更多样式选项卡选择居中,你的窗体出现就会在屏幕中间哦!
    第三步:编辑cpp文件定制自己的个性模板
    首先在工作区【FileView】选项卡中双击【工程名.cpp】文件(我这里是DialogApp.cpp,只因为刚才新建的工程名为DialogApp.cpp)编辑,可以看到如下字段

    1 #include"stdafx.h"
    2 intAPIENTRY WinMain(HINSTANCE hInstance,
    3                      HINSTANCE hPrevInstance,
    4                      LPSTR     lpCmdLine,
    5                      int       nCmdShow)
    6 {
    7          // TODO: Place code here.
    8           return 0;
    9 }

    要在程序运行时显示创建的对话框,还需将如下字段添加到WinMain 函数return语句之前:

    DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, Main_Proc);
    这儿的IDD_MAIN为前面设置的创建对话框资源Dialog的ID
    注意:要使用创建的自定义资源,需要将创建过程生成的resource.h引入(直接使用会报错),所以还需要在文件头部添加如下代码:
    #include “resource.h”

    同时还要添加主窗口函数Main_Proc(注意这儿定义的函数名要和上述DialogBox中使用的第四个参数名一致,否则会报错),以及初始化函数Main_OnInitDialog,退出函数Main_OnClose,和按钮事件响应函数Main_OnCommand。 下面直接将这段代码复制过去即可。

     1 //初始化处理函数
     2 BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
     3 {
     4           return TRUE;
     5 }
     6 //按钮动作响应函数
     7 void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
     8 {
     9          
    10 }
    11 //退出信息处理函数
    12 void Main_OnClose(HWND hwnd)
    13 {
    14     EndDialog(hwnd, 0);
    15 }
    16 //主窗口信息处理函数
    17 //WM_COMMAND - 处理应用程序菜单;WM_PAINT - 绘制主窗口;WM_DESTORY - 发送退出信息并返回
    18 BOOL WINAPI Main_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    19 {
    20     switch(uMsg)
    21     {
    22         HANDLE_MSG(hwnd, WM_INITDIALOG, Main_OnInitDialog);//消息分流器,定义在<windowsx.h>中
    23         HANDLE_MSG(hwnd, WM_COMMAND, Main_OnCommand);
    24         HANDLE_MSG(hwnd,WM_CLOSE, Main_OnClose);
    25     }
    26           return FALSE;
    27 }

    注意:因为Main_Proc 函数中使用了消息分流器HANDLE_MSG,此宏定义在windowsx.h中,所以要在文件头部添加:

    #include <windowsx.h> 

    第四步: 编辑头文件
     新建dialog.h并添加到工程,在文件中添加如下字段声明函数:

    1 //函数声明
    2 BOOL WINAPI Main_Proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
    3 BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
    4 void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
    5 void Main_OnClose(HWND hwnd);

    同时在【工程名.cpp】头部添加(我的事DialogApp.cpp)

    #include "dialog.h"
    第五步:创建工程向导
     打开VC++6.0,依次选择【文件】【新建】【工程】【Custom AppWizard】
    在右侧【工程名称】框中输入工程名,【位置】框中选择储存路径,选择【确定】
    在弹出菜单选择【一个已存在的工程】,输入框中表示显示在工程向导中的名字,点击【下一步】,选择刚才创建Win32工程的dsp文件,就是前四步创建的"DialogApp.dsp"点击【完成】。
     
    在工作区【FileView】选项卡中【Template Files】下编辑如下文件即可
    【confirm.inf】文件中输入你想在向导窗口展示的文字及其排版(默认不修改就可以了)
    要是编辑器默认支持MIF类,需在【StdAfx.cpp】中#include "stdafx.h"前端加入#include <afxdisp.h>,然后【运行】即可
    否则会出现error LNK2001错误和error LNK1120错误。如果你不添加这行代码只需每次创建工程后执行以下步骤即可避免此错误:
    工作区【FileView】选项卡中【工程名文件】(我这里是DialogApp files)右键,选择【设置】,然后在【常规】选项卡下【微软基础类】下选择【不使用 MFC】,点击【确定】即可。
    再次打开 VC++6.0,(不再需要管理员权限了)选择【文件】【新建】你就会发现你新建的工程向导已经出现在列表里面了。
     
     
    补充一下:如果创建的不好怎么删除它呢?找到你的VC6.0的安装目录,以我的为例,我是装在C盘。将C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Template下面的Win32 DialogApp.awx和Win32 DialogApp.pdb删除掉就可以了。
    向导文件下载地址:http://pan.baidu.com/share/link?shareid=446582&uk=2265812220
     
    鹜落霜洲,雁横烟渚,分明画出秋色。暮雨乍歇,小楫夜泊,宿苇村山驿。何人月下临风处,起一声羌笛。离愁万绪,闲岸草、切切蛩吟似织。 为忆芳容别后,水遥山远,何计凭鳞翼。想绣阁深沉,争知憔悴损,天涯行客。楚峡云归,高阳人散,寂寞狂踪迹。望京国。空目断、远峰凝碧。
  • 相关阅读:
    Postgresql HStore 插件试用小结
    postgres-xl 安装与部署 【异常处理】ERROR: could not open file (null)/STDIN_***_0 for write, No such file or directory
    GPDB 5.x PSQL Quick Reference
    postgresql 数据库schema 复制
    hive 打印日志
    gp与 pg 查询进程
    jquery table 发送两次请求 解惑
    python 字符串拼接效率打脸帖
    postgresql 日期类型处理实践
    IBM Rational Rose软件下载以及全破解方法
  • 原文地址:https://www.cnblogs.com/thunderest/p/3049084.html
Copyright © 2011-2022 走看看