热度 12
2014-6-17 01:26
852 次阅读|
2 个评论
1. 建立 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_D ialog.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"