程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 使用DDE使應用程序可以添加新的程序組

使用DDE使應用程序可以添加新的程序組

編輯:關於VC++

當應用程序安裝完畢後,通常都會建立程序組,它們是怎麼實現的呢?下面是一種使用DDE來添加新的程序組的例子。

1.使用MFC新一項目PMGROUP(對話框形式),在對話框中添加三個Edit Box。

2.使用Class Wizard,添加成員變量m_GroupName,m_ItemName,m_FileName,分別對應添加的三個Edit Box,它們將容納輸入的三個條目(組名,標記名,對應的文件名);

3.在頭文件STDAFX.H中,添加下列代碼:

#include < ddeml.h >

4.在應用程序類CPGROUPApp的InitInstance函數中,添加下列代碼:

BOOL CPMGROUPApp::InitInstance()
{
//...
//Initialze DDEML
DdeInitialize(&dwDDEInst,NULL,APPCMD_CLIENTONLY,0);

if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
if(!AddPMGroup(dlg.m_GroupName,dlg.m_ItemName,dlg.m_FileName))
{
::MessageBox(NULL,"PMGroup:DDE Error","Error
adding group and item.",MB_ICONHAND|MB_OK);
}

}
//...
}

再給CPGROUPApp類添加一個成員變量dwDDEInst:

DWORD dwDDEInst;(用鼠標在ClassView的CPGROUPApp上點擊右鍵,在彈出的菜單中選取擇Add Member Variable,在對話中分別輸入DWORD和dwDDEInst)

因為它是一個以對話框為基礎的應用程序,當單擊確定後,就調用AddPMGroup來添加新的程序組。因此還要給CPGROUPApp類添加上AddPMGroup(用鼠標在ClassView的CPGROUPApp上點擊右鍵,在彈出的菜單中選取擇Add Member Function,在對話中分別輸入int和AddPMGroup。將生成的int CPMGROUPApp::AddPMGroup()改為int CPMGROUPApp::AddPMGroup(CString &group,CString &item,CString &file),在CPGROUPApp中將int AddPMGroup()改為int AddPMGroup(CString &group,CString &item,CString &file)),AddPMGroup的內容為:

int CPMGROOPApp::AddPMGroup(CString &group,CString &item,CString &file)
{
HSZ hszService=DdeCreateStringHandle(dwDDEInst,_T("PROGMAN"),CP_WINANSI);
HSZ hszTopic=DdeCreateStringHandle(dwDDEInst,_T("PROGMAN"),CP_WINANSI);
HCONV hConV=DdeConnect(dwDDEInst,hszTopic,hszService,NULL);
DdeFreeStringHandle(dwDDEInst,hszService);
DdeFreeStringHandle(dwDDEInst,hszTopic);
if(!hConV)
{
return FALSE;
}
//主要內容
CString cmd="[CreateGroup("+group+")]";//建立組的命令字
DWORD dwResult;
LPCTSTR data=(LPCTSTR)cmd;
DdeClientTransaction((LPBYTE)data,cmd.GetLength (),
hConV,NULL,CF_TEXT,XTYP_EXECUTE,
1000,&dwResult);
cmd="[AddItem("+file+","+item+")]";
//建立"file"的圖標,"item"為標記的命令字
data=(LPCTSTR)cmd;
DdeClientTransaction((LPBYTE)data,cmd.GetLength (),
hConV,NULL,CF_TEXT,XTYP_EXECUTE,
1000,&dwResult);
return TRUE;
}

5.使用Class Wizard給CPMGROUPApp添加一個ExitInstance函數,輸入下列代碼:

int CPMGROOPApp::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
DdeUninitialize(dwDDEInst);
return CWinApp::ExitInstance();
}

6.按F5運行,分別輸入組名、標名、文件名,按確定看看。

7.當然我們也可用其它命令字對程序組進行其它操作:

[ShowGroup(My Group,1)]

顯示並激活名為My Group的組窗口

[DeleteGroup(My Group)]

刪除名為My Group的組

[ReloadGroup(My Group)]

去除並重新裝載名為My Group的組

[Additem(HELLO.EXE,HELLO)]

為HELLO.EXE創建圖標,標記為HELLO

[ReplaceItem(HELLO)]

為名為HELLO的條目去除圖標,並在這裡插入下一條目

[DeleteItem(HELLO)]

刪除名為HELLO的條目

[ExitProgMan(1)]

退出程序管理器,並存貯信息(0不存)

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