.建立WIN32 工程
打开VC++6.0,依次选择【File】—【New】
在弹出窗口选择【Projects】选项卡左侧选择【Win32 Application】,右侧【Project name】框中输入工程名DQ_Frame_App,【Location】框中选择储存路径,点击【OK】。在弹出菜单选择【A simple win32 application】,然后点击【Finish】。
接着点击【OK】
2.创建可视化对话框窗口资源
依次选择【File】—【New】,在弹出窗口选择【Files】选项卡,左侧选择【Resource Script】,右侧选中【Add to project】框,【File】中输入资源名DQ_Resoure,【Location】框中选择储存路径,点击【OK】。
在VC窗口编辑区可看见DQ_Resoure,右键选择【Insert】,
在弹出对话框中选择【Dialog】,点击【New】
在绘制对话框右键选择【Properties】。
在弹出框中更改【ID】为IDD_DQ。
然后回车,保存文件。
3.编辑cpp 文件定制个性模板
首先在工作区【FileView】选项卡中双击【DQ_Frame_App.cpp】文件编辑,可以看到如下字段
#include "stdafx.h"
int APIENTRY WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
return 0;
}
要在程序运行时显示创建的对话框,还需将如下字段添加到WinMain 函数return 语句之前:
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DQ), NULL, Main_Proc);
这儿的IDD_DQ 为前面设置的创建对话框资源Dialog 的ID
注意:要使用创建的自定义资源,需要将创建过程生成的DQ_Resource.h 引入(直接使用会报错),所以还需要在文件头部添加如下代码:
#include “DQ_Resource.h”
同时还要添加主窗口函数Main_Proc,以及初始化函Main_OnInitDialog,退出函数Main_OnClose,和按钮事件响应函数Main_OnCommand。各函数定义如下:
//初始化处理函数
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
return TRUE;
}
//按钮动作响应函数
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
}
//退出信息处理函数
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}
//主窗口信息处理函数
//WM_COMMAND ‐ 处理应用程序菜单;
//WM_PAINT ‐ 绘制主窗口;
//WM_DESTORY ‐ 发送退出信息并返回
BOOL WINAPI Main_Proc( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hwnd, WM_INITDIALOG, Main_OnInitDialog);
//消息分流器,定义在中
HANDLE_MSG(hwnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hwnd,WM_CLOSE, Main_OnClose);
}
return FALSE;
}
注意:因为Main_Proc 函数中使用了消息分流器HANDLE_MSG,此宏定义在windowsx.h中,所以要在文件头部添加:
#include <windowsx.h>
4.编辑头文件
实现函数声明,若上述四个函数顺序是Main_OnInitDialog,Main_OnCommand,Main_OnClose 三个函数在Main_Proc 之前,且这四个函数在WinMain 之前可以跳过此步骤因为C 语言函数必须先声明再使用,除非被调函数在主调函数前面!
新建DQ_Dialog.h 并添加到工程,在文件中添加如下字段声明函数:
//函数声明
BOOL WINAPI Main_Proc( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
void Main_OnClose(HWND hwnd);
同时在【工程名.cpp】头部添加:
#include "DQ_Dialog.h"