主窗体设计
下面笔者讲述如何将状态栏、工具栏显示在窗口中、如何在窗口中绘图、以及在窗口改变时,如何调整控件的大小。
(1)在窗口类CEquipmentDlg的头文件中引入“CustomBar.h”头文件,并定义3个共有成员变量。代码如下:
//引入“CustomBar.h”头文件
#include "CustomBar.h"
//定义共有成员变量
public:
CStatusBarCtrl statusbar; //状态栏
HICON m_hIcon; //图标
CCustomBar toolbar;//工具栏
(2)在窗口的构造函数中添加如下代码,用于加载窗口图标。
CEquipmentDlg::CEquipmentDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEquipmentDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINTITLE); //设置窗口图标,IDR_MAINTILTE是预先导
//入的图标,用户可以在资源视图中导入一个图标,将ID设置为IDR_MAINTILTE
toolbarcreated = false;
}
(3)处理窗口类的OnInitDialog()方法,创建并显示状态栏、工具栏。
BOOL CEquipmentDlg::OnInitDialog()
{
CDialog::OnInitDialog();
/******************************创建工具栏*********************************/
toolbar.Create(TBSTYLE_FLAT|CCS_TOP|WS_CHILD|WS_VISIBLE|WS_BORDER|CCS_ADJUST
ABLE|TBSTYLE_WRAPABLE,CRect(0,0,0,0),this,IDR_TOOLBAR1);
//MouseMove = DoToolMouseMove;
/******************************创建工具栏*********************************/
/******************************创建状态栏*********************************/
int panels[panelnum];//定义一个整型数组,记录状态栏每个面板的宽度
CRect rect1;
this->GetClientRect(&rect1);
//this->GetClientRect()
panels[0]= rect1.Width() / 9;
panels[1]=rect1.Width() / 9*3;
panels[2]=panels[1]+rect1.Width() / 9;
panels[3]=panels[2]+rect1.Width() / 9*2;
panels[4]=panels[3]+rect1.Width() / 9;
panels[5]=2000;
statusbar.Create(WS_CHILD|WS_VISIBLE|CCS_BOTTOM|SBARS_SIZEGRIP,
rect1,this,ID_statusbar);
statusbar.SetParts(panelnum,panels);//设置状态栏面板及宽度
statusbar.SetText("提示",0,0);
statusbar.SetText("公司",2,0);
CString string;
string.LoadString(IDS_COMPANY);
statusbar.SetText(string,3,0);
statusbar.SetText("系统时间",4,0);
/******************************创建状态栏**********************************/
this->UpdateWindow();
toolbarcreated = true;
SetIcon(m_hIcon, TRUE);// Set big icon
SetIcon(m_hIcon, FALSE);// Set small icon
SetWindowText("【资产设备管理系统】"); //设置窗口标题
this->ShowWindow(SW_SHOWMAXIMIZED);
this->SetTimer(12,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
(4)导入窗口图片。在工作区的资源视图中鼠标右键单击根节点“Equipment resources”,在弹出的快捷菜单中选择“Insert”菜单项,打开“Insert Resoaia”对话框,如图1所示。

图1 添加资源对话框
(5)选中“Bitmap”选项,单击“Import…”按钮,从磁盘中导入一幅位图作为主窗口的背景图片,设置位图资源ID为“IDB_BITMAP3”。
(6)修改主窗口的OnPaint()方法,代码如下:
void CEquipmentDlg::OnPaint()
{
CPaintDC dc(this);
CDC MemDC;//定义一个画布对象
CBitmap bit;//定义一个位图对象
CRect rect;
bit.LoadBitmap(IDB_BITMAP3);//加载位图
MemDC.CreateCompatibleDC(this->GetDC());//创建一个兼容的画布对象

RSS订阅![C/C++封装与访问控制[二.二]](http://www.isstudy.com/uploads/allimg/091213/1_091213220419_1.jpg)

![C/C++利用AppWizard 为FDraw 生成应用程序框架[二]](http://www.isstudy.com/uploads/allimg/091202/1_091202094132_1.gif)
![C/C++输入/输出流[二]](http://www.isstudy.com/uploads/allimg/091202/1_091202092628_1.gif)



