原创 曲径通幽—关于Visual Stdio 自定义向导框的构建(1)

2014-6-17 01:26 849 10 12 分类: 软件与OS

 

 

1.建立WIN32 工程

打开VC++6.0,依次选择【File】—【New

20140617011256113001.gif

在弹出窗口选择【Projects】选项卡左侧选择【Win32 Application】,右侧【Project name】框中输入工程名DQ_Frame_App,【Location】框中选择储存路径,点击【OK】。在弹出菜单选择【A simple win32 application】,然后点击【Finish】。

 

20140617011300557002.jpg

接着点击【OK

20140617011305244003.jpg

 

2.创建可视化对话框窗口资源

依次选择【File】—【New】,在弹出窗口选择【Files】选项卡,左侧选择【Resource Script】,右侧选中【Add to project】框,【File】中输入资源名DQ_Resoure,【Location】框中选择储存路径,点击【OK】。

 

20140617011309287004.jpg

VC窗口编辑区可看见DQ_Resoure,右键选择【Insert】,20140617011314976005.gif

 

 

 

在弹出对话框中选择【Dialog】,点击【New

20140617011318635006.gif

在绘制对话框右键选择【Properties】。20140617011322597007.gif

 

 

 

在弹出框中更改【ID】为IDD_DQ

20140617011327265008.gif

然后回车,保存文件。

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_OnInitDialogMain_OnCommandMain_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"

 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

dreamfly123123 2014-6-24 02:06

谢谢夸奖

用户1420144 2014-6-19 21:09

不错,蛮好
相关推荐阅读
dreamfly123123 2016-03-30 15:02
Block RAM 和Distributed RAM
==============================================FPGA block RAM和distributed RAM区别区别之1bram 的输出需要时钟,dram在...
dreamfly123123 2014-06-17 01:29
曲径通幽—关于Visual Stdio 自定义向导框的构建(2)
5.制作专属Win32 工程向导 打开VC++6.0,依次选择【File】—【New】—【Projects】—【Custom AppWizard】,在右侧【Project name】框中输入工程名DQ...
dreamfly123123 2014-04-06 08:31
modelsim与modelsim_altera使用的一些区别
今天在师兄那里听说,modelsim仿真和modelsim_altera仿真时有些区别的,我所遇到的区别是:1.modelsim能够对verilog和vhdl的混合编程进行仿真,而modelsim_a...
EE直播间
更多
我要评论
2
10
关闭 站长推荐上一条 /3 下一条