第一篇:MFC動(dòng)態(tài)添加控件及響應(yīng)函數(shù)
MFC動(dòng)態(tài)添加控件及響應(yīng)函數(shù)
應(yīng)該注意:控件也是一個(gè)窗口。在添加控件的時(shí)候空間變量最好是全部變量或者是局部指針變量,這樣即使函數(shù)結(jié)束也不會(huì)造成變量被銷毀。下面以動(dòng)態(tài)添加按鈕為例的代碼: ? CButton *pButton = new CButton;//一定要New CButton,否則程序會(huì)運(yùn)行出錯(cuò)? pButton->Create(“New Button”, WS_CHILD|BS_DEFPUSHBUTTON, CRect(0, 0, 100,50), this, 123);
? pButton->ShowWindow(SW_SHOW);
或者是如下代碼:
? CButton *pButton = new CButton;//一定要New CButton,否則程序會(huì)運(yùn)行出錯(cuò)? pButton->Create(“New Button”, WS_CHILD|BS_DEFPUSHBUTTON|WS_VISIBLE, CRect(0, 0, 100, 50), this, 123);
根據(jù)MFC的消息映射機(jī)制,應(yīng)該更改三處代碼。
?(1)在頭文件中修改代碼
? 在protected的注釋宏中間添加函數(shù)聲明:
? protected:
? //{{AFX_MSG(CDemoMDIView)
?? afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
?? afx_msg void OnNewButton(void);
?? //}}AFX_MSG
??(2)在cpp文件中添加消息聲明
?? BEGIN_MESSAGE_MAP(CDemoMDIView, CView)
?? //{{AFX_MSG_MAP(CDemoMDIView)
?? ON_WM_CREATE()
?? //}}AFX_MSG_MAP
?? // Standard printing commands
?? ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
?? ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
?? ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)?? //參數(shù)依次為控件ID、響應(yīng)函數(shù)名稱
?? ON_BN_CLICKED(123, OnNewButton)
?? END_MESSAGE_MAP()
??(3)在cpp文件中添加函數(shù)代碼
?? voidCDemoMDIView::OnNewButton(void)
?? {
?? MessageBox(“This is a new button!nThis Function Handler was added manually!”);?? }
第二篇:MFC控件關(guān)聯(lián)變量小結(jié)
MFC控件關(guān)聯(lián)變量總結(jié)
通常在要綁定變量的編輯框控件上右鍵添加變量就可以。
綁定變量分value和control兩種,value是賦值用的,control是控制用的。對(duì)于編輯框的賦值,共分幾種方法 1.不用綁定變量的方法
GetDlgItem(IDC_EDIT1)->GetWindowText(變量); 如果是數(shù)組->GetWindowText(數(shù)組名,長(zhǎng)度)GetDlgItem(IDC_EDIT1)->SetWindowText(變量); 2.綁的是value型變量 一共3處
<1處>project1Dlg.h : 頭文件 class Cproject1Dlg : public CDialog { // 構(gòu)造 public: Cproject1Dlg(CWnd* pParent = NULL);// 標(biāo)準(zhǔn)構(gòu)造函數(shù)
// 對(duì)話框數(shù)據(jù)
enum { IDD = IDD_PROJECT1_DIALOG };protected: virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持
// 實(shí)現(xiàn) protected: HICON m_hIcon;// 生成的消息映射函數(shù) virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public: afx_msg void OnBnClickedOk();CString edit1;//定義了該變量 CString edit2;CEdit edit3;CEdit edit4;CString edit5;};<2處> project1Dlg.cpp : 實(shí)現(xiàn)文件
Cproject1Dlg::Cproject1Dlg(CWnd* pParent): CDialog(Cproject1Dlg::IDD, pParent), edit1(_T(“")), edit2(_T(”“)), edit5(_T(”")){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}
參數(shù)列表跟了edit1 <3處> project1Dlg.cpp : 實(shí)現(xiàn)文件
void Cproject1Dlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, edit1);DDX_Text(pDX, IDC_EDIT2, edit2);DDX_Control(pDX, IDC_EDIT3, edit3);DDX_Control(pDX, IDC_EDIT4, edit4);DDX_Text(pDX, IDC_EDIT5, edit5);}
DDX_Text(pDX, IDC_EDIT1, edit1);變量與控件關(guān)聯(lián)
通過(guò)調(diào)用 UpdateData(TRUE)UpdateData(FALSE)將控件數(shù)據(jù)取到變量或?qū)⒆兞繑?shù)據(jù)顯到控件 如果 變量賦值語(yǔ)句寫(xiě)在對(duì)話框構(gòu)造函數(shù)里,則UpdateData(FALSE)可省略,會(huì)被自動(dòng)調(diào)用
3.綁的是control型變量 代碼與上方一樣,看edit3 但只有兩處涉及 CEdit edit3;DDX_Control(pDX, IDC_EDIT3, edit3);程序里只需要 edit3.GetWindowText(變量);edit3.SetWindowText(變量);就可以用了
除了賦值,還能干很多事情.
第三篇:Visual C++ 2010 MFC ActiveX 控件小結(jié)[推薦]
一、ActiveX控件
ActiveX控件是基于組件對(duì)象模型COM--Components Object Modem的可重用軟件組件,旨在用于普通的ActiveX控件容器和Internet上的網(wǎng)頁(yè),這里介紹用MFC創(chuàng)建ActiveX控件。一個(gè)典型的ActiveX控件,具有方法、屬性、事件這三種特性。
二、ActiveX控件的測(cè)試與注冊(cè)
1、使用ActiveX控件測(cè)試容器對(duì)控件進(jìn)行測(cè)試
對(duì)于VC6.0,安裝CommonTools目錄下的TSTCON32.EXE即可使用。
而vs2010中的TSTCON(ActiveX Control Test Container)工具非自動(dòng)安裝,而是作為一個(gè)例程提供。所以應(yīng)找到該例程,并編譯: 如vs2010安裝在默認(rèn)路徑則
1, 進(jìn)入:C:Program FilesMicrosoft Visual Studio 10.0Samples1033,可找到VC2010Samples.zip文件,2, 將其解決到同一個(gè)文件夾,解壓后將出現(xiàn)一個(gè)C++子文件夾。
3, TstCon例程在:C:Program FilesMicrosoft Visual Studio 10.0Samples1033C++MFColeTstCon,雙擊其中的.sln文件啟動(dòng)工程,直接編譯,4, 編譯后在Debug子文件夾中將出現(xiàn)一個(gè)TstCon.exe文件,將其復(fù)制到:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools文件夾。
5, 在vs2010中的Tools菜單點(diǎn)擊“External Tools...”,出現(xiàn)如下對(duì)話框,點(diǎn)擊“Add”添加一項(xiàng)工具。6, 新工具項(xiàng)的“Title”為:ActiveX Control Test Container,“Command” 為:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools TstCon.exe。
7, 確認(rèn)退出對(duì)話框,Tools菜單將出現(xiàn)“ActiveX Control Test Container”菜單項(xiàng)。Visual C++ 2010 MFC ActiveX 控件小結(jié)Captain棟蟈 打開(kāi)控件測(cè)試容器初始界面如下圖
Visual C++ 2010 MFC ActiveX 控件小結(jié)Captain棟蟈 Edit→Insert New Control→選擇要測(cè)試的控件→OK
2、ActiveX控件的注冊(cè)與刪除
所有的ActiveX控件必須在注冊(cè)之后才能使用,實(shí)際上在VS2010開(kāi)發(fā)環(huán)境中生成控件程序時(shí),就已經(jīng)通過(guò)regsvr32程序注冊(cè)了該控件;如果要?jiǎng)h除ActiveX控件的注冊(cè)信息,利用regsvr32程序的/u選項(xiàng)來(lái)完成。通常可以選擇“開(kāi)始”→“運(yùn)行”命令,然后輸入“regsvr32/u”,再在其后輸入要?jiǎng)h除的ActiveX控件的完整路徑。Tips:在“運(yùn)行”中先輸入regsvr32/u,然后拖動(dòng)要?jiǎng)h除的控件到“regsvr32/u”之后,即可獲取其完整路徑。
將xxx.ocx文件拷貝至Windowssystem下,然后regsvr xxx.ocx即注冊(cè);regsvr32/u xxx.ocx即刪除。
三、ActiveX控件開(kāi)發(fā)完整過(guò)程 經(jīng)典Clock控件案例~~
1、創(chuàng)建工程
創(chuàng)建MFC ActiveX Control類項(xiàng)目,命名為Clock,MFC ActiveX Control Wizard全選默認(rèn),F(xiàn)inish。
2、時(shí)鐘控件的實(shí)現(xiàn)
獲取當(dāng)前系統(tǒng)時(shí)間,CClockCtrl類的OnDraw函數(shù)中 CTime time=CTime::GetCurrentTime();CString str=time.Format(“%H:%M:%S”);pdc->TextOut(0,0,str);動(dòng)態(tài)顯示時(shí)間,CClockCtrl類添加WM_CREATE和WM_TIMER消息及處理函數(shù) 設(shè)置定時(shí)器SetTimer(1,1000.NULL);定時(shí)器相應(yīng)函數(shù)InvalidateControl();//其實(shí)就是調(diào)用OnDraw函數(shù)
編譯并運(yùn)行ActiveX控件,然后打開(kāi)ActiveX控件容器中插入該控件,可以看到動(dòng)態(tài)顯示的時(shí)間
3、屬性 3.1標(biāo)準(zhǔn)屬性
以背景色和前景色為例,類視圖中展開(kāi)Lib結(jié)尾的選項(xiàng),右鍵“_DClock”→“添加”→“屬性”,然后添加標(biāo)準(zhǔn)屬性,及選中“Stock”,在PropertyName中選則BackColor,其余選中默認(rèn),單擊完成。同理添加前景色ForeColor。
為屬性對(duì)話框添加“顏色”選項(xiàng)卡,修改類CClockCtrl.cpp中的屬性頁(yè)映射宏P(guān)ROPPAGEID(CLSID_CColorPropPage);切記計(jì)數(shù)參數(shù)要增加1: // 屬性頁(yè)
// TODO: 按需要添加更多屬性頁(yè)。請(qǐng)記住增加計(jì)數(shù)!BEGIN_PROPPAGEIDS(CClockCtrl, 2)
PROPPAGEID(CTimePropPage::guid)
PROPPAGEID(CLSID_CColorPropPage);END_PROPPAGEIDS(CClockCtrl)然后在修改OnDraw函數(shù)使控件顏色根據(jù)顏色選項(xiàng)卡的選則而變化:
CBrush brush(TranslateColor(GetBackColor()));
pdc->FillRect(rcBounds,&brush);
pdc->SetBkMode(TRANSPARENT);
pdc->SetTextColor(TranslateColor(GetForeColor()));3.2自定義屬性
添加一個(gè)自定義屬性:時(shí)間間隔(UpdateInterval),用于設(shè)置更新時(shí)間的間隔。
與標(biāo)準(zhǔn)屬性添加相同,在添加屬性向?qū)е?,在PropertyName中輸入U(xiǎn)pdateInterval,類型設(shè)置為SHORT。可以看到向?qū)ё詣?dòng)添加了通知函數(shù)OnUpdateIntervalChange(),單擊Finish完成添加。void CClockCtrl::OnUpdateIntervalChanged(void){
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: 在此添加屬性處理程序代碼
if(m_UpdateInterval<1000 || m_UpdateInterval>6000)
{
//解決輸入值不合要求的問(wèn)題
m_UpdateInterval=1000;
}
else
{
//解決輸入值不是整數(shù)的問(wèn)題
m_UpdateInterval=m_UpdateInterval/1000*1000;
}
KillTimer(1);
SetTimer(1,m_UpdateInterval,NULL);
SetModifiedFlag();} 關(guān)聯(lián)某控件變量,需要手動(dòng)添加:
DDP_Text(pDX, IDC_EDIT1, m_updateInterval,_T(“Interval”));DDX_Text(pDX, IDC_EDIT1, m_updateInterval);DDP_PostProcessing(pDX);DDP、DDX、PostProcessing,順序不可以調(diào)整
為測(cè)試自定義屬性,在Edit→Insert New Control→選擇要測(cè)試的控件后,選擇Control→Invoke Methods,如果想要獲取,某個(gè)屬性值,則選擇PropGet;如果設(shè)置,則選PropPut。這里選擇后者,然后輸入2000,單擊SetValue,在單擊【Invoke】按鈕,發(fā)現(xiàn)控件時(shí)間每個(gè)2S更新一次。
4、方法
與添加屬性一樣,_DClock右鍵......選擇“方法”,這里添加一個(gè)簡(jiǎn)單的“Hello” 代碼:
void CClockCtrl::Hello(void){
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: 在此添加調(diào)度處理程序代碼
MessageBox(_T(“Hello world”));} 測(cè)試時(shí)Control→Invoke Methods,選擇“Hello”
5、事件
5.1添加標(biāo)準(zhǔn)事件
右鍵CClockCtrl類(類視圖CxxxCtrl上點(diǎn)擊右鍵才能添加事件,而在_DxxxEvents接口上點(diǎn)擊右鍵則沒(méi)有添加事件),添加“事件”,顯示添加事件向?qū)?duì)話框,“Event Name”下拉列表框中選擇”Click“,單擊Finish。5.2添加自定義事件
添加一個(gè)NewMinute事件,實(shí)現(xiàn)新的一分鐘時(shí)有提示 Event Name中輸入NewMinute,然后Finish。在InDraw函數(shù)中獲取系統(tǒng)時(shí)間代碼后添加 if(time.GetSecond()==0)
{
NewMinute();//判斷是否過(guò)了一分鐘,是則觸發(fā)NewMinute事件
}
6、調(diào)用ActiveX控件
新建一個(gè)名為ClockTest的對(duì)話框,在對(duì)話框上右鍵,選擇”Insert ActiveX Control“,找到Clock控件添加即可。
或者是,”工具“→”選擇工具箱選項(xiàng)“→”COM Components“,選擇要插入的控件,單擊OK。
第四篇:嚴(yán)厲打擊食品非法添加和濫用食品添加劑專項(xiàng)行動(dòng)工作動(dòng)態(tài)(三十一)
嚴(yán)厲打擊食品非法添加和濫用食品添加劑專項(xiàng)行動(dòng)
工 作 動(dòng) 態(tài)
(第三十一期)
XXX食品安全委員會(huì)辦公室 二OXX年十二月XX日
XX縣開(kāi)展嚴(yán)厲打擊食品非法 添加和濫用食品添加劑專項(xiàng)行動(dòng)工作
為進(jìn)一步加強(qiáng)食品安全管理工作,落實(shí)XX市食品安全委員會(huì)辦公室轉(zhuǎn)發(fā)《XX省食品安全委員會(huì)辦公室關(guān)于落實(shí)國(guó)務(wù)院食品安全督查工作意見(jiàn)的通知》(XX安辦[2011]28號(hào))文件精神,XX縣食品安全委員會(huì)辦公室下發(fā)關(guān)于轉(zhuǎn)發(fā)《XX省食品安全委員會(huì)辦公室關(guān)于落實(shí)國(guó)務(wù)院食品安全督查工作意見(jiàn)的通知》的通知(XX食安辦〔2011〕23號(hào)),要求各有關(guān)部門(mén)按照食品安全工作目標(biāo)考核方案的要求,于12月XX日前完成市對(duì)縣食品安全工作目標(biāo)考核準(zhǔn)備。
一、本周工作開(kāi)展情況
(一)農(nóng)業(yè)部門(mén)組織縣級(jí)獸藥GSP檢查員成立檢查驗(yàn)收組對(duì)我縣兩家申請(qǐng)獸藥GSP檢查驗(yàn)收獸藥經(jīng)銷企業(yè)的軟、硬件設(shè)施等進(jìn)行初步檢查。檢查驗(yàn)收結(jié)束后,驗(yàn)收組對(duì)各企業(yè)軟、硬件方面存在的不足分別提出整改意見(jiàn)。
(二)工商部門(mén)出動(dòng)執(zhí)法人員對(duì)轄區(qū)內(nèi)19戶銷售運(yùn)動(dòng)飲料、果汁、茶飲料等食品和飲品店所使用的果漿果醬類、粉狀膠體等食品添加劑的銷售和使用情況進(jìn)行了檢查,重點(diǎn)對(duì)縣城內(nèi)各大超市、飲品店、批發(fā)部進(jìn)行了檢查。檢查中未發(fā)現(xiàn)有被污染的食品和違規(guī)銷售和使用食品添加劑的情況。
檢查中執(zhí)法人員要求經(jīng)營(yíng)戶進(jìn)一步完善進(jìn)貨查驗(yàn)制度、進(jìn)銷貨臺(tái)帳和索證索票制度,保障食品安全。
(三)食藥監(jiān)部門(mén)結(jié)合餐飲服務(wù)、保健食品、可用于食品和飼料加工的藥品監(jiān)管工作實(shí)際,積極組織執(zhí)法力量針對(duì)我縣餐飲服務(wù)企業(yè)、食品經(jīng)營(yíng)企業(yè)繼續(xù)加強(qiáng)打擊食品非法添加和濫用食品添加劑專項(xiàng)整治行動(dòng)力度。
本周出動(dòng)執(zhí)法車輛 6臺(tái)次,執(zhí)法人員92人次,對(duì)23家餐飲服務(wù)企業(yè)和食品經(jīng)營(yíng)企業(yè)進(jìn)行了嚴(yán)格檢查,檢查中未發(fā)現(xiàn)有食品非法添加和濫用食品添加劑的行為。
(四)質(zhì)監(jiān)部門(mén)組織執(zhí)法人員8人次、車輛2臺(tái)次開(kāi)展食品安全巡查工作,本周巡查了2家,檢查中未發(fā)現(xiàn)有非法添加和使用地溝油進(jìn)行生產(chǎn)等違法行為。
本周各部門(mén)共出動(dòng)執(zhí)法人員180人次,執(zhí)法車輛17臺(tái)次,檢查種養(yǎng)殖、生產(chǎn)加工、食品流通、餐飲服務(wù)等經(jīng)營(yíng)單位50余戶次,檢查中未發(fā)現(xiàn)有非法添加和濫用食品添加劑現(xiàn)象。
二、下一步工作打算
(一)根據(jù)專項(xiàng)整治要求,繼續(xù)深入開(kāi)展嚴(yán)厲打擊非法添加和濫用食品添加劑專項(xiàng)整治行動(dòng)宣傳力度,形成消費(fèi)者參與、食品生產(chǎn)經(jīng)營(yíng)者自律、監(jiān)管部門(mén)履職的長(zhǎng)效監(jiān)管機(jī)制。
(二)進(jìn)一步加強(qiáng)地溝油專項(xiàng)整治工作力度,加強(qiáng)餐飲等食品生產(chǎn)經(jīng)營(yíng)單位使用油脂的管理,保障人們?nèi)罕婏嬍嘲踩?/p>
(三)加大食品安全法律法規(guī)宣傳,教育生產(chǎn)經(jīng)營(yíng)者學(xué)法、懂法、守法,依法經(jīng)營(yíng),誠(chéng)實(shí)守信。教育廣大消費(fèi)者了解法律法規(guī),提高維權(quán)意識(shí)。鼓勵(lì)其運(yùn)用法律、行政等手段,維護(hù)自己的合法權(quán)益。
(四)做好打擊非法添加和濫用食品添加劑專項(xiàng)整治工作,是黨和人民交給我們的一項(xiàng)光榮而又艱巨的任務(wù),我們將扎實(shí)工作,確保人民群眾的健康平安。
報(bào):縣政府辦、市食安辦 電子文檔報(bào)出