久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

MFC控件關聯(lián)變量小結(jié)

時間:2019-05-13 19:13:50下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《MFC控件關聯(lián)變量小結(jié)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《MFC控件關聯(lián)變量小結(jié)》。

第一篇:MFC控件關聯(lián)變量小結(jié)

MFC控件關聯(lián)變量總結(jié)

通常在要綁定變量的編輯框控件上右鍵添加變量就可以。

綁定變量分value和control兩種,value是賦值用的,control是控制用的。對于編輯框的賦值,共分幾種方法 1.不用綁定變量的方法

GetDlgItem(IDC_EDIT1)->GetWindowText(變量); 如果是數(shù)組->GetWindowText(數(shù)組名,長度)GetDlgItem(IDC_EDIT1)->SetWindowText(變量); 2.綁的是value型變量 一共3處

<1處>project1Dlg.h : 頭文件 class Cproject1Dlg : public CDialog { // 構(gòu)造 public: Cproject1Dlg(CWnd* pParent = NULL);// 標準構(gòu)造函數(shù)

// 對話框數(shù)據(jù)

enum { IDD = IDD_PROJECT1_DIALOG };protected: virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持

// 實現(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 : 實現(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 : 實現(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);變量與控件關聯(lián)

通過調(diào)用 UpdateData(TRUE)UpdateData(FALSE)將控件數(shù)據(jù)取到變量或?qū)⒆兞繑?shù)據(jù)顯到控件 如果 變量賦值語句寫在對話框構(gòu)造函數(shù)里,則UpdateData(FALSE)可省略,會被自動調(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控件是基于組件對象模型COM--Components Object Modem的可重用軟件組件,旨在用于普通的ActiveX控件容器和Internet上的網(wǎng)頁,這里介紹用MFC創(chuàng)建ActiveX控件。一個典型的ActiveX控件,具有方法、屬性、事件這三種特性。

二、ActiveX控件的測試與注冊

1、使用ActiveX控件測試容器對控件進行測試

對于VC6.0,安裝CommonTools目錄下的TSTCON32.EXE即可使用。

而vs2010中的TSTCON(ActiveX Control Test Container)工具非自動安裝,而是作為一個例程提供。所以應找到該例程,并編譯: 如vs2010安裝在默認路徑則

1, 進入:C:Program FilesMicrosoft Visual Studio 10.0Samples1033,可找到VC2010Samples.zip文件,2, 將其解決到同一個文件夾,解壓后將出現(xiàn)一個C++子文件夾。

3, TstCon例程在:C:Program FilesMicrosoft Visual Studio 10.0Samples1033C++MFColeTstCon,雙擊其中的.sln文件啟動工程,直接編譯,4, 編譯后在Debug子文件夾中將出現(xiàn)一個TstCon.exe文件,將其復制到:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools文件夾。

5, 在vs2010中的Tools菜單點擊“External Tools...”,出現(xiàn)如下對話框,點擊“Add”添加一項工具。6, 新工具項的“Title”為:ActiveX Control Test Container,“Command” 為:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools TstCon.exe。

7, 確認退出對話框,Tools菜單將出現(xiàn)“ActiveX Control Test Container”菜單項。Visual C++ 2010 MFC ActiveX 控件小結(jié)Captain棟蟈 打開控件測試容器初始界面如下圖

Visual C++ 2010 MFC ActiveX 控件小結(jié)Captain棟蟈 Edit→Insert New Control→選擇要測試的控件→OK

2、ActiveX控件的注冊與刪除

所有的ActiveX控件必須在注冊之后才能使用,實際上在VS2010開發(fā)環(huán)境中生成控件程序時,就已經(jīng)通過regsvr32程序注冊了該控件;如果要刪除ActiveX控件的注冊信息,利用regsvr32程序的/u選項來完成。通常可以選擇“開始”→“運行”命令,然后輸入“regsvr32/u”,再在其后輸入要刪除的ActiveX控件的完整路徑。Tips:在“運行”中先輸入regsvr32/u,然后拖動要刪除的控件到“regsvr32/u”之后,即可獲取其完整路徑。

將xxx.ocx文件拷貝至Windowssystem下,然后regsvr xxx.ocx即注冊;regsvr32/u xxx.ocx即刪除。

三、ActiveX控件開發(fā)完整過程 經(jīng)典Clock控件案例~~

1、創(chuàng)建工程

創(chuàng)建MFC ActiveX Control類項目,命名為Clock,MFC ActiveX Control Wizard全選默認,F(xiàn)inish。

2、時鐘控件的實現(xiàn)

獲取當前系統(tǒng)時間,CClockCtrl類的OnDraw函數(shù)中 CTime time=CTime::GetCurrentTime();CString str=time.Format(“%H:%M:%S”);pdc->TextOut(0,0,str);動態(tài)顯示時間,CClockCtrl類添加WM_CREATE和WM_TIMER消息及處理函數(shù) 設置定時器SetTimer(1,1000.NULL);定時器相應函數(shù)InvalidateControl();//其實就是調(diào)用OnDraw函數(shù)

編譯并運行ActiveX控件,然后打開ActiveX控件容器中插入該控件,可以看到動態(tài)顯示的時間

3、屬性 3.1標準屬性

以背景色和前景色為例,類視圖中展開Lib結(jié)尾的選項,右鍵“_DClock”→“添加”→“屬性”,然后添加標準屬性,及選中“Stock”,在PropertyName中選則BackColor,其余選中默認,單擊完成。同理添加前景色ForeColor。

為屬性對話框添加“顏色”選項卡,修改類CClockCtrl.cpp中的屬性頁映射宏PROPPAGEID(CLSID_CColorPropPage);切記計數(shù)參數(shù)要增加1: // 屬性頁

// TODO: 按需要添加更多屬性頁。請記住增加計數(shù)!BEGIN_PROPPAGEIDS(CClockCtrl, 2)

PROPPAGEID(CTimePropPage::guid)

PROPPAGEID(CLSID_CColorPropPage);END_PROPPAGEIDS(CClockCtrl)然后在修改OnDraw函數(shù)使控件顏色根據(jù)顏色選項卡的選則而變化:

CBrush brush(TranslateColor(GetBackColor()));

pdc->FillRect(rcBounds,&brush);

pdc->SetBkMode(TRANSPARENT);

pdc->SetTextColor(TranslateColor(GetForeColor()));3.2自定義屬性

添加一個自定義屬性:時間間隔(UpdateInterval),用于設置更新時間的間隔。

與標準屬性添加相同,在添加屬性向?qū)е校赑ropertyName中輸入UpdateInterval,類型設置為SHORT。可以看到向?qū)ё詣犹砑恿送ㄖ瘮?shù)OnUpdateIntervalChange(),單擊Finish完成添加。void CClockCtrl::OnUpdateIntervalChanged(void){

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加屬性處理程序代碼

if(m_UpdateInterval<1000 || m_UpdateInterval>6000)

{

//解決輸入值不合要求的問題

m_UpdateInterval=1000;

}

else

{

//解決輸入值不是整數(shù)的問題

m_UpdateInterval=m_UpdateInterval/1000*1000;

}

KillTimer(1);

SetTimer(1,m_UpdateInterval,NULL);

SetModifiedFlag();} 關聯(lián)某控件變量,需要手動添加:

DDP_Text(pDX, IDC_EDIT1, m_updateInterval,_T(“Interval”));DDX_Text(pDX, IDC_EDIT1, m_updateInterval);DDP_PostProcessing(pDX);DDP、DDX、PostProcessing,順序不可以調(diào)整

為測試自定義屬性,在Edit→Insert New Control→選擇要測試的控件后,選擇Control→Invoke Methods,如果想要獲取,某個屬性值,則選擇PropGet;如果設置,則選PropPut。這里選擇后者,然后輸入2000,單擊SetValue,在單擊【Invoke】按鈕,發(fā)現(xiàn)控件時間每個2S更新一次。

4、方法

與添加屬性一樣,_DClock右鍵......選擇“方法”,這里添加一個簡單的“Hello” 代碼:

void CClockCtrl::Hello(void){

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加調(diào)度處理程序代碼

MessageBox(_T(“Hello world”));} 測試時Control→Invoke Methods,選擇“Hello”

5、事件

5.1添加標準事件

右鍵CClockCtrl類(類視圖CxxxCtrl上點擊右鍵才能添加事件,而在_DxxxEvents接口上點擊右鍵則沒有添加事件),添加“事件”,顯示添加事件向?qū)υ捒颍癊vent Name”下拉列表框中選擇”Click“,單擊Finish。5.2添加自定義事件

添加一個NewMinute事件,實現(xiàn)新的一分鐘時有提示 Event Name中輸入NewMinute,然后Finish。在InDraw函數(shù)中獲取系統(tǒng)時間代碼后添加 if(time.GetSecond()==0)

{

NewMinute();//判斷是否過了一分鐘,是則觸發(fā)NewMinute事件

}

6、調(diào)用ActiveX控件

新建一個名為ClockTest的對話框,在對話框上右鍵,選擇”Insert ActiveX Control“,找到Clock控件添加即可。

或者是,”工具“→”選擇工具箱選項“→”COM Components“,選擇要插入的控件,單擊OK。

第三篇:MFC動態(tài)添加控件及響應函數(shù)

MFC動態(tài)添加控件及響應函數(shù)

應該注意:控件也是一個窗口。在添加控件的時候空間變量最好是全部變量或者是局部指針變量,這樣即使函數(shù)結(jié)束也不會造成變量被銷毀。下面以動態(tài)添加按鈕為例的代碼: ? CButton *pButton = new CButton;//一定要New CButton,否則程序會運行出錯? 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,否則程序會運行出錯? pButton->Create(“New Button”, WS_CHILD|BS_DEFPUSHBUTTON|WS_VISIBLE, CRect(0, 0, 100, 50), this, 123);

根據(jù)MFC的消息映射機制,應該更改三處代碼。

?(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、響應函數(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!”);?? }

第四篇:GridControl控件小結(jié)

由于近期要使用gridcontrol控件,整理出來,以便以后參考:

1.DevExpress控件組中的GridControl控件不能使橫向滾動條有效。現(xiàn)象:控件中的好多列都擠在一起,列寬都變的很小,根本無法正常瀏覽控件單元格中的內(nèi)容。

解決:

gridView1.OptionsView.ColumnAutoWidth屬性是true,即各列的寬度自動調(diào)整,你把它設成false,就會出現(xiàn)了。

2.使單元格不可編輯。

gridcontrol-->gridview-->OptionsBehavior-->Editable=false

3.沒有下拉滾動條事件怎么辦?現(xiàn)象:因為需要加載大數(shù)據(jù)量數(shù)據(jù),所以不能一次把所有數(shù)據(jù)讀入datatable進行綁定,所以決定在用戶進一步瀏覽數(shù)據(jù)時進行數(shù)據(jù)的實時加載工作,就是每當用戶拉動滾動條時,多加載一些數(shù)據(jù)進入datatable.沒有找到合適的滾動條事件,于是用這個事件代替了,非常合適我的需求.TopRowChanged事件.4.獲取選定行,指定列單元格的內(nèi)容

private string GetSelectOID()

{

int[] pRows = this.gridView1.GetSelectedRows();

if(pRows.GetLength(0)> 0)

return gridView1.GetRowCellValue(pRows[0], mOIDFiledName).ToString();

else

return null;

}

//mOIDFiledName為要獲取列的列名

5.去除“Drag a Column Header Here To Group by that Column”

屬性Gridview->Option View->Show Group Panel=false,就好了

6.在gridcontrol中添加checkbox復選框

gridview->run designer->columns->選擇要變成復選框的那一列->column edit->new(在這里可以選擇很多類型)

加載checkbox數(shù)據(jù)時,費了一點時間,checkbox的復選框怎么點擊,一失去焦點是,選擇的操作就無效了,問題就出在datatable的綁定上了,一定要綁定一個布爾的類型.代碼是這樣滴!

private void FrmCreateLegend_Load(object sender, EventArgs e)

{

IFeatureLayer pFeatureLayer;

IDataset pDataset;

string pName;

DataTable pDatatable = new DataTable();

pDatatable.Columns.Add(“圖層名稱”, System.Type.GetType(“System.String”));pDatatable.Columns.Add(“選擇”, System.Type.GetType(“System.Boolean”));

DataRow pDataRow;

object[] rowArray = new object[2];

for(int i = 0;i < mFeatureLayers.Count;i++)

{

pDataRow = pDatatable.NewRow();

pFeatureLayer = mFeatureLayers[i] as IFeatureLayer;

rowArray[0] = pFeatureLayer.Name;

rowArray[1] = false;

pDataRow.ItemArray = rowArray;

pDatatable.Rows.Add(pDataRow);

}

this.gridMark.DataSource = pDatatable;

this.gridMark.Refresh();

}

注意:創(chuàng)建的datatable的列名一定要和gridview中的列的fieldname屬性值是一個名字,不然,你會發(fā)現(xiàn)添加了和你綁定的datatalbe一樣多的行,可是行里面卻沒有內(nèi)容的.7.多選

GridControl->GridView->屬性->OptinosSelecttion->MultiSelect

8.不顯示子表信息

當我們對DataTable建立父子關系后,將父表綁定在Grid上,會造成關系列上有加號顯示,并且可以展開.如果你覺得展開的信息對你沒有意義的話,是可以關掉的.這是需要修改屬性 屬性Gridview->Option View->ShowDetailButtons=false

bandedGridView1.Columns[1].Width =

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[1])+ 5;

bandedGridView1.Columns[2].Width =

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[2])+ 5;

bandedGridView1.Columns[3].Width =

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[3])+ 5;

bandedGridView1.Columns[0].Width

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[0])+ 5;=

第五篇:MFC CString 用法小結(jié)[定稿]

MFC CString 用法小結(jié)

1.初始化方法:

(1)直接復制,如Cstring=”mingrisoft”;

(2)通過構(gòu)造函數(shù)初始化,如 CString str(? ?,100)//與分配100個字節(jié),填充空格 char* p=”feiqiang”;Cstring(p);delete p.(3)加載工程中的字符串資源,如CString str;str.LoadString(IDS_STR);(4)使用CString類的成員函數(shù)Format初始化,如CString str;int i=0;str.Format(“value:%d”,i);

2.將CString轉(zhuǎn)化為char*,如

CString str=”feqiang”;

char *p;p=str.GetBuffer();delete p;將char*轉(zhuǎn)化為CString,如:

char* p=”feiqiang”;

p[len(p)]=?

主站蜘蛛池模板: 亚洲熟妇色xxxxx欧美老妇y| 久久精品中文闷骚内射| 国产aⅴ爽av久久久久电影渣男| 亚洲国产精品一区二区久久hs| 激情综合五月丁香亚洲| 成人无码av片在线观看| 久久在精品线影院| 黄又色又污又爽又高潮动态图| 国产免费又爽又色又粗视频| 国产精品毛片在线完整版| 亚洲永久网址在线观看| 美女视频黄的全免费视频网站| 日本高清色倩视频在线观看| 色偷偷色噜噜狠狠网站年轻人| 亚洲精品成人av观看| 97一期涩涩97片久久久久久久| 色婷婷六月亚洲婷婷丁香| 午夜成人片在线观看免费播放| 丝袜人妻一区二区三区| 久久午夜无码鲁丝片午夜精品| 成人片黄网站色大片免费毛片| 男女性高爱潮是免费国产| 亚洲精品国产av成拍色拍| 无码伊人66久久大杳蕉网站谷歌| 久99久热只有精品国产女同| 久久精品国内一区二区三区| 色综合久久88色综合天天| 国产亚洲美女精品久久久2020| 亚洲成av人片不卡无码手机版| 亚洲三区在线观看无套内射| 亚洲熟妇自偷自拍另类| 国产无遮挡裸体免费直播| 亚洲 综合 欧美 动漫 丝袜| 五月丁香六月激情综合在线视频| 海角社区在线视频播放观看| 国产亚洲产品影市在线产品| 国产成+人+综合+欧美亚洲| 无码人妻精品一区二区三区免费| 色偷偷亚洲精品一区二区| 少妇高潮喷潮久久久影院| 人妻无码手机在线中文|