windows开发记事本程序纪实(二)逻辑篇开发记事本程序纪实(二)逻辑篇1
从本节开始介绍windows开发实现记事本程序的逻辑实现部分。本节的主要内容有以下3点:1. 主窗口定义2.
RichEdit控件的选用及初始化3. 整个程序ICON的选择
1. 主要内容主要内容
从本节开始介绍windows开发实现记事本程序的逻辑实现部分。本节的主要内容有以下3点:
1. 主窗口定义 —— 主要介绍记事本主界面窗口对应的窗口类及实现方案
2. RichEdit控件的选用及初始化 —— 记事本程序中编辑控件的选择及使用
3. 整个程序ICON的选择。—— 程序ICON设置
2. 实际开发实际开发
2.1 主窗口实现
在上一篇介绍界面的实现中只是给出了运行界面的效果,但是当时那个界面程序不能响应任何的windows消息,因为当时的窗
口在创建时将窗口对应的过程处理函数设置为NULL。现在,我们需要将相应的过程处理函数添加上使得这个记事本应用程序
可以响应我们发出的一系类操作指令。为此,本文在开发时,单独设计了一个用于保存主界面窗口的类CMainWnd。这个类定
义了整个窗口的过程处理函数Main_Porc。在Main_Proc中可以对传入的任何消息进行处理(包括初始化窗口消息,窗口中其
他控件的消息,关闭窗口消息等等)。以windows 自带记事本为例,如图1所示
图1 windows主窗口消息效应区域
如上图所示,在windows记事本主界面中,需要响应红色矩形区域内的菜单控件的各类消息、响应黄色矩形区域内系统按钮的
相关消息,以及相应编辑控件Edit中的消息。对于主窗口中的各类控件的消息,windows会以WM_COMMAND消息进行传
输,这也是整个程序的核心处理区域。系统按钮关闭的消息则是WM_CLOSE。窗口初始化消息WM_INITDIALOG则是构建对
话框窗口前发出的初始化消息。为了能够响应上述各类消息,需要在CMainWnd中添加对于这几类消息的响应函数,因此整个
CMainWnd的基本实现形式如下:
头文件声明:
/************************************************************************/
/* file : CMainWnd.h
* author : Huagang Li
* date : 2014-8-30 15:29:42
* blogs : http://www.cnblogs.com/lhglihuagang/
* tips : 主窗口实现类, 实现窗口的过程函数,消息响应函数等
*/
/************************************************************************/
#ifndef _MAIN_WND_H
#define _MAIN_WND_H
#include <Windows.h>
//////////////////////////////////////////////////////////////////////////
// CMainWnd 主窗口类,提供
class CMainWnd
{
public:
static BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
static BOOL Main_OnInitDialog(HWND hWnd, HWND hWndFocus, LPARAM lParam);
static void Main_OnCommand(HWND hWnd, int id, HWND hWndCtl, LPARAM lParam);
static void Main_OnClose(HWND hWnd);
private:
static HWND hMainWnd; // 主窗口句柄
};
#endif
CMainWnd具体定义:
#include "MainWnd.h"
include <WindowsX.h>
//////////////////////////////////////////////////////////////////////////
// static data members
HWND CMainWnd::hMainWnd = NULL;