程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 用BCB開發控制面板程序

用BCB開發控制面板程序

編輯:vc教程

前不久,Inprise公司(原Borland公司)正式公布了Delphi 5.0版,其開發向導中支持了“控制面板程序(CPL)”框架的生成,利用它可以快速、方便地開發CPL程序。那麼是否能在現有的Borland C++ Builder 中開發CPL程序呢?

CPL程序是動態鏈接庫(DLL)的一種變形,只不過擴展名為.cpl、入口函數為CPlApplet()而不是DllEntryPoint()罷了(並不是不要DllEntryPoint(),不然不能編譯)。我們只需在BCB4.0中選擇“File|New...”打開開發向導,選擇“DLL”生成一個DLL框架,並在其中加入一個函數CPlApplet()就可以了。為了快速地說明問題,筆者先給出一個最簡單的例子程序,然後再來解說。

#include <vcl.h>
#include <cpl.h>
#include <cplext.h>
#pragma hdrstop
USERES("my.res");//這是我加入的資源文件,其中有一個圖標
extern"C" __declspec(dllexport) long CALLBACK __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
long CALLBACK __declspec(dllexport) __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2)
{
LPNEWCPLINFO mycpl;//LPNEWCPLINFO結構可在CPL.H頭文件中查看
long result=0;
switch (uMsg)//判斷傳來的信息
  {
  case CPL_INIT:// 第一個信息,在控制面板調入時產生
   result=1;
   break;
  case CPL_GETCOUNT://第二個信息,在控制面板調入時產生
   result=1;
   break;
  case CPL_INQUIRE://第三個信息,當控制面板查詢時產生
   result=0;
   break;
  case CPL_NEWINQUIRE://第三個信息,當控制面板查詢時產生
   mycpl=LPNEWCPLINFO (lParam2);// 將lParam2中的指針傳給mycpl
   mycpl->dwSize=sizeof(NEWCPLINFO);
   mycpl->dwFlags=0;//標志變量 一般設為0
   mycpl->dwHelpContext=0;//幫助句柄一般設為0
   mycpl->lData=0;
   mycpl->hIcon=(HICON)LoadIcon(HInstance,"MyIcon");
   mycpl->szHelpFile[0]='\0';//幫助文件
   StrCopy(mycpl->szName,"BCB控制面板演示程序");//在圖標下顯示的說明文字
   StrCopy(mycpl->szInfo,"用BCB開發自己的控制面板程序");// 在控制面板狀態欄中顯示的說明信息
   result=0;
   break;
  case CPL_DBLCLK://當圖標被雙擊時
   ShowMessage("這是一個CPL試驗程序");
   result=0;
   break;
  case CPL_STOP://當用戶關閉自已的程序時產生
   result=1;
   break;
  case CPL_EXIT:// 當控制面板關閉時產生,系統使用FreeLibrary()釋放
   result=0;
   break;
  default:
   break;
  }
return result;
}

  1. 上一頁:
  2. 下一頁:
欄目導航
Copyright © 程式師世界 All Rights Reserved