本文介紹了如何在Windows環(huán)境下實(shí)現(xiàn)菜單中顯示歷史文件列表,同時(shí)概要介紹了TRegistry類的使用方法。
現(xiàn)在,在許多Windows應(yīng)用程序都具有這樣一個(gè)功能:可以在文件菜單下面顯示列出最近訪問過的文件,這使用戶很容易再次訪問曾經(jīng)訪問過的文件。在過去幾年中,這項(xiàng)技術(shù)以成為擁有文件菜單項(xiàng)的應(yīng)用程序的共同特色:如Wps系列和Office系列。在以前的DOS環(huán)境中,程序員一般通過創(chuàng)建一個(gè)文件用來記錄文件列表;那么在Windows環(huán)境中,還有其他的方法嗎?最近筆者利用C++ Builder5.0 C/S版提供的TRegedit類成功在注冊(cè)表中實(shí)現(xiàn)了上述功能,現(xiàn)介紹如下:
1、在C++ Builder中新建一個(gè)工程文件project1,并在Form1上添加如下控件:
控件名稱 屬性 值
TOpenDialog Name OpenDialog1
TMainMenu Name MainMneu1
同時(shí)在 MainMenu1控件中增加一個(gè)菜單項(xiàng),其屬性為
Name Caption
Items1 打開文件
2、在unit1.h中
private:
TRegistry *Registry;
String Items[3];//建立顯示歷史文件的數(shù)組//
int ItemsCount;
void _fastcall TForm1::Display();//顯示歷史文件記錄//
3、在Items的Click事件中輸入如下內(nèi)容:
void __fastcall TForm1::Items1Click(TObject *Sender)
{
String TempFile,Files;
OpenDialog1->Filter="All Files(*.*)|*.*";
if(OpenDialog1->Execute())
{
Files=OpenDialog1->FileName;//取得文件名//
for(int i=0;i<3;i++)
TempFile=Items[0];
if(ItemsCount<3)
ItemsCount++;
for(int i=ItemsCount-1;i>0;i--)
Items[i]=Items[i-1];//對(duì)打開的歷史文件進(jìn)排序//
Items[0]=Files;//使最近打開的文件在最前面//
}
Display();
}
現(xiàn)在,在許多Windows應(yīng)用程序都具有這樣一個(gè)功能:可以在文件菜單下面顯示列出最近訪問過的文件,這使用戶很容易再次訪問曾經(jīng)訪問過的文件。在過去幾年中,這項(xiàng)技術(shù)以成為擁有文件菜單項(xiàng)的應(yīng)用程序的共同特色:如Wps系列和Office系列。在以前的DOS環(huán)境中,程序員一般通過創(chuàng)建一個(gè)文件用來記錄文件列表;那么在Windows環(huán)境中,還有其他的方法嗎?最近筆者利用C++ Builder5.0 C/S版提供的TRegedit類成功在注冊(cè)表中實(shí)現(xiàn)了上述功能,現(xiàn)介紹如下:
1、在C++ Builder中新建一個(gè)工程文件project1,并在Form1上添加如下控件:
控件名稱 屬性 值
TOpenDialog Name OpenDialog1
TMainMenu Name MainMneu1
同時(shí)在 MainMenu1控件中增加一個(gè)菜單項(xiàng),其屬性為
Name Caption
Items1 打開文件
2、在unit1.h中
private:
TRegistry *Registry;
String Items[3];//建立顯示歷史文件的數(shù)組//
int ItemsCount;
void _fastcall TForm1::Display();//顯示歷史文件記錄//
3、在Items的Click事件中輸入如下內(nèi)容:
void __fastcall TForm1::Items1Click(TObject *Sender)
{
String TempFile,Files;
OpenDialog1->Filter="All Files(*.*)|*.*";
if(OpenDialog1->Execute())
{
Files=OpenDialog1->FileName;//取得文件名//
for(int i=0;i<3;i++)
TempFile=Items[0];
if(ItemsCount<3)
ItemsCount++;
for(int i=ItemsCount-1;i>0;i--)
Items[i]=Items[i-1];//對(duì)打開的歷史文件進(jìn)排序//
Items[0]=Files;//使最近打開的文件在最前面//
}
Display();
}

