?? 如何在c++ builder中調用windows應用程序.txt
字號:
如何在c++ builder中調用windows應用程序 (2001年4月17日)
網友更新 分類:數據庫 作者:Boolean 推薦:Boolean 閱讀次數:140
(http://www.codesky.net)
--------------------------------------------------------------------------------
一般,windows程序員在編寫windows程序時,為了降低編程的難度和縮短編程的時間,經常會調用各種windows資源,如畫筆,寫字板等資源。對于其他的程序設計語言,我們一般使用 api函數來實現著一功能,那么在borland c++ builder 上我們又如何實現呢?最近筆者在編寫電子屏顯示軟件時,用api函數實現了該功能。
現以使用api函數調用windows畫筆為列,把該方法介紹如下:
1、啟動 c++ builder 進入菜單file|new application創建一個新項目,將該項目存盤,得到含有一個主窗口的項目。在主窗口上添加一個打開圖片對話框控件OpenPictureDialog1和按扭控件Button1。
2、在主文件的文件頭添加#include
3、在頭文件的private 處添加 char BmpExec[100];
4、在Button1的OndbClick事件處添加如下代碼:
void __fastcall TMainForm1::Button1Click(TObject *Sender)
{
AnsiString TempName;
FileClose(FileCreate("testest.bmp"));
FindExecutable("testest.bmp",NULL,BmpExec);//返回可執行文件名的句柄//
DeleteFile("testest.bmp");//刪除文件//
OpenPictureDialog1->DefaultExt = String("BMP");
OpenPictureDialog1->Filter ="圖片文件(*.bmp)|*.bmp";
OpenPictureDialog1->FileName="*.bmp";
if (OpenPictureDialog1->Execute())
{
if (OpenPictureDialog1->FileName.AnsiPos(".")<1)
OpenPictureDialog1->FileName=OpenPictureDialog1->FileName+".BMP";
//給沒有擴展名的文件加上擴展名,此時FileName為文名的全名//
CloseHandle(CreateFile(OpenPictureDialog1->FileName.c_str(),//參數1 為文件名//
GENERIC_WRITE, //參數2 文件的訪問模式:設置為文件可寫并且文件指針//
FILE_SHARE_WRITE, //參數3 文件的共享模式:如果寫訪問允許文件可被修改//
NULL, //參數4 安全屬性: 用缺省的操作符//
OPEN_ALWAYS, //參數5 如果文件不存在,如何創造文件:設置為存在則打開,如不存在則新建//
FILE_ATTRIBUTE_NORMAL, //參數6,文件的屬性和標志,文件沒有其他的屬性//
));//關閉打開的事物句柄//
//以上的代碼使文件設置為共享,從而使下面的代碼順利執行//
TempName=AnsiString(BmpExec); //把char 轉換成AnsiString//
TempName=TempName+" "+OpenPictureDialog1->FileName;//應用程序名+相應的被處理文件//
WinExec(TempName.c_str(),SW_SHOWNORMAL);//執行應用程序//
}
}
5、編譯執行。當雙激按扭Button1時,程序出現打開圖片文件的對話框,選則要打開的bmp文件,便可以調用windows的畫筆打開自己選定的bmp文件了。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -